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


Távoli parancsok futtatása

Egyetlen PowerShell-paranccsal egy vagy több száz számítógépen futtathat parancsokat. A Windows PowerShell támogatja a távoli számítástechnikát különböző technológiák, például a WMI, az RPC és a WS-Management használatával.

A PowerShell támogatja a WMI, a WS-Management és az SSH-újraküldést. A PowerShell 7-ben és újabb verzióiban az RPC csak Windows rendszeren támogatott.

A PowerShellben való újraegyezésről az alábbi cikkekben talál további információt:

Windows PowerShell-újramotálás konfiguráció nélkül

Számos Windows PowerShell-parancsmag rendelkezik a ComputerName paraméterrel, amely lehetővé teszi az adatok gyűjtését és a beállítások módosítását egy vagy több távoli számítógépen. Ezek a parancsmagok eltérő kommunikációs protokollokat használnak, és speciális konfiguráció nélkül működnek minden Windows operációs rendszeren.

Ezek a parancsmagok a következők:

A speciális konfiguráció nélküli újraküldést támogató parancsmagok általában a ComputerName paramétert kapják, és nem rendelkeznek a Munkamenet paraméterével. 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"
}

Windows PowerShell-remoting

A WS-Management protokoll használatával a Windows PowerShell-remoting lehetővé teszi bármely Windows PowerShell-parancs futtatását egy vagy több távoli számítógépen. Állandó kapcsolatokat hozhat létre, interaktív munkameneteket indíthat, és szkripteket futtathat távoli számítógépeken.

A Windows PowerShell-remoting használatához a távoli számítógépet távoli felügyeletre kell konfigurálni. További információkért, beleértve az utasításokat is, olvassa el a Távoli követelmények című témakört.

Miután konfigurálta a Windows PowerShell-remotingot, számos újramotálási stratégia érhető el. Ez a cikk csak néhányat sorol fel. További információ: Tudnivalók a távoliról.

Interaktív munkamenet indítása

Ha egyetlen távoli számítógéppel szeretne interaktív munkamenetet indítani, használja az Enter-PSSession parancsmagot. Ha például egy interaktív munkamenetet szeretne elindítani a Server01 távoli számítógéppel, írja be a következőt:

Enter-PSSession Server01

A parancssor módosul a távoli számítógép nevének megjelenítéséhez. A parancssorba beírt parancsok a távoli számítógépen futnak, és az eredmények megjelennek a helyi számítógépen.

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

Exit-PSSession

A parancsmagokkal kapcsolatos Enter-PSSession Exit-PSSession további információkért lásd:

Távoli parancs futtatása

Ha parancsot szeretne futtatni egy vagy több számítógépen, használja az Invoke-Command parancsmagot. Ha például get-UICulture parancsot szeretne futtatni a Server01 és a Server02 távoli számítógépeken, írja be a következőt:

Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-UICulture}

A kimenet visszakerül a számítógépre.

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

Szkript futtatása

Ha parancsfájlt szeretne futtatni egy vagy több távoli számítógépen, használja a Invoke-Command parancsmag FilePath paraméterét. A szkriptnek be kell kapcsolnia vagy elérhetővé kell tennie a helyi számítógép számára. Az eredmények visszakerülnek a helyi számítógépre.

A következő parancs például a DiskCollect.ps1 szkriptet a távoli számítógépeken, a Server01-en és a Server02-en futtatja.

Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1

Állandó Csatlakozás létrehozása

New-PSSession A parancsmag használatával hozzon létre egy állandó munkamenetet egy távoli számítógépen. Az alábbi példa távoli munkameneteket hoz létre a Server01 és a Server02 kiszolgálón. A munkamenet-objektumokat a rendszer a $s változóban tárolja.

$s = New-PSSession -ComputerName Server01, Server02

A munkamenetek létrehozása után bármilyen parancsot futtathat bennük. Mivel a munkamenetek állandóak, adatokat gyűjthet egy parancsból, és használhatja azt egy másik parancsban.

Az alábbi parancs például futtat egy Get-HotFix parancsot a $s változó munkameneteiben, és menti az eredményeket a $h változóban. A $h változó az egyes munkamenetekben $sjön létre, de nem létezik a helyi munkamenetben.

Invoke-Command -Session $s {$h = Get-HotFix}

Most már használhatja a változóban lévő $h adatokat más parancsokkal ugyanabban a munkamenetben. Az eredmények a helyi számítógépen jelennek meg. Példa:

Invoke-Command -Session $s {$h | where {$_.InstalledBy -ne "NT AUTHORITY\SYSTEM"}}

Speciális újraküldés

A PowerShell olyan parancsmagokat tartalmaz, amelyek lehetővé teszik a következők használatát:

  • Távoli munkamenetek konfigurálása és létrehozása mind a helyi, mind a távoli végpontról
  • Testreszabott és korlátozott munkamenetek létrehozása
  • Parancsok importálása a távoli munkameneten implicit módon futó távoli munkamenetből
  • Távoli munkamenet biztonságának konfigurálása

A Windows PowerShell tartalmaz egy WSMan-szolgáltatót. A szolgáltató létrehoz egy meghajtót WSMAN: , amely lehetővé teszi a konfigurációs beállítások hierarchiájának navigálását a helyi számítógépen és a távoli számítógépeken.

A WSMan-szolgáltatóról további információt a WSMan Provider és a About WS-Management Parancsmagok című témakörben talál, vagy írja be Get-Help wsmana Windows PowerShell-konzolba.

További információkért lásd:

Ha segítségre van szüksége az újraegyeztetési hibákhoz, tekintse meg a about_Remote_Troubleshooting.

Kapcsolódó információk