New-PSSession

Hiermee maakt u een permanente verbinding met een lokale of externe computer.

Syntax

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
   -UseWindowsPowerShell
   [-Name <string[]>]
   [<CommonParameters>]
New-PSSession
   [-Name <String[]>]
   [-Port <Int32>]
   [-HostName] <String[]>
   [-UserName <String>]
   [-KeyFilePath <String>]
   [-SSHTransport]
   [-Subsystem <String>]
   [<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 waarmee gegevens worden gedeeld, 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 te communiceren met een externe computer, 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 ComputerName-parameters van Enter-PSSession of Invoke-Command. Wanneer u de parameter ComputerName gebruikt, maakt PowerShell een tijdelijke verbinding die wordt gebruikt voor de opdracht en wordt deze vervolgens 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 worden gebruikt op meerdere platforms (Windows, Linux, macOS). Voor sessies op basis van SSH gebruikt u de parameter HostName of SSHConnection om de externe computer en relevante verbindingsgegevens op te geven. Zie Externe toegang van PowerShell via SSH voor meer informatie over het instellen van externe communicatie met PowerShell SSH.

Notitie

Bij gebruik van WSMan externe communicatie van een Linux- of macOS-client met een HTTPS-eindpunt waarbij het servercertificaat niet wordt vertrouwd (bijvoorbeeld een zelfondertekend certificaat). U moet een PSSessionOption opgeven met de waarden SkipCACheck en SkipCNCheck die zijn ingesteld op $true om de verbinding tot stand te brengen. Doe dit alleen als u zich in een omgeving bevindt waarin u zeker bent van het servercertificaat en de netwerkverbinding met het doelsysteem.

Voorbeelden

Voorbeeld 1: een sessie Creatie 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 nu deze PSSession gebruiken om opdrachten uit te voeren op de lokale computer.

Voorbeeld 2: een sessie Creatie 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 Creatie 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. De PSSession Server01 wordt toegewezen aan $s1, de Server02 PSSession aan $s2en de Server03 PSSession aan $s3.

Wanneer u meerdere objecten toewijst aan een reeks variabelen, wijst PowerShell elk object toe aan respectievelijk een variabele in de reeks. Als er meer objecten dan variabelen zijn, worden alle resterende objecten toegewezen aan de laatste variabele. Als er meer variabelen dan objecten zijn, zijn de resterende variabelen leeg ($null).

Voorbeeld 4: een sessie Creatie 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 de 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 parameter Port voor meer informatie.

Voorbeeld 5: een sessie Creatie 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 van New-PSSession om de PSSession op te geven die is opgeslagen in de $s variabele. Hierbij worden de referenties van de Domain1\Admin01 gebruiker gebruikt om de opdracht te voltooien.

Voorbeeld 6: Creatie een sessie 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 worden gemaakt, worden standaard gemaakt met een lokaal bereik en PSSession-objecten die in een script zijn gemaakt, hebben een scriptbereik.

Als u een PSSession met een globaal bereik wilt maken, maakt u een nieuwe PSSession en slaat u de PSSession op in een variabele die naar een globaal bereik wordt gecast. In dit geval wordt de $s variabele omgezet in een globaal bereik.

De opdracht gebruikt de parameter ComputerName om de externe computer op te geven. Omdat de computer zich in een ander domein dan het gebruikersaccount bevindt, wordt de volledige naam van de computer opgegeven samen met de referenties van de gebruiker.

Voorbeeld 7: Creatie sessies 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 zijn opgeslagen in een database, spreadsheet, tekstbestand of andere tekst converteerbare indeling.

Voorbeeld 8: een sessie Creatie 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. De URI-parameter wordt gebruikt om het transportprotocol, de externe computer, de poort en een alternatieve sessieconfiguratie op te geven. Ook wordt de parameter Credential 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 reeks 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 gebruikmaakt van de Get-Content cmdlet om de lijst met computernamen van het Servers.txt bestand op te halen.

De opdracht gebruikt de parameter Credential 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 gebruikt de parameter AsJob van de Invoke-Command cmdlet om een achtergrondtaak te starten waarmee een Get-Process PowerShell opdracht wordt uitgevoerd 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 Creatie met behulp van de bijbehorende URI

New-PSSession -ConnectionURI https://management.exchangelabs.com/Management

Met deze opdracht maakt u een PSSession-object dat verbinding maakt met een computer die is opgegeven door een URI in plaats van een computernaam.

Voorbeeld 11: een sessieoptie Creatie

$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 Creatie 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 om wachtwoorden te vragen, krijgt u een wachtwoordprompt. Anders moet u gebruikersverificatie op basis van een SSH-sleutel gebruiken.

Voorbeeld 13: een sessie Creatie 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). De parameter Poort wordt 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 Creatie 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 behulp van Secure Shell (SSH) en de parameterset SSHConnection . De parameter SSHConnection gebruikt een matrix met hashtabellen die verbindingsgegevens voor elke sessie bevatten. Houd er rekening mee dat in dit voorbeeld SSH is geconfigureerd voor de externe doelcomputers om ondersteuning te bieden voor gebruikersverificatie op basis van sleutels.

