Delen via


Enter-PSSession

Start een interactieve sessie met een externe computer.

Syntaxis

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-Port <Int32>]
     [-UseSSL]
     [-ConfigurationName <String>]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMGuid] <Guid>
     -Credential <PSCredential>
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [<CommonParameters>]

Description

De cmdlet Enter-PSSession start een interactieve sessie met één externe computer. Tijdens de sessie worden de opdrachten die u typt, uitgevoerd op de externe computer, net zoals wanneer u rechtstreeks op de externe computer typt. U kunt slechts één interactieve sessie tegelijk hebben.

Normaal gesproken gebruikt u de parameter ComputerName om de naam van de externe computer op te geven. U kunt echter ook een sessie gebruiken die u maakt met behulp van de New-PSSession-cmdlet voor de interactieve sessie. U kunt de cmdlets Disconnect-PSSession, Connect-PSSession of Receive-PSSession echter niet gebruiken om de verbinding met een interactieve sessie te verbreken of opnieuw verbinding te maken.

Als u de interactieve sessie wilt beëindigen en de verbinding met de externe computer wilt verbreken, gebruikt u de cmdlet Exit-PSSession of typt u exit.

Voorbeelden

Voorbeeld 1: Een interactieve sessie starten

PS C:\> Enter-PSSession
[localhost]: PS C:\>

Met deze opdracht start u een interactieve sessie op de lokale computer. De opdrachtprompt verandert om aan te geven dat u nu opdrachten uitvoert in een andere sessie.

De opdrachten die u invoert, worden uitgevoerd in de nieuwe sessie en de resultaten worden als tekst geretourneerd naar de standaardsessie.

Voorbeeld 2: Werken met een interactieve sessie

The first command uses the **Enter-PSSession** cmdlet to start an interactive session with Server01, a remote computer. When the session starts, the command prompt changes to include the computer name.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>

The second command gets the Windows PowerShell process and redirects the output to the Process.txt file. The command is submitted to the remote computer, and the file is saved on the remote computer.
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt

The third command uses the **Exit** keyword to end the interactive session and close the connection.
[Server01]: PS C:\> exit
PS C:\>

The fourth command confirms that the Process.txt file is on the remote computer. A **Get-ChildItem** ("dir") command on the local computer cannot find the file.
PS C:\> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\process.txt

Deze opdracht laat zien hoe u in een interactieve sessie met een externe computer kunt werken.

Voorbeeld 3: de sessieparameter gebruiken

PS C:\> $s = New-PSSession -ComputerName Server01
PS C:\> Enter-PSSession -Session $s
[Server01]: PS C:\>

Deze opdrachten gebruiken de parameter Session van Enter-PSSession- om de interactieve sessie uit te voeren in een bestaande Windows PowerShell-sessie (PSSession).

Voorbeeld 4: Een interactieve sessie starten en de poort- en referentieparameters opgeven

PS C:\> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS C:\>

Met deze opdracht start u een interactieve sessie met de Server01-computer. Hierbij wordt de parameter Port gebruikt om de poort en de parameter Credential op te geven om het account op te geven van een gebruiker die gemachtigd is om verbinding te maken met de externe computer.

Voorbeeld 5: Een interactieve sessie stoppen

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\> Exit-PSSession
PS C:\>

In dit voorbeeld ziet u hoe u een interactieve sessie start en stopt. De eerste opdracht maakt gebruik van de Enter-PSSession cmdlet om een interactieve sessie met de Server01-computer te starten.

De tweede opdracht maakt gebruik van de Exit-PSSession cmdlet om de sessie te beëindigen. U kunt ook het trefwoord afsluiten gebruiken om de interactieve sessie te beëindigen. Exit-PSSession en Exit hetzelfde effect hebben.

Parameters

-AllowRedirection

Hiermee wordt omleiding van deze verbinding naar een alternatieve URI (Uniform Resource Identifier) toegestaan. Standaard is omleiding niet toegestaan.

Wanneer u de parameter ConnectionURI gebruikt, kan de externe bestemming een instructie retourneren om om te leiden naar een andere URI. Windows 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 MaximumConnectionRedirectionCount sessieoptie te wijzigen. Gebruik de parameter MaximumRedirection van de cmdlet New-PSSessionOption of stel de eigenschap MaximumConnectionRedirectionCount in van de $PSSessionOption voorkeursvariabele. De standaardwaarde is 5.

