about_PSSessions

Korte beschrijving

Beschrijft Windows PowerShell-sessies (PSSessions) en legt uit hoe u een permanente verbinding tot stand brengt met een externe computer.

Lange beschrijving

Als u Windows PowerShell-opdrachten wilt uitvoeren op een externe computer, kunt u de parameter ComputerName van een cmdlet gebruiken of een Windows PowerShell-sessie (PSSession) maken en opdrachten uitvoeren in de PSSession.

Wanneer u een PSSession maakt, maakt Windows PowerShell een permanente verbinding met de externe computer. Gebruik een PSSession om een reeks gerelateerde opdrachten uit te voeren op een externe computer. Opdrachten die in dezelfde PSSession worden uitgevoerd, kunnen gegevens delen, zoals de waarden van variabelen, aliassen en functies.

U kunt ook een PSSession maken op de lokale computer en er opdrachten in uitvoeren. Een lokale PSSession maakt gebruik van de externe infrastructuur van Windows PowerShell om de PSSession te maken en te onderhouden.

Vanaf Windows PowerShell 3.0 zijn PSSessions onafhankelijk van de sessies waarin ze worden gemaakt. Actieve PSSessions worden onderhouden op de externe computer (of de computer aan het externe uiteinde of aan de serverzijde van de verbinding). Als gevolg hiervan kunt u de verbinding met de PSSession verbreken en op een later tijdstip opnieuw verbinding maken vanaf dezelfde computer of vanaf een andere computer.

In dit onderwerp wordt uitgelegd hoe u PSSessions kunt maken, gebruiken, ophalen en verwijderen. Zie about_PSSession_Details voor meer informatie.

Opmerking: PSSessions maken gebruik van de externe infrastructuur van Windows PowerShell. Als u PSSessions wilt gebruiken, moeten de lokale en externe computers worden geconfigureerd voor externe communicatie. Zie about_Remote_Requirements voor meer informatie.

Als u in Windows Vista en latere versies van Windows een PSSession wilt maken op een lokale computer, moet u Windows PowerShell starten met de optie Uitvoeren als administrator.

Wat is een sessie?

Een sessie is een omgeving waarin Windows PowerShell wordt uitgevoerd.

Telkens wanneer u Windows PowerShell start, wordt er een sessie voor u gemaakt en kunt u opdrachten uitvoeren in de sessie. U kunt ook items toevoegen aan uw sessie, zoals modules en modules, en u kunt items maken, zoals variabelen, functies en aliassen. Deze items bestaan alleen in de sessie en worden verwijderd wanneer de sessie wordt beëindigd.

U kunt ook door gebruikers beheerde sessies maken, ook wel 'Windows PowerShell-sessies' of 'PSSessions' genoemd, op de lokale computer of op een externe computer. Net als bij de standaardsessie kunt u opdrachten uitvoeren in een PSSession en items toevoegen en maken. In tegenstelling tot de sessie die automatisch wordt gestart, kunt u echter de PSSessions beheren die u maakt. U kunt ze ophalen, maken, configureren en verwijderen, de verbinding verbreken en er opnieuw verbinding mee maken, en meerdere opdrachten uitvoeren in dezelfde PSSession. De PSSession blijft beschikbaar totdat u deze verwijdert of er een time-out optreedt.

Normaal gesproken maakt u een PSSession om een reeks gerelateerde opdrachten uit te voeren op een externe computer. Wanneer u een PSSession maakt op een externe computer, maakt Windows PowerShell een permanente verbinding met de externe computer om de sessie te ondersteunen.

Als u de parameter ComputerName van de Invoke-Command of Enter-PSSession cmdlet gebruikt om een externe opdracht uit te voeren of om een interactieve sessie te starten, maakt Windows PowerShell een tijdelijke sessie op de externe computer en sluit de sessie zodra de opdracht is voltooid of zodra de interactieve sessie is beëindigd. U kunt deze tijdelijke sessies niet beheren en u kunt ze niet gebruiken voor meer dan één opdracht of één interactieve sessie.

In Windows PowerShell is de 'huidige sessie' de sessie waarin u werkt. De 'huidige sessie' kan verwijzen naar elke sessie, met inbegrip van een tijdelijke sessie of een PSSession.

Waarom een PSSession gebruiken?

Gebruik een PSSession wanneer u een permanente verbinding met een externe computer nodig hebt. Met een PSSession kunt u een reeks opdrachten uitvoeren waarmee gegevens worden gedeeld, zoals de waarde van variabelen, de inhoud van een functie of de definitie van een alias.

U kunt externe opdrachten uitvoeren zonder een PSSession te maken. Gebruik de parameter ComputerName van cmdlets die extern zijn ingeschakeld om één opdracht of een reeks niet-gerelateerde opdrachten uit te voeren op een of meer computers.

Wanneer u de parameter ComputerName van Invoke-Command of Enter-PSSession, Windows PowerShell maakt een tijdelijke verbinding met de externe computer en sluit de verbinding zodra de opdracht is voltooid. Alle gegevenselementen die u maakt, gaan verloren wanneer de verbinding wordt gesloten.

Andere cmdlets met een ComputerName-parameter , zoals Get-Eventlog en Get-WmiObject, gebruiken verschillende externe technologieën om gegevens te verzamelen. Geen maakt een permanente verbinding zoals een PSSession.

Een PSSession maken

Gebruik de New-PSSession cmdlet om een PSSession te maken. Als u de PSSession wilt maken op een externe computer, gebruikt u de parameter ComputerName van de New-PSSession cmdlet.

