Externe opdrachten uitvoerenRunning Remote Commands

U kunt de opdrachten uitvoeren op een of honderden computers met een enkele Windows PowerShell-opdracht.You can run commands on one or hundreds of computers with a single Windows PowerShell command. Windows PowerShell biedt ondersteuning voor externe verwerking met behulp van verschillende technologieën, zoals WMI, RPC en WS-Management.Windows PowerShell supports remote computing by using various technologies, including WMI, RPC, and WS-Management.

Externe toegang in PowerShell-kernRemoting in PowerShell Core

PowerShell-Core, de nieuwere versie van PowerShell op Windows-, Mac OS- en Linux, WMI, ondersteunt WS-Management en SSH voor externe toegang.PowerShell Core, the newer edition of PowerShell on Windows, macOS, and Linux, supports WMI, WS-Management, and SSH remoting. (RPC wordt niet langer ondersteund.)(RPC is no longer supported.)

Zie voor meer informatie op om in te stellen:For more information on setting this up, see:

  • [SSH Remoting in PowerShell Core] [de ssh-remoting][SSH Remoting in PowerShell Core][ssh-remoting]
  • [WinRM Remoting in PowerShell Core] [winrm remoting][WinRM Remoting in PowerShell Core][winrm-remoting]

Externe toegang zonder configuratieRemoting Without Configuration

Veel Windows PowerShell-cmdlets hebben de parameter ComputerName waarmee u kunt het verzamelen van gegevens en instellingen op een of meer externe computers wijzigen.Many Windows PowerShell cmdlets have the ComputerName parameter that enables you to collect data and change settings on one or more remote computers. Ze verschillende technologieën voor communicatie en veel werk op alle Windows-besturingssystemen die ondersteuning biedt zonder speciale configuratie voor Windows PowerShell gebruiken.They use a variety of communication technologies and many work on all Windows operating systems that Windows PowerShell supports without any special configuration.

Deze cmdlets zijn onder andere:These cmdlets include:

Normaal gesproken cmdlets die ondersteuning bieden voor externe toegang zonder speciale configuratie hebt de parameter ComputerName en hoeft niet de sessie-parameter.Typically, cmdlets that support remoting without special configuration have the ComputerName parameter and do not have the Session parameter. Om deze cmdlets in uw sessie, typt u:To find these cmdlets in your session, type:

Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}

Windows PowerShell voor externe toegangWindows PowerShell Remoting

Windows PowerShell op afstand, die gebruikmaakt van het protocol WS-Management, kunt u een Windows PowerShell-opdracht uitvoeren op een of meer externe computers.Windows PowerShell remoting, which uses the WS-Management protocol, lets you run any Windows PowerShell command on one or many remote computers. Hiermee kunt u permanente verbindingen tot stand brengen, 1:1 interactieve sessies starten en scripts uitvoeren op meerdere computers.It lets you establish persistent connections, start 1:1 interactive sessions, and run scripts on multiple computers.

Voor het gebruik van Windows PowerShell op afstand, moet de externe computer worden geconfigureerd voor extern beheer.To use Windows PowerShell remoting, the remote computer must be configured for remote management. Zie voor meer informatie, waaronder instructies over vereisten voor externe.For more information, including instructions, see About Remote Requirements.

Nadat u Windows PowerShell voor externe toegang hebt geconfigureerd, worden veel remoting strategieën voor u beschikbaar zijn.After you have configured Windows PowerShell remoting, many remoting strategies are available to you. De rest van dit document vindt u enkele van deze.The remainder of this document lists just a few of them. Zie voor meer informatie over externe en over veelgestelde vragen over extern.For more information, see About Remote and About Remote FAQ.

Een interactieve sessie startenStart an Interactive Session

Gebruikt u een interactieve sessie starten met een externe computer, de Enter-PSSession cmdlet.To start an interactive session with a single remote computer, use the Enter-PSSession cmdlet. Bijvoorbeeld, u een interactieve sessie starten met de externe computer Server01, typt u:For example, to start an interactive session with the Server01 remote computer, type:

Enter-PSSession Server01

De wijzigingen in de opdrachtprompt om weer te geven van de naam van de computer waarop u bent verbonden.The command prompt changes to display the name of the computer to which you are connected. Daarna alle opdrachten die u typt u bij de opdrachtprompt op de externe computer uitvoeren en de resultaten worden weergegeven op de lokale computer.From then on, any commands that you type at the prompt run on the remote computer and the results are displayed on the local computer.

Als u wilt de interactieve sessie beëindigen, typt u:To end the interactive session, type:

Exit-PSSession

Zie voor meer informatie over de cmdlets Enter-PSSession en afsluiten-PSSession Enter-PSSession en afsluiten-PSSession.For more information about the Enter-PSSession and Exit-PSSession cmdlets, see Enter-PSSession and Exit-PSSession.

Een externe opdracht wordt uitgevoerdRun a Remote Command

