Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Korte beschrijving
Hierin wordt beschreven hoe u externe opdrachten uitvoert in PowerShell.
Lange beschrijving
U kunt externe opdrachten uitvoeren op één of meerdere externe computers met behulp van een tijdelijke of permanente verbinding. U kunt ook een interactieve sessie starten met één externe computer.
Notitie
Als u externe communicatie van PowerShell wilt gebruiken, moet u de lokale en externe computers configureren voor externe communicatie. Zie about_Remote_Requirementsvoor meer informatie.
Een interactieve sessie starten
De eenvoudigste manier om externe opdrachten uit te voeren, is door een interactieve sessie met een externe computer te starten.
Wanneer de sessie wordt gestart, worden de opdrachten die u typt, uitgevoerd op de externe computer, alsof u ze rechtstreeks op de externe computer hebt getypt. U kunt in elke interactieve sessie verbinding maken met slechts één computer.
Gebruik de cmdlet Enter-PSSession om een interactieve sessie te starten. Met de volgende opdracht wordt een interactieve sessie gestart met de Server01-computer:
Enter-PSSession Server01
PowerShell wijzigt de opdrachtprompt om de naam van de externe computer op te nemen.
Server01\PS>
U kunt nu opdrachten typen op de Server01-computer.
Als u de interactieve sessie wilt beëindigen, typt u:
Exit-PSSession
Zie Enter-PSSession-voor meer informatie.
Een externe opdracht uitvoeren
Als u andere opdrachten wilt uitvoeren op externe computers, gebruikt u de cmdlet Invoke-Command.
Als u één opdracht of enkele niet-gerelateerde opdrachten wilt uitvoeren, gebruikt u de parameter ComputerName van Invoke-Command om de externe computers op te geven. Gebruik de parameter ScriptBlock om de opdracht op te geven.
Met de volgende opdracht wordt bijvoorbeeld een Get-Culture opdracht uitgevoerd op de Server01-computer.
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}
Een permanente verbinding maken
Wanneer u de parameter ComputerName van de cmdlet Invoke-Command gebruikt, brengt PowerShell een tijdelijke verbinding tot stand met de externe computer. De verbinding wordt gesloten wanneer de opdracht is voltooid. Alle variabelen of functies die in deze tijdelijke sessie zijn gedefinieerd, gaan verloren.
Als u een permanente verbinding met een externe computer wilt maken, gebruikt u de cmdlet New-PSSession. Met de volgende opdracht worden bijvoorbeeld PSSessions gemaakt op de Computers Server01 en Server02 en worden de PSSessions vervolgens opgeslagen in de $s variabele.
$s = New-PSSession -ComputerName Server01, Server02
Opdrachten uitvoeren in een PSSession
Met een PSSession kunt u een reeks externe opdrachten uitvoeren waarmee gegevens worden gedeeld, zoals functies, aliassen en de waarden van variabelen. Als u opdrachten wilt uitvoeren in een PSSession, gebruikt u de parameter Session van de cmdlet Invoke-Command.
De volgende opdracht gebruikt bijvoorbeeld de Invoke-Command cmdlet om een Get-Process opdracht uit te voeren in de PSSessions op de Server01- en Server02-computers.
Met de opdracht worden de processen opgeslagen in een $p variabele in elke PSSession.
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}
Omdat de PSSession gebruikmaakt van een permanente verbinding, kunt u een andere opdracht uitvoeren in dezelfde PSSession die gebruikmaakt van de $p variabele. Met de volgende opdracht wordt het aantal processen geteld dat is opgeslagen in $p.
Invoke-Command -Session $s -ScriptBlock {$p.Count}
Een externe opdracht uitvoeren op meerdere computers
Als u een externe opdracht wilt uitvoeren op meerdere computers, typt u alle computernamen in de waarde van de parameter ComputerName van Invoke-Command. Scheid de namen met komma's.
Met de volgende opdracht wordt bijvoorbeeld een Get-Culture opdracht uitgevoerd op drie computers:
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}
U kunt ook een opdracht uitvoeren in meerdere PSSessions. Met de volgende opdrachten maakt u PSSessions op de computers Server01, Server02 en Server03 en voert u vervolgens een Get-Culture opdracht uit in elk van de PSSessions.
$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
Als u de lijst met lokale computers wilt opnemen, typt u de naam van de lokale computer, typt u een punt (.) of typt u localhost.
Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}
Een script uitvoeren op externe computers
Als u een lokaal script wilt uitvoeren op externe computers, gebruikt u de parameter FilePath- van Invoke-Command. U hoeft geen bestanden te kopiëren. Met de volgende opdracht wordt bijvoorbeeld het Sample.ps1 script uitgevoerd op de S1- en S2-computers:
Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1
PowerShell retourneert de resultaten van het script naar de lokale computer.
Een externe opdracht stoppen
Als u een opdracht wilt onderbreken, drukt u op Ctrl+c. PowerShell geeft de interrupt-aanvraag door aan de externe computer waar de externe opdracht wordt beëindigd.
Voor meer informatie
Zie about_Remote_Requirementsvoor informatie over de systeemvereisten voor externe communicatie.
Zie about_Remote_Outputvoor hulp bij het opmaken van externe uitvoer.
Zie Veelgestelde vragen over externe communicatievoor informatie over hoe externe gegevens, speciale configuraties, beveiligingsproblemen en andere veelgestelde vragen over externe communicatie kunnen worden beheerd.
Zie about_Remote_Troubleshootingvoor hulp bij het oplossen van externe fouten.
Zie about_PSSessionsvoor informatie over PSSessions en permanente verbindingen.
Zie about_Jobsvoor meer informatie over PowerShell-achtergrondtaken.