Type:SwitchParameter
Position:Named
Default value:None
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 in de opdracht niet gebruikt.

De standaardwaarde is de waarde van de $PSSessionApplicationName voorkeursvariabele op de lokale computer. Als deze voorkeursvariabele niet is gedefinieerd, is de standaardwaarde WSMAN. 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
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 acceptabele waarden voor deze parameter zijn:

  • Verstek
  • Basisch
  • Credssp
  • Verteren
  • Kerberos
  • Onderhandelen
  • NegotiateWithImplicitCredential

De standaardwaarde is Standaard.

CredSSP-verificatie is alleen beschikbaar in Windows Vista, Windows Server 2008 en latere versies van het Windows-besturingssysteem.

Zie Opsomming AuthenticationMechanism in de MSDN-bibliotheek voor meer informatie over de waarden van deze parameter.

Waarschuwing: CredSSP-verificatie (Credential Security Support Provider), waarbij de referenties van de gebruiker 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 opdracht Get-Item of Get-ChildItem in het Windows PowerShell-certificaat: station.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ComputerName

Hiermee geeft u een computernaam. Met deze cmdlet wordt een interactieve sessie gestart met de opgegeven externe computer. Voer slechts één computernaam in. De standaardwaarde is de lokale computer.

Typ de NetBIOS-naam, het IP-adres of de volledig gekwalificeerde domeinnaam van de computer. U kunt ook een computernaam doorsluisen naar Enter-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 '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.

Opmerking: Als u in Windows Vista en latere versies van het Windows-besturingssysteem de lokale computer wilt opnemen in de waarde van de parameter ComputerName, moet u Windows PowerShell starten met de optie Als administrator uitvoeren.

Type:String
Aliassen:Cn
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-ConfigurationName

Hiermee geeft u de sessieconfiguratie op die wordt gebruikt voor de interactieve sessie.

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: https://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.PowerShell de standaardinstelling. Zie about_Preference_Variables voor meer informatie.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
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>:<Poort>/<ApplicationName->

De standaardwaarde is als volgt:

https://localhost:5985/WSMAN

Als u geen ConnectionURI-opgeeft, kunt u de parameters UseSSL, ComputerName, Porten ApplicationName parameters 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 behulp van standaardenpoorten: 80 voor HTTP en 443 voor HTTPS. Als u de standaardpoorten voor externe communicatie met Windows PowerShell wilt gebruiken, geeft u poort 5985 op voor HTTP of 5986 voor HTTPS.

Als de doelcomputer de verbinding omleidt naar een andere URI, voorkomt Windows PowerShell de omleiding, tenzij u de AllowRedirection parameter in de opdracht gebruikt.

Type:Uri
Aliassen:URI, CU
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. De standaardwaarde is de huidige gebruiker.

Typ een gebruikersnaam, zoals User01, Domain01\User01of User@Domain.com, of voer een PSCredential--object in, zoals een object dat wordt geretourneerd door de Get-Credential-cmdlet.

Wanneer u een gebruikersnaam typt, wordt u door deze cmdlet gevraagd om een wachtwoord.

Type:PSCredential
Position:Named
Default value:None
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 . (dot), localhost of de naam van de lokale computer.

Loopbacksessies worden standaard gemaakt 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 ook externe toegang in een loopbacksessie toestaan met behulp van de CredSSP- waarde van de parameter Authentication, waarmee de sessiereferenties worden gedelegeerd aan andere computers.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Id

Hiermee geeft u de id van een bestaande sessie. Enter-PSSession- gebruikt de opgegeven sessie voor de interactieve sessie.

Gebruik de cmdlet Get-PSSession om de id van een sessie te vinden.

Type:Int32
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-InstanceId

Hiermee geeft u de exemplaar-id van een bestaande sessie. Enter-PSSession- gebruikt de opgegeven sessie voor de interactieve sessie.

De exemplaar-id is een GUID. Gebruik de cmdlet Get-PSSession om de exemplaar-id van een sessie te vinden. U kunt ook de parameters Sessie, Naamof -id gebruiken om een bestaande sessie op te geven. U kunt ook de parameter ComputerName gebruiken om een tijdelijke sessie te starten.

Type:Guid
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Name

Hiermee geeft u de beschrijvende naam van een bestaande sessie. Enter-PSSession- gebruikt de opgegeven sessie voor de interactieve sessie.