Wilt willekeurige opdracht uitvoeren op een of meer externe computers, gebruikt de Invoke-Command cmdlet.To run any command on one or many remote computers, use the Invoke-Command cmdlet. Bijvoorbeeld, om uit te voeren een Get-UICulture opdracht op de Server01 en Server02 externe computers, type:For example, to run a Get-UICulture command on the Server01 and Server02 remote computers, type:

Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}

De uitvoer wordt geretourneerd naar de computer.The output is returned to your computer.

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

Zie voor meer informatie over de cmdlet Invoke-Command Invoke-Command.For more information about the Invoke-Command cmdlet, see Invoke-Command.

Een Script uitvoerenRun a Script

U kunt een script uitvoeren op een of meer externe computers door de parameter bestandspad van de cmdlet Invoke-Command te gebruiken.To run a script on one or many remote computers, use the FilePath parameter of the Invoke-Command cmdlet. Het script moet op of toegankelijk is voor uw lokale computer.The script must be on or accessible to your local computer. De resultaten worden geretourneerd naar de lokale computer.The results are returned to your local computer.

De volgende opdracht wordt het script DiskCollect.ps1 uitgevoerd op de externe computers Server01 en Server02.For example, the following command runs the DiskCollect.ps1 script on the Server01 and Server02 remote computers.

Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1

Zie voor meer informatie over de cmdlet Invoke-Command Invoke-Command.For more information about the Invoke-Command cmdlet, see Invoke-Command.

Een permanente verbinding tot stand brengenEstablish a Persistent Connection

Voor het uitvoeren van een reeks van verwante opdrachten die gegevens delen, sessie op de externe computer maken en gebruik vervolgens de cmdlet Invoke-Command opdrachten kunt uitvoeren in de sessie die u maakt.To run a series of related commands that share data, create a session on the remote computer and then use the Invoke-Command cmdlet to run commands in the session that you create. Gebruik de cmdlet New-PSSession voor het maken van een externe sessie.To create a remote session, use the New-PSSession cmdlet.

De volgende opdracht maakt bijvoorbeeld een externe sessie op de computer Server01 en een andere externe sessie op de computer Server02.For example, the following command creates a remote session on the Server01 computer and another remote session on the Server02 computer. De sessieobjecten worden opgeslagen in de variabele $s.It saves the session objects in the $s variable.

$s = New-PSSession -ComputerName Server01, Server02

Nu dat de sessies tot stand gebracht worden, kunt u elke opdracht uitvoeren in ze.Now that the sessions are established, you can run any command in them. En omdat de sessies persistent zijn, kunt u worden verzameld in één opdracht en deze in de volgende opdracht gebruiken.And because the sessions are persistent, you can collect data in one command and use it in a subsequent command.

Bijvoorbeeld de volgende opdracht wordt een opdracht Get-HotFix uitgevoerd in de sessies in de variabele $s en de resultaten worden opgeslagen in de variabele $h.For example, the following command runs a Get-HotFix command in the sessions in the $s variable and it saves the results in the $h variable. De variabele $h in elk van de sessies in $s is gemaakt, maar deze niet bestaat in de lokale sessie.The $h variable is created in each of the sessions in $s, but it does not exist in the local session.

Invoke-Command -Session $s {$h = Get-HotFix}

Nu kunt u de gegevens in de variabele $h in de volgende opdrachten, zoals de volgende.Now you can use the data in the $h variable in subsequent commands, such as the following one. De resultaten worden weergegeven op de lokale computer.The results are displayed on the local computer.

Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}

Geavanceerde voor externe toegangAdvanced Remoting

Windows PowerShell extern beheer begint alleen hier.Windows PowerShell remote management just begins here. Met behulp van de geïnstalleerd met Windows PowerShell-cmdlets, kunt u tot stand brengen en externe sessies configureren van de lokale en externe is afgelopen, maken van aangepaste en beperkte sessies, kunnen gebruikers opdrachten voor het importeren vanuit een externe sessie die daadwerkelijk worden uitgevoerd impliciet op de externe sessie, configureert u de beveiliging van een externe sessie en nog veel meer.By using the cmdlets installed with Windows PowerShell, you can establish and configure remote sessions both from the local and remote ends, create customized and restricted sessions, allow users to import commands from a remote session that actually run implicitly on the remote session, configure the security of a remote session, and much more.

Windows PowerShell omvat te vergemakkelijken externe configuratie, een WSMan-provider.To facilitate remote configuration, Windows PowerShell includes a WSMan provider. De WSMAN: station dat de provider maakt, kunt u navigeren door een hiërarchie van configuratie-instellingen op de lokale computer en externe computers.The WSMAN: drive that the provider creates lets you navigate through a hierarchy of configuration settings on the local computer and remote computers. Zie voor meer informatie over de WSMan-provider WSMan Provider en over WS-Management-Cmdlets, of typ 'Get-Help wsman' in de Windows PowerShell-console.For more information about the WSMan provider, see WSMan Provider and About WS-Management Cmdlets, or in the Windows PowerShell console, type "Get-Help wsman".

Zie voor meer informatieFor more information, see:

Zie voor meer informatie over fouten voor externe toegang, about_Remote_Troubleshooting.For help with remoting errors, see about_Remote_Troubleshooting.

Zie ookSee Also