Om 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 så att de uppfyller 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.

SÅ HÄR STARTAR DU 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.

Starta en interaktiv session genom att använda 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 DATORNAMNPARAMETER FÖR ATT HÄMTA FJÄRRDATA

Flera cmdletar har en ComputerName-parameter 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'
}

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 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 har slutförts. 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å datorerna Server01 och Server02 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 värden för variabler. 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å Datorerna Server01 och Server02. 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 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 för 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.

SÅ HÄR STOPPAR DU ETT FJÄRRKOMMANDO

Tryck på CTRL+C om du vill avbryta ett kommando. Avbrottsbegäran skickas 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 about_Remote_FAQ.

  • Hjälp med att lösa 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.

SÖKORD

about_Remoting

SE ÄVEN

about_PSSessions

about_Remote_Disconnected_Sessions

about_Remote_Requirements

about_Remote_FAQ

about_Remote_TroubleShooting

about_Remote_Variables

Enter-PSSession

Invoke-Command

New-PSSession