Parameters

-AllowRedirection

Geeft aan dat deze cmdlet omleiding van deze verbinding naar 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 sessiewaarde MaximumConnectionRedirectionCount te wijzigen. Gebruik de parameter MaximumRedirection van de New-PSSessionOption cmdlet of stel de eigenschap MaximumConnectionRedirectionCount in van de $PSSessionOption voorkeursvariabele. De standaardwaarde is 5.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Hiermee geeft u het toepassingsnaamsegment van de verbindings-URI. Gebruik deze parameter om de naam van de toepassing op te geven wanneer u de parameter ConnectionURI 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 WSMANde 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 om de verbindingsaanvraag te verwerken. 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
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Waarschuwing

CredSSP-verificatie (Credential Security Support Provider), waarbij de gebruikersreferenties worden doorgegeven aan een externe computer om te 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 gecompromitteerd, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Hiermee geeft u het digitale openbare sleutelcertificaat (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 opdracht of Get-ChildItem in het PowerShell-station Cert: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Hiermee geeft u een matrix met 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 , localhostof een punt (.). Wanneer de computer zich in een ander domein dan de gebruiker bevindt, is de volledig gekwalificeerde domeinnaam vereist. U kunt ook een computernaam tussen aanhalingstekens doorsnijden naar New-PSSession.

Als u een IP-adres wilt gebruiken in de waarde van de parameter ComputerName , moet de opdracht de parameter Credential 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 'Een computer toevoegen aan de lijst met vertrouwde hosts' in about_Remote_Troubleshooting voor instructies voor het toevoegen van een computernaam aan de lijst met vertrouwde hosts.

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[]
Aliases:Cn
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Hiermee geeft u de sessieconfiguratie 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 vooraf gebruikt: 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 Microsoft.PowerShellde standaardwaarde . Zie about_Preference_Variables voor meer informatie.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ConnectionUri

Hiermee geeft u een URI die het verbindingseindpunt voor de sessie definieert. De URI moet volledig zijn gekwalificeerd. De indeling 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 standaardpoorten: 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[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

Hiermee geeft u een matrix van id's van containers op. Deze cmdlet start een interactieve sessie 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
Required:True
Accept pipeline input:True
Accept wildcard characters: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 door de Get-Credential cmdlet is gegenereerd. 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 een SecureString.

Notitie

Zie Hoe veilig is SecureString? voor meer informatie over SecureString-gegevensbeveiliging.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-EnableNetworkAccess

Geeft aan dat deze cmdlet een interactief beveiligingstoken toevoegt aan loopback-sessies. Met het interactieve token kunt u opdrachten uitvoeren in de loopback-sessie 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 van en eindigt op dezelfde computer. Als u een loopback-sessie wilt maken, laat u de parameter ComputerName weg of stelt u de waarde ervan in op punt (.), localhostof de naam van de lokale computer.

Standaard maakt deze cmdlet loopback-sessies met behulp van een netwerktoken, wat mogelijk niet voldoende machtigingen biedt om te verifiëren bij externe computers.

De parameter EnableNetworkAccess is alleen effectief 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 ook externe toegang inschakelen in een loopbacksessie met behulp van de CredSSP waarde van de parameter Verificatie , die de sessiereferenties delegeert aan andere computers.

Om de computer te beschermen tegen schadelijke toegang, kunnen losgekoppelde 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. Niet-verbonden sessies die gebruikmaken van CredSSP-verificatie kunnen opnieuw worden verbonden vanaf andere computers. Voor meer informatie raadpleegt u Disconnect-PSSession.

Deze parameter is geïntroduceerd in PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostName

Hiermee geeft u een matrix van computernamen voor een secure shell (SSH) gebaseerde verbinding. 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
Required:True
Accept pipeline input:False
Accept wildcard characters: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 waarmee de gebruiker wordt geïdentificeerd.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Type:String
Aliases:IdentityFilePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Hiermee geeft u een beschrijvende naam voor de PSSession.

U kunt de naam gebruiken om naar de PSSession te verwijzen 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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 de verbinding 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 op die poort te luisteren. Gebruik de volgende opdrachten om de listener te configureren:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

Gebruik de poortparameter niet, tenzij u dat 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 op alle computers wordt uitgevoerd.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

Geeft aan dat de PSSession wordt uitgevoerd als administrator.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Hiermee geeft u een matrix van PSSession-objecten die deze cmdlet gebruikt als een model voor de nieuwe PSSession. Met deze parameter maakt u nieuwe PSSession-objecten die dezelfde eigenschappen hebben als de opgegeven PSSession-objecten .

Voer een variabele in die de PSSession-objecten bevat of een opdracht waarmee de PSSession-objecten worden gemaakt of opgehaald, zoals een New-PSSession opdracht of Get-PSSession .

De resulterende PSSession-objecten hebben dezelfde computernaam, toepassingsnaam, verbindings-URI, poort, configuratienaam, beperkingslimiet en SSL-waarde (Secure Sockets Layer) als de oorspronkelijke objecten, maar ze hebben een andere weergavenaam, id en exemplaar-id (GUID).

Type:PSSession[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 waarden voor sessieopties zijn.

De standaardwaarden voor de opties worden bepaald door de waarde van de $PSSessionOption voorkeursvariabele, als deze is ingesteld. Anders worden de standaardwaarden bepaald door opties die zijn ingesteld in de sessieconfiguratie.

De waarden van de sessieoptie 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-PSSessionOptionbevatten. 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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SSHConnection

Deze parameter maakt gebruik van een matrix met hashtabellen 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 hashtabele verbindingsparameters zijn hetzelfde als gedefinieerd voor de SSHHost-parameterset .

De parameter SSHConnection is handig voor het maken van meerdere sessies waarbij elke sessie andere verbindingsgegevens vereist.

Deze parameter is geïntroduceerd in PowerShell 6.0.

Type:Hashtable[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 parameterset HostName 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
Accepted values:true
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Subsystem

Hiermee geeft u het SSH-subsysteem dat wordt gebruikt voor de nieuwe PSSession.

Hiermee geeft u het subsysteem op dat op het doel moet worden gebruikt, zoals gedefinieerd in sshd_config. Het subsysteem start een specifieke versie van PowerShell met vooraf gedefinieerde parameters. Als het opgegeven subsysteem niet op de externe computer bestaat, mislukt de opdracht.

Als deze parameter niet wordt gebruikt, is het subsysteem de powershell standaardwaarde.

Type:String
Position:Named
Default value:powershell
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ThrottleLimit

Hiermee geeft u het maximum aantal gelijktijdige verbindingen dat tot stand kan worden gebracht om deze opdracht uit te voeren. Als u deze parameter weglaat of een waarde van 0 (nul) invoert, 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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 van de gebruiker 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 een sleutel, kan een pad naar het sleutelbestand worden opgegeven via de parameter KeyFilePath en wordt u niet om een wachtwoord gevraagd. Als het clientgebruikerssleutelbestand zich op een bekende SSH-locatie bevindt, is de parameter KeyFilePath niet nodig voor verificatie op basis van sleutels en vindt gebruikersverificatie automatisch plaats op basis van de gebruikersnaam. Zie SSH-documentatie over gebruikersverificatie op basis van sleutels voor meer informatie.

Dit is geen vereiste parameter. Als er geen parameter UserName 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
Required:False
Accept pipeline input:False
Accept wildcard characters: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 parameter UseSSL biedt een extra beveiliging waarmee de gegevens via een HTTPS-verbinding worden verzonden in plaats van via 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:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseWindowsPowerShell

Hiermee maakt u een externe verbinding met een nieuwe Windows PowerShell runspace op het lokale systeem.

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMId

Hiermee geeft u een matrix van virtuele machine-id's. Deze cmdlet start een interactieve sessie met elk van de opgegeven virtuele machines. Gebruik de volgende opdracht om de virtuele machines te zien die voor u beschikbaar zijn:

Get-VM | Select-Object -Property Name, ID

Type:Guid[]
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Hiermee geeft u een matrix met namen van virtuele machines. Deze cmdlet start een interactieve sessie met elk van de opgegeven virtuele machines. Gebruik Get-VM de cmdlet om de virtuele machines te zien die voor u beschikbaar zijn.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Invoerwaarden

System.String, System.URI, System.Management.Automation.Runspaces.PSSession

U kunt een tekenreeks, URI of sessieobject doorspezen naar deze cmdlet.

Uitvoerwaarden

PSSession

Notities

  • Deze cmdlet maakt gebruik van de externe infrastructuur van PowerShell. Als u deze cmdlet wilt gebruiken, moeten de lokale computer en alle externe computers zijn geconfigureerd voor externe communicatie met PowerShell. Zie about_Remote_Requirements voor meer informatie.
  • Als u een PSSession op de lokale computer wilt maken, 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 met PowerShell werkt via deze platforms waarop PowerShell en SSH zijn geïnstalleerd en geconfigureerd. Dit staat los van de vorige externe communicatie met alleen Windows die is gebaseerd op WinRM en veel van de winRM-specifieke functies en beperkingen zijn niet van toepassing. Op WinRM gebaseerde quota, sessieopties, aangepaste eindpuntconfiguratie en functies voor verbinding verbreken/opnieuw verbinden worden bijvoorbeeld niet ondersteund. Zie Externe toegang van PowerShell via SSH voor meer informatie over het instellen van externe communicatie met PowerShell SSH.

Het ssh uitvoerbare bestand verkrijgt configuratiegegevens van de volgende bronnen in de volgende volgorde:

  1. opdrachtregelopties
  2. configuratiebestand van de gebruiker (~/.ssh/config)
  3. configuratiebestand voor het hele systeem (/etc/ssh/ssh_config)

De volgende cmdlet-parameters worden toegewezen aan ssh parameters en opties:

Cmdlet-parameter SSH-parameter equivalent 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>

Zie ssh_config(5) voor meer informatie over ssh_config bestanden.