Met de volgende opdracht maakt u bijvoorbeeld een nieuwe PSSession op de Server01-computer.

New-PSSession -ComputerName Server01

Wanneer u de opdracht verzendt, New-PSSession maakt u de PSSession en retourneert u een object dat de PSSession vertegenwoordigt. U kunt het object opslaan in een variabele wanneer u de PSSession maakt, of u kunt een Get-PSSession opdracht gebruiken om de PSSession op een later tijdstip op te halen.

Met de volgende opdracht maakt u bijvoorbeeld een nieuwe PSSession op de Server01-computer en slaat u het resulterende object op in de $ps variabele.

$ps = New-PSSession -ComputerName Server01

PSSessions maken op meerdere computers

Als u PSSessions op meerdere computers wilt maken, gebruikt u de parameter ComputerName van de New-PSSession cmdlet. Typ de namen van de externe computers in een door komma's gescheiden lijst.

Als u bijvoorbeeld PSSessions wilt maken op de computers Server01, Server02 en Server03, typt u:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession maakt één PSSession op elk van de externe computers.

PSSessions ophalen

Gebruik de Get-PSSession cmdlet zonder de parameter ComputerName om de PSSessions op te halen die in uw huidige sessie zijn gemaakt. Get-PSSession retourneert hetzelfde type object dat New-PSSession wordt geretourneerd.

Met de volgende opdracht worden alle PSSessions opgeslagen die in de huidige sessie zijn gemaakt.

Get-PSSession

De standaardweergave van de PSSessions toont hun id en een standaardweergavenaam. U kunt een alternatieve weergavenaam toewijzen wanneer u de sessie maakt.

Id   Name       ComputerName    State    ConfigurationName
---  ----       ------------    -----    ---------------------
1    Session1   Server01        Opened   Microsoft.PowerShell
2    Session2   Server02        Opened   Microsoft.PowerShell
3    Session3   Server03        Opened   Microsoft.PowerShell

U kunt de PSSessions ook opslaan in een variabele. Met de volgende opdracht worden de PSSessions opgeslagen in de variabele $ps 123.

$ps123 = Get-PSSession

Wanneer u de PSSession-cmdlets gebruikt, kunt u verwijzen naar een PSSession op basis van de id, de naam of de exemplaar-id (een GUID). Met de volgende opdracht wordt een PSSession op basis van de bijbehorende id opgeslagen en opgeslagen in de variabele $ps 01.

$ps01 = Get-PSSession -Id 1

Vanaf Windows PowerShell 3.0 worden PSSessions onderhouden op de externe computer. Als u PSSessions wilt ophalen die u hebt gemaakt op bepaalde externe computers, gebruikt u de parameter ComputerName van de Get-PSSession cmdlet. Met de volgende opdracht haalt u de PSSessions op die u hebt gemaakt op de externe server01-computer. Dit omvat PSSessions die zijn gemaakt in de huidige sessie en in andere sessies op de lokale computer of andere computers.

Get-PSSession -ComputerName Server01

In Windows PowerShell 2.0 Get-PSSession krijgt u alleen de PSSessions die in de huidige sessie zijn gemaakt. Er worden geen PSSessions weergegeven die zijn gemaakt in andere sessies of op andere computers, zelfs als de sessies zijn verbonden met en opdrachten uitvoeren op de lokale computer.

Opdrachten uitvoeren in een PSSession

Gebruik de Invoke-Command cmdlet om een opdracht uit te voeren in een of meer PSSessions. Gebruik de sessieparameter om de PSSessions en de parameter ScriptBlock op te geven om de opdracht op te geven.

Als u bijvoorbeeld een Get-ChildItem opdracht ('dir') wilt uitvoeren in elk van de drie PSSessions die zijn opgeslagen in de variabele $ps 123, typt u:

Invoke-Command -Session $ps123 -ScriptBlock { Get-ChildItem }

PSSessions verwijderen

Wanneer u klaar bent met de PSSession, gebruikt u de Remove-PSSession cmdlet om de PSSession te verwijderen en de resources vrij te geven die het gebruikte.

Remove-PSSession -Session $ps

or

Remove-PSSession -Id 1

Als u een PSSession wilt verwijderen van een externe computer, gebruikt u de parameter ComputerName van de Remove-PSSession cmdlet.

Remove-PSSession -ComputerName Server01 -Id 1

Als u de PSSession niet verwijdert, blijft de PSSession beschikbaar voor gebruik totdat er een time-out optreedt.

U kunt ook de parameter IdleTimeout van de New-PSSessionOption cmdlet gebruiken om een verlooptijd in te stellen voor een niet-actieve PSSession. Zie New-PSSessionOption voor meer informatie.

De PSSession-cmdlets

Voor een lijst met PSSession-cmdlets, typt u:

Get-Help *-PSSession
  • Verbinding maken-PSSession: Verbinding maken een PSSession naar de huidige sessie
  • Disconnect-PSSession: Hiermee verbreekt u een PSSession van de huidige sessie
  • Enter-PSSession: Start een interactieve sessie
  • Exit-PSSession: Een interactieve sessie beëindigen
  • Get-PSSession: Haalt de PSSessions op in de huidige sessie
  • New-PSSession: Hiermee maakt u een nieuwe PSSession op een lokale of externe computer
  • Receive-PSSession: Haalt de resultaten op van opdrachten die zijn uitgevoerd in een niet-verbonden sessie
  • Remove-PSSession: Hiermee verwijdert u de PSSessions in de huidige sessie

Meer informatie

Zie about_PSSession_Details voor meer informatie over PSSessions.

Zie ook