Megosztás a következőn keresztül:


about_Remote

Rövid leírás

Ismerteti, hogyan futtathat távoli parancsokat a PowerShellben.

Hosszú leírás

Egy vagy több távoli számítógépen futtathat távoli parancsokat ideiglenes vagy állandó kapcsolat használatával. Egy interaktív munkamenetet egyetlen távoli számítógéppel is elindíthat.

Feljegyzés

A PowerShell-remoting használatához konfigurálnia kell a helyi és a távoli számítógépeket az újraküldéshez. További információ: about_Remote_Requirements.

Interaktív munkamenet indítása

A távoli parancsok futtatásának legegyszerűbb módja egy interaktív munkamenet indítása egy távoli számítógéppel.

A munkamenet indításakor a beírt parancsok a távoli számítógépen futnak, mintha közvetlenül a távoli számítógépre gépelték be őket. Minden interaktív munkamenetben csak egy számítógéphez csatlakozhat.

Interaktív munkamenet indításához használja a Enter-PSSession parancsmagot. A következő parancs interaktív munkamenetet indít a Server01 számítógéppel:

Enter-PSSession Server01

A PowerShell úgy módosítja a parancssort, hogy tartalmazza a távoli számítógép nevét.

Server01\PS>

Most már beírhatja a parancsokat a Server01 számítógépre.

Az interaktív munkamenet befejezéséhez írja be a következőt:

Exit-PSSession

További információ: Enter-PSSession.

ComputerName paraméterrel rendelkező parancsmagok használata

Több parancsmag rendelkezik ComputerName paraméterrel, amely lehetővé teszi az objektumok távoli számítógépekről való lekérését.

Mivel ezek a parancsmagok nem használnak WS-Management-alapú PowerShell-remotingot, ezen parancsmagok ComputerName paraméterét bármely PowerShellt futtató számítógépen használhatja. A számítógépeket nem kell Konfigurálni a PowerShell-újraküldéshez, és a számítógépeknek nem kell megfelelniük az újraegyezés rendszerkövetelményeinek.

A következő parancsmagok ComputerName paraméterrel rendelkeznek:

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

A következő parancs például lekéri a szolgáltatásokat a Server01 távoli számítógépen:

Get-Service -ComputerName Server01

A speciális konfiguráció nélküli újraküldést támogató parancsmagok általában Számítógépnév paraméterrel rendelkeznek, és nem rendelkeznek munkamenet-paraméterrel. Ha meg szeretné keresni ezeket a parancsmagokat a munkamenetben, írja be a következőt:

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

Távoli parancs futtatása

Ha más parancsokat szeretne futtatni távoli számítógépeken, használja a Invoke-Command parancsmagot.

Egyetlen vagy néhány nem kapcsolódó parancs futtatásához használja a Számítógépnév paramétert Invoke-Command a távoli számítógépek megadásához. A parancs megadásához használja a ScriptBlock paramétert.

A következő parancs például futtat egy Get-Culture parancsot a Server01 számítógépen.

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

Állandó kapcsolat létrehozása

A parancsmag ComputerName paraméterének használatakor a Invoke-Command PowerShell ideiglenes kapcsolatot létesít a távoli számítógéppel. A parancs befejeződésekor bezárja a kapcsolatot. Az ideiglenes munkamenetben definiált változók vagy függvények elvesznek.

Ha tartós kapcsolatot szeretne létrehozni egy távoli számítógéppel, használja a New-PSSession parancsmagot. A következő parancs például PSSessions-t hoz létre a Server01 és a Server02 számítógépeken, majd menti a PSSessionst a $s változóban.

$s = New-PSSession -ComputerName Server01, Server02

Parancsok futtatása PSSession-ben

PSSession esetén távoli parancsok sorozatát futtathatja, amelyek adatokat osztanak meg, például függvényeket, aliasokat és változók értékeit. A parancsok PSSessionban való futtatásához használja a Invoke-Command parancsmag Munkamenet paraméterét.

Az alábbi parancs például a Invoke-Command parancsmaggal futtat egy Get-Process parancsot a PsSessionsban a Server01 és a Server02 számítógépeken. A parancs minden PSSession változóban $p menti a folyamatokat.

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

Mivel a PSSession állandó kapcsolatot használ, futtathat egy másik parancsot ugyanabban a PSSessionban, amely a változót $p használja. Az alábbi parancs megszámolja a mentett $pfolyamatok számát.

Invoke-Command -Session $s -ScriptBlock {$p.count}

Távoli parancs futtatása több számítógépen

Ha több számítógépen szeretne távoli parancsot futtatni, írja be az összes számítógépnevet a Számítógépnév paraméter értékére Invoke-Command. A neveket vesszővel elválasztja.

A következő parancs például három számítógépen futtat egy Get-Culture parancsot:

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

Parancsot több PSSessionban is futtathat. Az alábbi parancsok pssessions-t hoznak létre a Server01, Server02 és Server03 számítógépeken, majd futtatnak egy Get-Culture parancsot az egyes PSSessions-ban.

$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}

A számítógépek helyi számítógéplistájának hozzáadásához írja be a helyi számítógép nevét, írjon be egy pont (.) vagy írjon be localhostegy elemet.

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

Szkript futtatása távoli számítógépeken

Helyi szkript távoli számítógépeken való futtatásához használja a fájlpath paramétert Invoke-Command. Nem kell fájlokat másolnia. A következő parancs például az Sample.ps1 S1 és S2 számítógépeken futtatja a szkriptet:

Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

A PowerShell a szkript eredményeit adja vissza a helyi számítógépnek.

Távoli parancs leállítása

Parancs megszakításához nyomja le a Ctrl c billentyűkombinációt+. A PowerShell átadja a megszakítási kérelmet annak a távoli számítógépnek, ahol leállítja a távoli parancsot.

További információkért

  • Az újraegyezés rendszerkövetelményeiről további információt a about_Remote_Requirements című témakörben talál.

  • A távoli kimenet formázásához a about_Remote_Output című témakörben talál segítséget.

  • Az átnevezés működéséről, a távoli adatok kezeléséről, a speciális konfigurációkról, a biztonsági problémákról és más gyakori kérdésekről a PowerShell újramegjelenítésével kapcsolatos gyakori kérdések című témakörben olvashat.

  • Az újraírási hibák megoldásához a about_Remote_Troubleshooting című témakörben talál segítséget.

  • A PSSessions-ról és az állandó kapcsolatokról további információt a about_PSSessions talál.

  • A PowerShell háttérfeladatairól további információt a about_Jobs című témakörben talál.

Lásd még