New-PSSession
Hiermee maakt u een permanente verbinding met een lokale of externe computer.
Syntaxis
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
-VMName <String[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-ConfigurationName <String>]
-ContainerId <String[]>
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-UseWindowsPowerShell]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[-Options <Hashtable>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Description
De New-PSSession
cmdlet maakt een PowerShell-sessie (PSSession) op een lokale of externe computer. Wanneer u een PSSession maakt, maakt PowerShell een permanente verbinding met de externe computer.
Gebruik een PSSession om meerdere opdrachten uit te voeren die gegevens delen, zoals een functie of de waarde van een variabele. Gebruik de Invoke-Command
cmdlet om opdrachten uit te voeren in een PSSession. Als u de PSSession wilt gebruiken om rechtstreeks met een externe computer te communiceren, gebruikt u de Enter-PSSession
cmdlet. Zie about_PSSessions voor meer informatie.
U kunt opdrachten uitvoeren op een externe computer zonder een PSSession te maken met de computernaamparameters van Enter-PSSession
of Invoke-Command
. Wanneer u de parameter ComputerName gebruikt, maakt PowerShell een tijdelijke verbinding die wordt gebruikt voor de opdracht en vervolgens wordt gesloten.
Vanaf PowerShell 6.0 kunt u Secure Shell (SSH) gebruiken om verbinding te maken met en een sessie te maken op een externe computer, als SSH beschikbaar is op de lokale computer en de externe computer is geconfigureerd met een PowerShell SSH-eindpunt. Het voordeel van een externe PowerShell-sessie op basis van SSH is dat deze kan werken op meerdere platforms (Windows, Linux, macOS). Voor op SSH gebaseerde sessies gebruikt u de parameter HostName of SSHConnection die is ingesteld om de externe computer en relevante verbindingsgegevens op te geven. Zie externe communicatie van PowerShell via SSH voor meer informatie over het instellen van externe communicatie van PowerShell via SSH.
Notitie
Wanneer u WSMan gebruikt voor externe communicatie vanuit een Linux- of macOS-client met een HTTPS-eindpunt waarbij het servercertificaat niet wordt vertrouwd (bijvoorbeeld een zelfondertekend certificaat). U moet een PSSessionOption opgeven waarin de waarden SkipCACheck en SkipCNCheck zijn ingesteld om $true
de verbinding tot stand te brengen. Doe dit alleen als u zich in een omgeving bevindt waarin u zeker kunt zijn van het servercertificaat en de netwerkverbinding met het doelsysteem.
Voorbeelden
Voorbeeld 1: Een sessie maken op de lokale computer
$s = New-PSSession
Met deze opdracht maakt u een nieuwe PSSession op de lokale computer en slaat u de PSSession op in de $s
variabele.
U kunt deze PSSession nu gebruiken om opdrachten uit te voeren op de lokale computer.
Voorbeeld 2: Een sessie maken op een externe computer
$Server01 = New-PSSession -ComputerName Server01
Met deze opdracht maakt u een nieuwe PSSession op de Server01-computer en slaat u deze op in de $Server01
variabele.
Wanneer u meerdere PSSession-objecten maakt, wijst u deze toe aan variabelen met nuttige namen. Dit helpt u bij het beheren van de PSSession-objecten in volgende opdrachten.
Voorbeeld 3: Sessies maken op meerdere computers
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
Met deze opdracht maakt u drie PSSession-objecten , één op elk van de computers die zijn opgegeven door de parameter ComputerName .
De opdracht gebruikt de toewijzingsoperator (=
) om de nieuwe PSSession-objecten toe te wijzen aan variabelen: $s1
, , $s2
$s3
. Het wijst de Server01 PSSession toe aan $s1
, de Server02 PSSession aan $s2
en de Server03 PSSession aan $s3
.
Wanneer u meerdere objecten aan een reeks variabelen toewijst, wijst PowerShell elk object respectievelijk toe aan een variabele in de reeks. Als er meer objecten zijn dan variabelen, worden alle resterende objecten toegewezen aan de laatste variabele. Als er meer variabelen zijn dan objecten, zijn de resterende variabelen leeg ($null
).
Voorbeeld 4: Een sessie maken met een opgegeven poort
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
Met deze opdracht maakt u een nieuwe PSSession op de Server01-computer die verbinding maakt met serverpoort 8081
en het SSL-protocol gebruikt. De nieuwe PSSession maakt gebruik van een alternatieve sessieconfiguratie met de naam E12
.
Voordat u de poort instelt, moet u de WinRM-listener op de externe computer configureren om te luisteren op poort 8081. Zie de beschrijving van de poortparameter voor meer informatie.
Voorbeeld 5: Een sessie maken op basis van een bestaande sessie
New-PSSession -Session $s -Credential Domain01\User01
Met deze opdracht maakt u een PSSession met dezelfde eigenschappen als een bestaande PSSession. U kunt deze opdrachtindeling gebruiken wanneer de resources van een bestaande PSSession zijn uitgeput en een nieuwe PSSession nodig is om een deel van de vraag te offloaden.
De opdracht gebruikt de sessieparameter om de PSSession op te geven die is opgeslagen in de $s
variabele.New-PSSession
Hierbij worden de referenties van de Domain1\Admin01
gebruiker gebruikt om de opdracht te voltooien.
Voorbeeld 6: Een sessie maken met een globaal bereik in een ander domein
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
In dit voorbeeld ziet u hoe u een PSSession maakt met een globaal bereik op een computer in een ander domein.
PSSession-objecten die op de opdrachtregel zijn gemaakt, worden standaard gemaakt met lokaal bereik en PSSession-objecten die in een script zijn gemaakt, hebben een scriptbereik.
Als u een PSSession met globaal bereik wilt maken, maakt u een nieuwe PSSession en slaat u de PSSession vervolgens op in een variabele die naar een globaal bereik wordt gecast. In dit geval wordt de $s
variabele naar een globaal bereik gecast.
De opdracht gebruikt de parameter ComputerName om de externe computer op te geven. Omdat de computer zich in een ander domein bevindt dan het gebruikersaccount, wordt de volledige naam van de computer opgegeven samen met de referenties van de gebruiker.
Voorbeeld 7: Sessies maken voor veel computers
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
Met deze opdracht maakt u een PSSession op elk van de 200 computers die in het Servers.txt
bestand worden vermeld en wordt de resulterende PSSession opgeslagen in de $rs
variabele. De PSSession-objecten hebben een beperkingslimiet van 50
.
U kunt deze opdrachtindeling gebruiken wanneer de namen van computers worden opgeslagen in een database, spreadsheet, tekstbestand of een andere tekst converteerbare indeling.
Voorbeeld 8: Een sessie maken met behulp van een URI
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
Met deze opdracht maakt u een PSSession op de Server01-computer en slaat u deze op in de $s
variabele. Hierbij wordt de URI-parameter gebruikt om het transportprotocol, de externe computer, de poort en een alternatieve sessieconfiguratie op te geven. Ook wordt de referentieparameter gebruikt om een gebruikersaccount op te geven dat is gemachtigd om een sessie op de externe computer te maken.
Voorbeeld 9: Een achtergrondtaak uitvoeren in een set sessies
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
Met deze opdrachten maakt u een set PSSession-objecten en voert u vervolgens een achtergrondtaak uit in elk van de PSSession-objecten .
Met de eerste opdracht maakt u een nieuwe PSSession op elk van de computers die in het Servers.txt
bestand worden vermeld. De cmdlet wordt gebruikt New-PSSession
om de PSSession te maken. De waarde van de parameter ComputerName is een opdracht die de Get-Content
cmdlet gebruikt om de lijst met computernamen van het Servers.txt
bestand op te halen.
De opdracht maakt gebruik van de referentieparameter om de PSSession-objecten te maken die de machtiging van een domeinbeheerder hebben en gebruikt de parameter ThrottleLimit om de opdracht te beperken tot 16
gelijktijdige verbindingen. Met de opdracht worden de PSSession-objecten opgeslagen in de $s
variabele.
De tweede opdracht maakt gebruik van de AsJob-parameter van de Invoke-Command
cmdlet om een achtergrondtaak te starten die een Get-Process PowerShell
opdracht uitvoert in elk van de PSSession-objecten in $s
.
Zie about_Jobs en about_Remote_Jobs voor meer informatie over PowerShell-achtergrondtaken.
Voorbeeld 10: Een sessie voor een computer maken met behulp van de URI
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
Met deze opdracht maakt u een PSSession-objecten die verbinding maken met een computer die is opgegeven door een URI in plaats van een computernaam.
Voorbeeld 11: Een sessieoptie maken
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
In dit voorbeeld ziet u hoe u een sessieoptieobject maakt en de parameter SessionOption gebruikt.
De eerste opdracht gebruikt de New-PSSessionOption
cmdlet om een sessieoptie te maken. Het resulterende SessionOption-object wordt opgeslagen in de $so
variabele.
De tweede opdracht maakt gebruik van de optie in een nieuwe sessie. De opdracht gebruikt de New-PSSession
cmdlet om een nieuwe sessie te maken. De waarde van de parameter SessionOption is het SessionOption-object in de $so
variabele.
Voorbeeld 12: Een sessie maken met behulp van SSH
New-PSSession -HostName UserA@LinuxServer01
In dit voorbeeld ziet u hoe u een nieuwe PSSession maakt met behulp van Secure Shell (SSH). Als SSH is geconfigureerd op de externe computer om te vragen om wachtwoorden, krijgt u een wachtwoordprompt. Anders moet u gebruikersverificatie op basis van SSH-sleutels gebruiken.
Voorbeeld 13: Een sessie maken met behulp van SSH en de poort en gebruikersverificatiesleutel opgeven
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa
In dit voorbeeld ziet u hoe u een PSSession maakt met behulp van Secure Shell (SSH). Hierbij wordt de poortparameter gebruikt om de poort op te geven die moet worden gebruikt en de parameter KeyFilePath om een RSA-sleutel op te geven die wordt gebruikt om de gebruiker op de externe computer te identificeren en te verifiëren.
Voorbeeld 14: Meerdere sessies maken met behulp van SSH
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'c:\users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'c:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
In dit voorbeeld ziet u hoe u meerdere sessies maakt met SSH (Secure Shell) en de parameterset SSHConnection . De parameter SSHConnection gebruikt een matrix van hash-tabellen die verbindingsgegevens voor elke sessie bevatten. Houd er rekening mee dat voor dit voorbeeld is vereist dat de externe doelcomputers SSH hebben geconfigureerd ter ondersteuning van op sleutels gebaseerde gebruikersverificatie.
Voorbeeld 15: Een nieuwe sessie maken met behulp van SSH-opties
$options = @{
Port=22
User = 'UserB'
Host = 'LinuxServer5'
}
New-PSSession -KeyFilePath '/Users/UserB/id_rsa' -Options $options
In dit voorbeeld ziet u hoe u een nieuwe op SSH gebaseerde sessie maakt op een externe Linux-computer met behulp van SSH-opties. De parameter Opties gebruikt een hashtabel met waarden die als opties worden doorgegeven aan de onderliggende ssh
opdracht waarmee de verbinding met het externe systeem tot stand is gebracht.
Parameters
-AllowRedirection
Geeft aan dat deze cmdlet omleiding van deze verbinding met een alternatieve URI (Uniform Resource Identifier) toestaat.
Wanneer u de parameter ConnectionURI gebruikt, kan de externe bestemming een instructie retourneren om om te leiden naar een andere URI. PowerShell leidt standaard geen verbindingen om, maar u kunt deze parameter gebruiken om de verbinding om te leiden.
U kunt ook het aantal keren beperken dat de verbinding wordt omgeleid door de waarde van de sessieoptie MaximumConnectionRedirectionCount te wijzigen. Gebruik de parameter MaximumRedirection van de New-PSSessionOption
cmdlet of stel de eigenschap MaximumConnectionRedirectionCount van de $PSSessionOption voorkeursvariabele in. De standaardwaarde is 5
.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ApplicationName
Hiermee geeft u het naamsegment van de toepassing van de verbindings-URI. Gebruik deze parameter om de naam van de toepassing op te geven wanneer u de connectionURI-parameter niet gebruikt in de opdracht.
De standaardwaarde is de waarde van de $PSSessionApplicationName
voorkeursvariabele op de lokale computer. Als deze voorkeursvariabele niet is gedefinieerd, is WSMAN
de standaardwaarde . Deze waarde is geschikt voor de meeste toepassingen. Zie about_Preference_Variables voor meer informatie.
De WinRM-service gebruikt de naam van de toepassing om een listener te selecteren voor de service van de verbindingsaanvraag. De waarde van deze parameter moet overeenkomen met de waarde van de eigenschap URLPrefix van een listener op de externe computer.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Authentication
Hiermee geeft u het mechanisme op dat wordt gebruikt om de referenties van de gebruiker te verifiëren. De aanvaardbare waarden voor deze parameter zijn:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
De standaardwaarde is Default
.
Zie AuthenticationMechanism Enumeration voor meer informatie over de waarden van deze parameter.
Let op
CredSSP-verificatie (Credential Security Support Provider), waarbij de gebruikersreferenties worden doorgegeven aan een externe computer die moet worden geverifieerd, is ontworpen voor opdrachten waarvoor verificatie is vereist voor meer dan één resource, zoals toegang tot een externe netwerkshare. Dit mechanisme verhoogt het beveiligingsrisico van de externe bewerking. Als de externe computer is aangetast, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.
Type: | AuthenticationMechanism |
Geaccepteerde waarden: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CertificateThumbprint
Hiermee geeft u het certificaat van de digitale openbare sleutel (X509) van een gebruikersaccount dat gemachtigd is om deze actie uit te voeren. Voer de vingerafdruk van het certificaat in.
Certificaten worden gebruikt in verificatie op basis van clientcertificaten. Ze kunnen alleen worden toegewezen aan lokale gebruikersaccounts; ze werken niet met domeinaccounts.
Als u een certificaat wilt ophalen, gebruikt u de Get-Item
of Get-ChildItem
opdracht in het PowerShell-station Cert:
.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ComputerName
Hiermee geeft u een matrix van namen van computers. Met deze cmdlet maakt u een permanente verbinding (PSSession) met de opgegeven computer. Als u meerdere computernamen invoert, New-PSSession
maakt u meerdere PSSession-objecten , één voor elke computer. Standaard is dit de lokale computer.
Typ de NetBIOS-naam, een IP-adres of een volledig gekwalificeerde domeinnaam van een of meer externe computers. Als u de lokale computer wilt opgeven, typt u de computernaam of localhost
een punt (.
). Wanneer de computer zich in een ander domein bevindt dan de gebruiker, is de volledig gekwalificeerde domeinnaam vereist.
U kunt ook een computernaam, tussen aanhalingstekens, doorsluisen naar New-PSSession
.
Als u een IP-adres wilt gebruiken in de waarde van de parameter ComputerName , moet de opdracht de referentieparameter bevatten. De computer moet ook worden geconfigureerd voor HTTPS-transport of het IP-adres van de externe computer moet worden opgenomen in de winRM TrustedHosts-lijst op de lokale computer. Zie 'How to Add a Computer to the Trusted Host List' (Een computer toevoegen aan de lijst met vertrouwde hosts) in about_Remote_Troubleshooting voor instructies voor het toevoegen van een computernaam aan de lijst TrustedHosts.
Als u de lokale computer wilt opnemen in de waarde van de parameter ComputerName , start u Windows PowerShell met behulp van de optie Als administrator uitvoeren.
Type: | String[] |
Aliassen: | Cn |
Position: | 0 |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ConfigurationName
Hiermee geeft u de sessieconfiguratie op die wordt gebruikt voor de nieuwe PSSession.
Voer een configuratienaam of de volledig gekwalificeerde resource-URI in voor een sessieconfiguratie. Als u alleen de configuratienaam opgeeft, wordt de volgende schema-URI voorafgegaan: http://schemas.microsoft.com/PowerShell
De sessieconfiguratie voor een sessie bevindt zich op de externe computer. Als de opgegeven sessieconfiguratie niet bestaat op de externe computer, mislukt de opdracht.
De standaardwaarde is de waarde van de $PSSessionConfigurationName
voorkeursvariabele op de lokale computer. Als deze voorkeursvariabele niet is ingesteld, is de standaardwaarde Microsoft.PowerShell
. Zie about_Preference_Variables voor meer informatie.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ConnectingTimeout
Hiermee geeft u de hoeveelheid tijd in milliseconden op die is toegestaan voor de eerste SSH-verbinding. Als de verbinding niet binnen de opgegeven tijd is voltooid, wordt er een fout geretourneerd.
Deze parameter is geïntroduceerd in PowerShell 7.2
Type: | Int32 |
Position: | Named |
Default value: | unlimited |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ConnectionUri
Hiermee geeft u een URI op waarmee het verbindingseindpunt voor de sessie wordt gedefinieerd. De URI moet volledig gekwalificeerd zijn. De notatie van deze tekenreeks is als volgt:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
De standaardwaarde is als volgt:
http://localhost:5985/WSMAN
Als u geen ConnectionURI opgeeft, kunt u de parameters UseSSL, ComputerName, Port en ApplicationName gebruiken om de ConnectionURI-waarden op te geven.
Geldige waarden voor het transportsegment van de URI zijn HTTP en HTTPS. Als u een verbindings-URI met een transportsegment opgeeft, maar geen poort opgeeft, wordt de sessie gemaakt met standaardenpoorten: 80
voor HTTP en 443
voor HTTPS. Als u de standaardpoorten voor externe communicatie met PowerShell wilt gebruiken, geeft u de poort 5985
op voor HTTP of 5986
voor HTTPS.
Als de doelcomputer de verbinding omleidt naar een andere URI, voorkomt PowerShell de omleiding, tenzij u de parameter AllowRedirection in de opdracht gebruikt.
Type: | Uri[] |
Aliassen: | URI, CU |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ContainerId
Hiermee geeft u een matrix van id's van containers. Met deze cmdlet wordt een interactieve sessie gestart met elk van de opgegeven containers. Gebruik de docker ps
opdracht om een lijst met container-id's op te halen. Zie de Help voor de opdracht docker ps voor meer informatie.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Credential
Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. Standaard is dit de huidige gebruiker.
Typ een gebruikersnaam, zoals User01
of Domain01\User01
, of voer een PSCredential-object in dat is gegenereerd door de Get-Credential
cmdlet. Als u een gebruikersnaam typt, wordt u gevraagd het wachtwoord in te voeren.
Referenties worden opgeslagen in een PSCredential-object en het wachtwoord wordt opgeslagen als SecureString.
Notitie
Zie Hoe veilig is SecureString SecureString?voor meer informatie over SecureString-gegevensbeveiliging.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-EnableNetworkAccess
Geeft aan dat deze cmdlet een interactief beveiligingstoken toevoegt aan loopbacksessies. Met het interactieve token kunt u opdrachten uitvoeren in de loopbacksessie waarmee gegevens van andere computers worden opgehaald. U kunt bijvoorbeeld een opdracht uitvoeren in de sessie waarmee XML-bestanden van een externe computer naar de lokale computer worden gekopieerd.
Een loopbacksessie is een PSSession die afkomstig is en eindigt op dezelfde computer. Als u een loopbacksessie wilt maken, laat u de parameter ComputerName weg of stelt u de waarde ervan in op punt (.
), localhost
of de naam van de lokale computer.
Deze cmdlet maakt standaard loopbacksessies met behulp van een netwerktoken, wat mogelijk onvoldoende machtigingen biedt voor verificatie bij externe computers.
De parameter EnableNetworkAccess is alleen van kracht in loopbacksessies. Als u EnableNetworkAccess gebruikt wanneer u een sessie op een externe computer maakt, slaagt de opdracht, maar wordt de parameter genegeerd.
U kunt externe toegang ook inschakelen in een loopbacksessie met behulp van de CredSSP
waarde van de verificatieparameter , waarmee de sessiereferenties worden gedelegeerd aan andere computers.
Als u de computer wilt beschermen tegen schadelijke toegang, kunnen verbroken loopbacksessies met interactieve tokens, die zijn gemaakt met behulp van de parameter EnableNetworkAccess , alleen opnieuw verbinding maken vanaf de computer waarop de sessie is gemaakt. Verbroken sessies waarvoor CredSSP-verificatie wordt gebruikt, kunnen opnieuw worden verbonden vanaf andere computers. Zie Disconnect-PSSession
voor meer informatie.
Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-HostName
Hiermee geeft u een matrix van computernamen voor een SSH-verbinding (Secure Shell). Dit is vergelijkbaar met de parameter ComputerName , behalve dat de verbinding met de externe computer wordt gemaakt met behulp van SSH in plaats van Windows WinRM.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-KeyFilePath
Hiermee geeft u een sleutelbestandspad op dat wordt gebruikt door Secure Shell (SSH) om een gebruiker op een externe computer te verifiëren.
Met SSH kan gebruikersverificatie worden uitgevoerd via persoonlijke/openbare sleutels als alternatief voor basiswachtwoordverificatie. Als de externe computer is geconfigureerd voor sleutelverificatie, kan deze parameter worden gebruikt om de sleutel op te geven die de gebruiker identificeert.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | String |
Aliassen: | IdentityFilePath |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Name
Hiermee geeft u een beschrijvende naam voor de PSSession.
U kunt de naam gebruiken om te verwijzen naar de PSSession wanneer u andere cmdlets gebruikt, zoals Get-PSSession
en Enter-PSSession
. De naam hoeft niet uniek te zijn voor de computer of de huidige sessie.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Options
Hiermee geeft u een hashtabel op van SSH-opties die worden gebruikt bij het maken van verbinding met een externe SSH-sessie. De mogelijke opties zijn waarden die worden ondersteund door de Unix-versie van de ssh-opdracht .
Alle waarden die expliciet door parameters worden doorgegeven, hebben voorrang op waarden die zijn doorgegeven in de hashtabel Opties . Als u bijvoorbeeld de poortparameter gebruikt, worden alle Port
sleutel-waardeparen overschreven die zijn doorgegeven in de hashtabel Opties .
Type: | Hashtable |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Port
Hiermee geeft u de netwerkpoort op de externe computer die wordt gebruikt voor deze verbinding. Als u verbinding wilt maken met een externe computer, moet de externe computer luisteren op de poort die door de verbinding wordt gebruikt. De standaardpoorten zijn 5985
, de WinRM-poort voor HTTP en 5986
, de WinRM-poort voor HTTPS.
Voordat u een andere poort gebruikt, moet u de WinRM-listener op de externe computer configureren om naar die poort te luisteren. Gebruik de volgende opdrachten om de listener te configureren:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Gebruik de poortparameter alleen als u dit moet doen. De poortinstelling in de opdracht is van toepassing op alle computers of sessies waarop de opdracht wordt uitgevoerd. Een alternatieve poortinstelling kan verhinderen dat de opdracht wordt uitgevoerd op alle computers.
Type: | Int32 |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-RunAsAdministrator
Geeft aan dat de PSSession als beheerder wordt uitgevoerd.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Session
Hiermee geeft u een matrix van PSSession-objecten op die door deze cmdlet worden gebruikt als model voor de nieuwe PSSession. Met deze parameter worden nieuwe PSSession-objecten gemaakt die dezelfde eigenschappen hebben als de opgegeven PSSession-objecten .
Voer een variabele in die de PSSession-objecten of een opdracht bevat waarmee de PSSession-objecten , zoals een New-PSSession
of Get-PSSession
opdracht, worden gemaakt of opgehaald.
De resulterende PSSession-objecten hebben dezelfde computernaam, toepassingsnaam, verbindings-URI, poort, configuratienaam, beperkingslimiet en SSL-waarde (Secure Sockets Layer) als de originelen, maar ze hebben een andere weergavenaam, id en exemplaar-id (GUID).
Type: | PSSession[] |
Position: | 0 |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-SessionOption
Hiermee geeft u geavanceerde opties voor de sessie. Voer een SessionOption-object in, zoals een object dat u maakt met behulp van de New-PSSessionOption
cmdlet of een hash-tabel waarin de sleutels namen van sessieopties zijn en de waarden sessieoptiewaarden zijn.
De standaardwaarden voor de opties worden bepaald door de waarde van de $PSSessionOption
voorkeursvariabele, als deze is ingesteld. Anders worden de standaardwaarden ingesteld op basis van opties die zijn ingesteld in de sessieconfiguratie.
De waarden voor sessieopties hebben voorrang op standaardwaarden voor sessies die zijn ingesteld in de $PSSessionOption
voorkeursvariabele en in de sessieconfiguratie. Ze hebben echter geen voorrang op maximumwaarden, quota of limieten die zijn ingesteld in de sessieconfiguratie.
Zie voor een beschrijving van de sessieopties die de standaardwaarden New-PSSessionOption
bevatten. Zie about_Preference_Variables voor meer informatie over de $PSSessionOption
voorkeursvariabele. Zie about_Session_Configurations (Engelstalig) voor meer informatie over sessieconfiguraties.
Type: | PSSessionOption |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-SSHConnection
Deze parameter gebruikt een matrix van hashtables waarbij elke hashtabel een of meer verbindingsparameters bevat die nodig zijn om een SSH-verbinding (Secure Shell) tot stand te brengen (HostName, Port, UserName, KeyFilePath).
De hashtabelverbindingsparameters zijn hetzelfde als gedefinieerd voor de SSHHost-parameterset .
De parameter SSHConnection is handig voor het maken van meerdere sessies waarbij elke sessie verschillende verbindingsgegevens vereist.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | Hashtable[] |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-SSHTransport
Geeft aan dat de externe verbinding tot stand is gebracht met behulp van Secure Shell (SSH).
PowerShell maakt standaard gebruik van Windows WinRM om verbinding te maken met een externe computer. Deze schakeloptie dwingt PowerShell om de hostnaamparameterset te gebruiken voor het tot stand brengen van een externe verbinding op basis van SSH.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | SwitchParameter |
Geaccepteerde waarden: | true |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Subsystem
Hiermee geeft u het SSH-subsysteem dat wordt gebruikt voor de nieuwe PSSession.
Hiermee geeft u het subsysteem op dat moet worden gebruikt voor het doel zoals gedefinieerd in sshd_config
. Het subsysteem start een specifieke versie van PowerShell met vooraf gedefinieerde parameters. Als het opgegeven subsysteem niet bestaat op de externe computer, mislukt de opdracht.
Als deze parameter niet wordt gebruikt, is de standaardwaarde het powershell
subsysteem.
Type: | String |
Position: | Named |
Default value: | powershell |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ThrottleLimit
Hiermee geeft u het maximum aantal gelijktijdige verbindingen op dat tot stand kan worden gebracht om deze opdracht uit te voeren.
Als u deze parameter weglaat of een waarde invoert van 0
(nul), wordt de standaardwaarde , 32
gebruikt.
De beperkingslimiet is alleen van toepassing op de huidige opdracht, niet op de sessie of op de computer.
Type: | Int32 |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UserName
Hiermee geeft u de gebruikersnaam voor het account dat wordt gebruikt voor het maken van een sessie op de externe computer. De verificatiemethode voor gebruikers is afhankelijk van hoe Secure Shell (SSH) is geconfigureerd op de externe computer.
Als SSH is geconfigureerd voor basiswachtwoordverificatie, wordt u gevraagd om het gebruikerswachtwoord.
Als SSH is geconfigureerd voor gebruikersverificatie op basis van sleutels, kan een sleutelbestandspad worden opgegeven via de keyFilePath-parameter en wordt u niet om een wachtwoord gevraagd. Als het clientgebruikerssleutelbestand zich op een bekende SSH-locatie bevindt, is de keyFilePath-parameter niet nodig voor verificatie op basis van sleutels en vindt gebruikersverificatie automatisch plaats op basis van de gebruikersnaam. Zie de SSH-documentatie over gebruikersverificatie op basis van sleutels voor meer informatie.
Dit is geen vereiste parameter. Als er geen username-parameter is opgegeven, wordt de huidige gebruikersnaam voor aanmelding gebruikt voor de verbinding.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseSSL
Geeft aan dat deze cmdlet het SSL-protocol gebruikt om een verbinding met de externe computer tot stand te brengen. Standaard wordt SSL niet gebruikt.
WS-Management versleutelt alle PowerShell-inhoud die via het netwerk wordt verzonden. De UseSSL-parameter biedt een extra beveiliging waarmee de gegevens via een HTTPS-verbinding worden verzonden in plaats van een HTTP-verbinding.
Als u deze parameter gebruikt, maar SSL niet beschikbaar is op de poort die wordt gebruikt voor de opdracht, mislukt de opdracht.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseWindowsPowerShell
Hiermee maakt u een externe verbinding met een nieuwe Windows PowerShell-runspace op het lokale systeem.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-VMId
Hiermee geeft u een matrix van virtuele-machine-id's. Met deze cmdlet wordt een interactieve PowerShell Direct-sessie gestart met elk van de opgegeven virtuele machines. Zie Automatisering en beheer van virtuele machines met behulp van PowerShell voor meer informatie.
Gebruik Get-VM
dit om de virtuele machines te zien die beschikbaar zijn op uw Hyper-V-host.
Type: | Guid[] |
Aliassen: | VMGuid |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-VMName
Hiermee geeft u een matrix van namen van virtuele machines. Met deze cmdlet wordt een interactieve PowerShell Direct-sessie gestart met elk van de opgegeven virtuele machines. Zie Automatisering en beheer van virtuele machines met behulp van PowerShell voor meer informatie.
Gebruik Get-VM
dit om de virtuele machines te zien die beschikbaar zijn op uw Hyper-V-host.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een tekenreeks doorsluisen naar deze cmdlet.
System.URI
U kunt een URI doorsluisen naar deze cmdlet.
U kunt een sessieobject doorsluisen naar deze cmdlet.
Uitvoerwaarden
Notities
PowerShell bevat de volgende aliassen voor New-PSSession
:
Alle platformen:
nsn
Deze cmdlet maakt gebruik van de externe infrastructuur van PowerShell. Als u deze cmdlet wilt gebruiken, moeten de lokale computer en alle externe computers worden geconfigureerd voor externe communicatie met PowerShell. Zie about_Remote_Requirements voor meer informatie.
Als u een PSSession wilt maken op de lokale computer, start u PowerShell met de optie Als administrator uitvoeren .
Wanneer u klaar bent met de PSSession, gebruikt u de
Remove-PSSession
cmdlet om de PSSession te verwijderen en de bijbehorende resources vrij te geven.De parametersets HostName en SSHConnection zijn opgenomen vanaf PowerShell 6.0. Ze zijn toegevoegd om externe communicatie van PowerShell te bieden op basis van Secure Shell (SSH). Zowel SSH als PowerShell worden ondersteund op meerdere platforms (Windows, Linux, macOS) en externe communicatie van PowerShell via deze platforms waar PowerShell en SSH zijn geïnstalleerd en geconfigureerd. Dit is los van de vorige externe communicatie met Alleen Windows die is gebaseerd op WinRM en veel van de specifieke WinRM-functies en -beperkingen zijn niet van toepassing. Zo worden quota op basis van WinRM, sessieopties, aangepaste eindpuntconfiguratie en functies voor verbinding verbreken/opnieuw verbinden niet ondersteund. Zie externe communicatie van PowerShell via SSH voor meer informatie over het instellen van externe communicatie van PowerShell via SSH.
Het ssh
uitvoerbare bestand haalt configuratiegegevens op uit de volgende bronnen in de volgende volgorde:
- opdrachtregelopties
- configuratiebestand van gebruiker (~/.ssh/config)
- configuratiebestand voor het hele systeem (/etc/ssh/ssh_config)
De volgende cmdlet-parameters worden toegewezen aan ssh
parameters en opties:
Cmdlet-parameter | ssh-parameter | equivalente ssh -o-optie |
---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
Alle waarden die expliciet door parameters worden doorgegeven, hebben voorrang op waarden die zijn doorgegeven in de hashtabel Opties . Zie ssh_config(5) voor meer informatie over ssh_config
bestanden.