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:
- Számítógép újraindítása
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
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 $s
jö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 wsman
a Windows PowerShell-konzolba.
További információkért lásd:
- A PowerShell újraegyesítésével kapcsolatos gyakori kérdések
- Register-PSSessionConfiguration
- Import-PSSession
Ha segítségre van szüksége az újraegyeztetési hibákhoz, tekintse meg a about_Remote_Troubleshooting.