about_Remote
Kort beskrivning
Beskriver hur du kör fjärrkommandon i PowerShell.
Lång beskrivning
Du kan köra fjärrkommandon på en eller flera fjärrdatorer med hjälp av en tillfällig eller beständig anslutning. Du kan också starta en interaktiv session med en enda fjärrdator.
Kommentar
Om du vill använda PowerShell-fjärrkommunikation måste du konfigurera lokala datorer och fjärrdatorer för fjärrkommunikation. Mer information finns i about_Remote_Requirements.
Starta en interaktiv session
Det enklaste sättet att köra fjärrkommandon är att starta en interaktiv session med en fjärrdator.
När sessionen startar körs de kommandon som du skriver på fjärrdatorn, som om du skrev dem direkt på fjärrdatorn. Du kan bara ansluta till en dator i varje interaktiv session.
Om du vill starta en interaktiv session använder du cmdleten Enter-PSSession
. Följande kommando startar en interaktiv session med Server01-datorn:
Enter-PSSession Server01
PowerShell ändrar kommandotolken så att namnet på fjärrdatorn inkluderas.
Server01\PS>
Nu kan du skriva kommandon på Server01-datorn.
Om du vill avsluta den interaktiva sessionen skriver du:
Exit-PSSession
Mer information finns i Enter-PSSession.
Så här kör du ett fjärrkommando
Om du vill köra andra kommandon på fjärrdatorer använder du cmdleten Invoke-Command
.
Om du vill köra ett enda kommando eller några icke-relaterade kommandon använder du parametern Invoke-Command
ComputerName för för att ange fjärrdatorerna. Använd parametern ScriptBlock för att ange kommandot.
Följande kommando kör till exempel ett Get-Culture
kommando på Server01-datorn.
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}
Så här skapar du en beständig anslutning
När du använder parametern ComputerName för cmdleten Invoke-Command
upprättar PowerShell en tillfällig anslutning till fjärrdatorn. Den stänger anslutningen när kommandot är klart. Alla variabler eller funktioner som definierats i den här tillfälliga sessionen går förlorade.
Om du vill skapa en beständig anslutning till en fjärrdator använder du cmdleten New-PSSession
. Följande kommando skapar till exempel PSSessioner på Server01- och Server02-datorerna och sparar sedan PSSessions i variabeln $s
.
$s = New-PSSession -ComputerName Server01, Server02
Så här kör du kommandon i en PSSession
Med en PSSession kan du köra en serie fjärrkommandon som delar data, till exempel funktioner, alias och variablernas värden. Om du vill köra kommandon i en PSSession använder du parametern Session för cmdleten Invoke-Command
.
Följande kommando använder till exempel cmdleten Invoke-Command
för att köra ett Get-Process
kommando i PSSessions på Server01- och Server02-datorerna.
Kommandot sparar processerna i en $p
variabel i varje PSSession.
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}
Eftersom PSSession använder en beständig anslutning kan du köra ett annat kommando i samma PSSession som använder variabeln $p
. Följande kommando räknar antalet processer som sparats i $p
.
Invoke-Command -Session $s -ScriptBlock {$p.count}
Så här kör du ett fjärrkommando på flera datorer
Om du vill köra ett fjärrkommando på flera datorer skriver du alla datornamn i värdet för parametern ComputerName för Invoke-Command
. Avgränsa namnen med kommatecken.
Följande kommando kör till exempel ett Get-Culture
kommando på tre datorer:
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}
Du kan också köra ett kommando i flera PSSessioner. Följande kommandon skapar PSSessioner på datorerna Server01, Server02 och Server03 och kör sedan ett kommando i var och en Get-Culture
av PSSessionerna.
$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
Om du vill inkludera listan över lokala datorer skriver du namnet på den lokala datorn, skriver en punkt (.
) eller skriver localhost
.
Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}
Så här kör du ett skript på fjärrdatorer
Om du vill köra ett lokalt skript på fjärrdatorer använder du parametern FilePath för Invoke-Command
. Du behöver inte kopiera några filer. Följande kommando kör till exempel skriptet Sample.ps1
på S1- och S2-datorerna:
Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1
PowerShell returnerar resultatet av skriptet till den lokala datorn.
Så här stoppar du ett fjärrkommando
Tryck på Ctrl+c om du vill avbryta ett kommando. PowerShell skickar begäran om avbrott till fjärrdatorn där fjärrkommandot avslutas.
Mer information
Information om systemkraven för fjärrkommunikation finns i about_Remote_Requirements.
Mer information om hur du formaterar fjärrutdata finns i about_Remote_Output.
Information om hur fjärrkommunikation fungerar, hur du hanterar fjärrdata, särskilda konfigurationer, säkerhetsproblem och andra vanliga frågor finns i Vanliga frågor och svar om PowerShell-fjärrkommunikation.
Mer information om hur du löser fjärrkommunikationsfel finns i about_Remote_Troubleshooting.
Information om PSSessioner och beständiga anslutningar finns i about_PSSessions.
Information om PowerShell-bakgrundsjobb finns i about_Jobs.