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 $p
folyamatok 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 localhost
egy 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.