about_Remote

Kort beskrivning

Beskriver hur du kör fjärrkommandon i PowerShell.

Lång beskrivning

Du kan köra fjärrkommandon på en enda dator eller på flera datorer med hjälp av en tillfällig eller beständig anslutning. Du kan också starta en interaktiv session med en enda fjärrdator.

Det här avsnittet innehåller en serie exempel som visar hur du kör olika typer av fjärrkommandon. När du har provat dessa grundläggande kommandon läser du hjälpavsnitten som beskriver varje cmdlet som används i dessa kommandon. Ämnena innehåller information och förklarar hur du kan ändra kommandona efter dina behov.

Obs! Om du vill använda PowerShell-fjärrkommunikation måste de lokala datorerna och fjärrdatorerna konfigureras för fjärrkommunikation. Mer information finns i about_Remote_Requirements.

STARTA EN INTERAKTIV SESSION (ENTER-PSSESSION)

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, precis 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

Kommandotolken ändras för att indikera att du är ansluten till Server01-datorn.

Server01\PS>

Nu kan du skriva kommandon på Server01-datorn.

Avsluta den interaktiva sessionen genom att skriva:

Exit-PSSession

Mer information finns i Enter-PSSession.

SÅ HÄR ANVÄNDER DU CMDLETAR SOM HAR EN PARAMETER FÖR DATORNAMN FÖR ATT HÄMTA FJÄRRDATA

Flera cmdletar har parametern ComputerName som gör att du kan hämta objekt från fjärrdatorer.

Eftersom dessa cmdletar inte använder WS-Management-baserad PowerShell-fjärrkommunikation kan du använda parametern ComputerName för dessa cmdletar på alla datorer som kör PowerShell. Datorerna behöver inte konfigureras för PowerShell-fjärrkommunikation och datorerna behöver inte uppfylla systemkraven för fjärrkommunikation.

Följande cmdletar har parametern ComputerName:

Clear-EventLog    Limit-EventLog
Get-Counter       New-EventLog
Get-EventLog      Remove-EventLog
Get-HotFix        Restart-Computer
Get-Process       Show-EventLog
Get-Service       Stop-Computer
Get-WinEvent      Test-Connection
Get-WmiObject     Write-EventLog

Följande kommando hämtar till exempel tjänsterna på server01-fjärrdatorn:

Get-Service -ComputerName Server01

Vanligtvis har cmdletar som stöder fjärrkommunikation utan särskild konfiguration en ComputerName-parameter och har ingen sessionsparameter . Om du vill hitta dessa cmdletar i sessionen skriver du:

Get-Command | Where-Object {
  $_.Parameters.Keys -contains 'ComputerName' -and
  $_.Parameters.Keys -notcontains 'Session'
}

KÖRA 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 orelaterade kommandon använder du parametern ComputerName i Invoke-Command 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}

Parametern ComputerName är utformad för situationer där du kör ett enda kommando eller flera orelaterade kommandon på en eller flera datorer. Om du vill upprätta en beständig anslutning till en fjärrdator använder du parametern Session.

SÅ HÄR SKAPAR DU EN BESTÄNDIG ANSLUTNING (PSSESSION)

När du använder parametern ComputerName för cmdleten Invoke-Command upprättar Windows PowerShell en anslutning bara för kommandot. Sedan stängs anslutningen när kommandot är klart. Alla variabler eller funktioner som definieras i kommandot 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

KÖRA KOMMANDON I EN PSSESSION

Med en PSSession kan du köra en serie fjärrkommandon som delar data, till exempel funktioner, alias och värden för variabler. Om du vill köra kommandon i en PSSession använder du sessionsparametern 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}

KÖRA 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 i 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 Get-Culture kommando i var och en 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 FilePath-parametern invoke-command.

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

Resultatet av skriptet returneras till den lokala datorn. Du behöver inte kopiera några filer.

STOPPA ETT FJÄRRKOMMANDO

Tryck på CTRL+C om du vill avbryta ett kommando. Begäran om avbrott skickas till fjärrdatorn där fjärrkommandot avslutas.

MER INFORMATION

SÖKORD

about_Remoting

Se även