Als de naam die u opgeeft overeenkomt met meer dan één sessie, mislukt de opdracht. U kunt ook de Session, InstanceIDof ID parameters gebruiken om een bestaande sessie op te geven. U kunt ook de parameter ComputerName gebruiken om een tijdelijke sessie te starten.

Als u een beschrijvende naam voor een sessie wilt instellen, gebruikt u de parameter Name van de cmdlet New-PSSession.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Port

Hiermee geeft u de netwerkpoort op de externe computer die wordt gebruikt voor deze opdracht. 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 alternatieve 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:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

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

Gebruik de parameter Port niet, tenzij 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

-Session

Hiermee geeft u een Windows PowerShell-sessie (PSSession) te gebruiken voor de interactieve sessie. Deze parameter gebruikt een sessieobject. U kunt ook de parameters Name, InstanceIDof ID gebruiken om een PSSession-op te geven.

Voer een variabele in die een sessieobject of een opdracht bevat waarmee een sessieobject wordt gemaakt of opgehaald, zoals een New-PSSession- of Opdracht Get-PSSession. U kunt ook een sessieobject doorsluisen naar Enter-PSSession. U kunt slechts één PSSession- verzenden met behulp van deze parameter. Als u een variabele invoert die meer dan één PSSessionbevat, mislukt de opdracht.

Wanneer u Exit-PSSession of het trefwoord EXIT gebruikt, wordt de interactieve sessie beëindigd, maar blijft de PSSession- die u hebt gemaakt geopend en beschikbaar voor gebruik.

Type:PSSession
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-SessionOption

Hiermee stelt u geavanceerde opties voor de sessie in. Voer een SessionOption--object in, zoals een object dat u maakt met behulp van de cmdlet New-PSSessionOption of een hash-tabel waarin de sleutels sessieoptienamen 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 New-PSSessionOptionvoor een beschrijving van de sessieopties, inclusief de standaardwaarden. Zie about_Preference_Variablesvoor meer informatie over de $PSSessionOption voorkeursvariabele. Zie about_Session_Configurationsvoor meer informatie over sessieconfiguraties.

Type:PSSessionOption
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-UseSSL

Geeft aan dat deze cmdlet gebruikmaakt van het SSL-protocol (Secure Sockets Layer) om een verbinding met de externe computer tot stand te brengen. SSL wordt standaard niet gebruikt.

WS-Management versleutelt alle Windows PowerShell-inhoud die via het netwerk wordt verzonden. De parameter UseSSL is 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:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-VMGuid

Hiermee geeft u de id van een virtuele machine.

Type:Guid
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-VMName

Hiermee geeft u de naam van een virtuele machine.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

Invoerwaarden

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

U kunt een computernaam, als een tekenreeks of een sessieobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

De cmdlet retourneert geen uitvoer.

Notities

  • Als u verbinding wilt maken met een externe computer, moet u lid zijn van de groep Administrators op de externe computer.
  • Als u in Windows Vista en latere versies van het Windows-besturingssysteem een interactieve sessie wilt starten op de lokale computer, moet u Windows PowerShell starten met de optie Als administrator uitvoeren.
  • Wanneer u Enter-PSSession-gebruikt, wordt uw gebruikersprofiel op de externe computer gebruikt voor de interactieve sessie. De opdrachten in het profiel voor externe gebruikers, inclusief opdrachten voor het toevoegen van Windows PowerShell-modules en het wijzigen van de opdrachtprompt, worden uitgevoerd voordat de externe prompt wordt weergegeven.
  • Enter-PSSession maakt gebruik van de cultuurinstelling van de gebruikersinterface op de lokale computer voor de interactieve sessie. Gebruik de $UICulture automatische variabele om de lokale UI-cultuur te vinden.
  • voor Enter-PSSession- zijn de cmdlets Get-Command, Out-Default en Exit-PSSession vereist. Als deze cmdlets niet zijn opgenomen in de sessieconfiguratie op de externe computer, mislukt de Enter-PSSession opdrachten.
  • In tegenstelling tot Invoke-Command, die de opdrachten parseert en interpreteert voordat deze naar de externe computer worden verzonden, Enter-PSSession de opdrachten rechtstreeks naar de externe computer verzendt zonder interpretatie.
  • Als de sessie die u wilt invoeren bezig is met het verwerken van een opdracht, kan er een vertraging optreden voordat Windows PowerShell reageert op de opdracht Enter-PSSession. U wordt verbonden zodra de sessie beschikbaar is. Als u de opdracht Enter-PSSession wilt annuleren, drukt u op CTRL+C.