- 08/21/2020
- 3 minuten te lezen
-
- j
- s
- D
- c
Je kan opdrachten uitvoeren op een of honderden computers met een enkele opdracht. WindowsPowerShell ondersteunt Remote computing met behulp van verschillende technologieën, waaronder WMI, RPC, andWS-Management.
PowerShell Core ondersteunt WMI, WS-beheer en SSH remoting., In PowerShell 6 wordt RPC niet langer ondersteund. In PowerShell 7 en hoger wordt RPC alleen ondersteund in Windows.
voor meer informatie over remoting in PowerShell Core, zie de volgende artikelen:
- SSH Remoting in PowerShell Core
- WSMan Remoting in PowerShell Core
Windows PowerShell Remoting zonder configuratie
veel Windows PowerShell-cmdlets hebben de computernaam waarmee u gegevens kunt verzamelen en instellingen kunt wijzigen op een of meer externe computers., Deze cmdlets gebruiken variërende communicatieprotocollen en werken op alle Windows-besturingssystemen zonder speciale configuratie.
Deze cmdlets zijn:
- Opnieuw opstarten-de Computer
- Test-Aansluiting
- Wissen-EventLog
- Get-EventLog
- Get-HotFix
- Get-Proces
- Get-Service
- Set Service
- Get-WinEvent
- Get-WmiObject
Meestal cmdlets die ondersteuning remoting zonder speciale configuratie hebben de ComputerNameparameter en niet de parameter Session., Om deze cmdlets in uw sessie te vinden, typt u:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
met behulp van het WS-Management protocol kunt u Windows PowerShell remoting uitvoeren op een of meer externe computers. U kunt permanente verbindingen tot stand brengen, interactieve sessies starten en scripts uitvoeren op externe computers.
Als u Windows PowerShell remoting wilt gebruiken, moet de externe computer zijn geconfigureerd voor extern beheer.Zie voor meer informatie, inclusief instructies, over Remote Requirements.,
zodra u Windows PowerShell remoting hebt geconfigureerd, zijn er veel remoting-strategieën voor u beschikbaar.Dit artikel noemt slechts een paar van hen. Zie Over Remote voor meer informatie.
Start een interactieve sessie
om een interactieve sessie met een enkele externe computer te starten, gebruikt u de Enter-PSSessioncmdlet. Als u bijvoorbeeld een interactieve sessie met de externe computer Server01 wilt starten, typt u:
Enter-PSSession Server01
de opdrachtprompt verandert om de naam van de externe computer weer te geven., Alle opdrachten die u typt op de prompt worden uitgevoerd op de externe computer en de resultaten worden weergegeven op de lokale computer.
om de interactieve sessie te beëindigen, typt u:
Exit-PSSession
voor meer informatie over de Enter-PSSession en Exit-PSSession cmdlets, zie:
- Enter-PSSession
- Exit-PSSession
een opdracht op afstand
uitvoeren om een opdracht op een of meer computers uit te voeren, gebruik de invoke-commandcmdlet., Als u bijvoorbeeld een Get-Uiculturecommando wilt uitvoeren op de remote computers Server01 en Server02, typt u:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
De uitvoer wordt naar uw computer geretourneerd.
voer een Script uit
om een script op een of meerdere externe computers uit te voeren, gebruikt u de parameter FilePath van de Invoke-Command
cmdlet. Het script moet op of toegankelijk zijn voor uw lokale computer. De resultaten worden teruggestuurd naar uw lokale computer.
bijvoorbeeld, het volgende commando voert het diskcollect.ps1 script uit op de externe computers, Server01 en Server02.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
Maak een permanente verbinding
Gebruik de New-PSSession
cmdlet om een permanente sessie op een externe computer aan te maken. Het volgende voorbeeld maakt remote sessies op Server01 en Server02. De sessieobjecten worden opgeslagen in de variabele $s
.
$s = New-PSSession -ComputerName Server01, Server02
nu de sessies zijn ingesteld, kunt u elk commando in hen uitvoeren. En omdat de sessies persistent zijn, kunt u gegevens van het ene Commando verzamelen en gebruiken in een ander commando.,
bijvoorbeeld, het volgende commando voert een Get-HotFix commando uit in de sessies in de $ s variabele endit slaat de resultaten op in de $h variabele. De $ h variabele wordt aangemaakt in elk van de sessies in $s, maar het bestaat niet in de lokale sessie.
Invoke-Command -Session $s {$h = Get-HotFix}
nu kunt u de gegevens in de $h
gebruiken met andere commando ‘ s in dezelfde sessie. De resultaten worden weergegeven op de lokale computer. Bijvoorbeeld:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
geavanceerde Remoting
Windows PowerShell remote management begint hier., Door de cmdlets te gebruiken die zijn geïnstalleerd met WindowsPowerShell, kunt u externe sessies instellen en configureren van zowel de lokale als de externe einde,aangepaste en beperkte sessies maken, gebruikers toestaan om commando ‘ s te importeren van een externe sessie die daadwerkelijk impliciet worden uitgevoerd op de externe sessie, de beveiliging van een externe sessie configureren, en muchmore.
Windows PowerShell bevat een WSMan-provider. De provider maakt eenWSMAN:
station waarmee younavigate door een hiërarchie van configuratie-instellingen op de lokale computer en externe computers.,
voor meer informatie over de WSMan provider, zie wsman Provider Andover WS-Management Cmdlets,of typ in de Windows PowerShell console Get-Help wsman
.
voor meer informatie, zie:
- over FAQ op afstand
- Register-PSSessionConfiguration
- Import-PSSession
voor meer informatie, zie about_Remote_Troubleshooting.,
Zie Ook:
- about_Remote
- about_Remote_FAQ
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Beroepen-Commando
- Importeren-PSSession
- Nieuw-PSSession
- Registreren-PSSessionConfiguration
- WSMan Aanbieder