- 08/21/2020
- 3 minuter att läsa
-
- j
- s
- d d
- c
Du kan köra kommandon på en eller hundratals datorer med ett enda PowerShell-kommando. WindowsPowerShell stöder fjärrdatoranvändning med hjälp av olika tekniker, inklusive WMI, RPC, andWS-Management.
PowerShell Kärna stöder WMI, WS-Management, och en SSH-remoting., I PowerShell 6 är RPC ingen längrestödd. I PowerShell 7 och senare stöds RPC endast i Windows.
För mer information om remoting in PowerShell Core, se följande artiklar:
- SSH Remoting in PowerShell Core
- Wsman Remoting in PowerShell Core
Windows PowerShell Remoting Without Configuration
många Windows PowerShell cmdlets har ComputerName parametern som gör att du kan samla in data ochändra inställningar på en eller flera fjärrdatorer., Dessa cmdlets använder varierande kommunikationsprotokolloch arbetar på alla Windows-operativsystem utan någon speciell konfiguration.
dessa cmdlets inkluderar:
- Restart-dator
- Test-anslutning
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
vanligtvis cmdlets som stöder Remoting utan speciell konfiguration har Computernameparameter och har inte Sessionsparametern., För att hitta dessa cmdlets i din session skriver du:
Get-Command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
Windows PowerShell Remoting
med Hjälp av WS-Management-protokollet, Windows PowerShell remoting kan du köra alla Windows-PowerShellcommand på en eller flera fjärrdatorer. Du kan upprätta ihållande anslutningar, starta interaktivesessions och köra skript på fjärrdatorer.
för att använda Windows PowerShell remoting måste fjärrdatorn konfigureras för fjärrhantering.Mer information, inklusive instruktioner, finns i Om Fjärrkrav.,
När du har konfigurerat Windows PowerShell remoting, många remoting strategier är tillgängliga för dig.Denna artikel listar bara några av dem. Mer information finns i Om Remote.
starta en interaktiv Session
för att starta en interaktiv session med en enda fjärrdator, använd Enter-pssessioncmdlet. Till exempel, för att starta en interaktiv session med Server01-fjärrdatorn, skriv:
Enter-PSSession Server01
kommandotolken ändras för att visa namnet på fjärrdatorn., Alla kommandon som du skriver påprompten körs på fjärrdatorn och resultaten visas på den lokala datorn.
för att avsluta den interaktiva sessionen, skriv:
Exit-PSSession
För mer information om Enter-pssession och Exit-pssession cmdlets, Se:
- Enter-PSSession
- Exit-Pssession
kör ett fjärrkommando
för att köra ett kommando på en eller flera datorer, använd Invoke-kommandot
– commandcmdlet., Till exempel, för att köra en Get-UICulturecommand på Server01 och Server02 fjärrdatorer, skriver du:
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}
produktionen tillbaka till din dator.
kör ett skript
för att köra ett skript på en eller flera fjärrdatorer, använd filepath-parametern för Invoke-Command
cmdlet. Skriptet måste vara på eller tillgängligt för din lokala dator. Resultaten returneras till dinlokaldator.
till exempel körs följande kommando DiskCollect. ps1-skriptet på fjärrdatorerna, Server01och Server02.,
Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1
upprätta en beständig anslutning
användNew-PSSession
cmdlet för att skapa en beständig session på en fjärrdator. Followingexample skapar fjärrsessioner på Server01 och Server02. Sessionsobjekten lagras i variabeln$s
.
$s = New-PSSession -ComputerName Server01, Server02
nu när sessionerna är etablerade kan du köra vilket kommando som helst i dem. Och eftersom sessionerna ärpersistent kan du samla in data från ett kommando och använda det i ett annat kommando.,
till exempel kör följande kommando ett Get-HotFix-kommando i sessionerna i $s-variabeln ochDet sparar resultaten i $h-variabeln. Variabeln $h skapas i var och en av sessionerna i $s,men den finns inte i den lokala sessionen.
Invoke-Command -Session $s {$h = Get-HotFix}
Nu kan du använda data i variabeln$h
med andra kommandon i samma session. Resultatenvisas på den lokala datorn. Till exempel:
Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NTAUTHORITY\SYSTEM"}}
avancerad Remoting
Windows PowerShell fjärrhantering börjar bara här., Genom att använda cmdlets installerade med WindowsPowerShell kan du skapa och konfigurera fjärrsessioner både från de lokala och avlägsna ändarna, skapa anpassade och begränsade sessioner, tillåta användare att importera kommandon från en fjärrsession somkan köras implicit på fjärrsessionen, konfigurera säkerheten för en fjärrsession och mycketmer.
Windows PowerShell innehåller en wsman-leverantör. Leverantören skapar enWSMAN:
enhet som låter younavigate genom en hierarki av konfigurationsinställningar på den lokala datorn och fjärrdatorer.,
För mer information om wsman-leverantör, seeWSMan Leverantör andAbout WS-Management-Cmdlets eller i Windows PowerShell-konsol, typ Get-Help wsman
.
För mer information, se:
- om fjärr FAQ
- registrera-PSSESSIONCONFIGURATION
- Import-pssession
för hjälp med remoting fel, se about_Remote_Troubleshooting.,
Se även
- about_Remote
- about_Remote_FAQ
- about_Remote_Requirements
- about_Remote_Troubleshooting
- about_PSSessions
- about_WS-Management_Cmdlets
- Invoke-Command
- Import-PSSession
- new-pssession
- registrera-pssessionconfiguration
- wsman provider