Vsake toliko časa, zlasti sistemski skrbnik, bo moral znova zagnati strežnik ali sistem. Običajno se lahko na daljavo povežete s sistemom in znova zaženete / zaustavite sistem prek grafičnega uporabniškega vmesnika - PowerShell ponuja več načinov za ponovni zagon računalnika na daljavo in v tem prispevku bomo opisali 6 znanih metod.
Znova zaženite računalnik z operacijskim sistemom Windows s pomočjo PowerShell
Predpogoj teh metod je zagotoviti, da lahko vzpostavimo stik z oddaljenimi sistemi in po potrebi preverimo pristnost. Prav tako morate preveriti, ali oddaljeni sistem ne čaka na ponovni zagon.
Potrebovali boste naslednje:
- Uporabniški račun v oddaljenem računalniku v lokalni skrbniški skupini.
- Windows PowerShell ali PowerShell Core.
1] Znova zaženite oddaljeni računalnik z Restart-Computer
Ta ukaz je preprost za uporabo s prilagodljivimi parametri. Dodaten predpogoj za delovanje ukaza je zagotoviti, da je WinRM konfiguriran in dovoljen prek požarnega zidu oddaljenega računalnika in da je dovoljen WMI prek požarnega zidu Windows.
Restart-Computer -ComputerName $ ComputerName -Force
Če želite znova zagnati več računalnikov vzporedno, zaženite naslednji ukaz:
$ ComputerArray | ForEach-Object -Parallel Restart-Computer -ComputerName $ _ -Force -ThrottleLimit 3
2] Znova zaženite oddaljeni računalnik z Invoke-CimMethod
The Invoke-CimMethod
deluje z uporabo metode WIM za ponovni zagon oddaljenega sistema - čeprav ni tako prilagodljiv kot Znova zaženite računalnik
cmdlet.
Dodaten predpogoj za delovanje ukaza je zagotoviti, da je WinRM konfiguriran in dovoljen prek požarnega zidu Windows oddaljenega računalnika.
Invoke-CimMethod -ComputerName $ ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
3] Znova zaženite oddaljeni računalnik z zaustavitvijo.exe
The ugasniti.exe
je standardna vgrajena izvedljiva datoteka, ki jo Windows ponuja za ponovni zagon sistema in ni ukaz PowerShell, ampak ponuja robustno vrsto možnosti.
Dodaten predpogoj za delovanje ukaza je zagotoviti, da ima oddaljeni računalnik omogočeno storitev oddaljenega registra in dovoljen WMI prek požarnega zidu Windows.
ugasniti.exe / m \\ remotecomputer / r / t 0
4] Znova zaženite oddaljeni računalnik s PSExec.exe
Eden najpogosteje uporabljenih pripomočkov v zbirki orodij Sysinternals, psexec.exe
ponuja več edinstvenih sposobnosti, ki olajšajo interakcijo z oddaljenim sistemom.
Dodaten predpogoj za delovanje ukaza je zagotoviti, da se storitev SMB izvaja, je omogočena skupna raba datotek in tiskalnikov, onemogočena je preprosta skupna raba datotek in je na voljo skrbniški delež admin $.
psexec.exe -d -h \\ oddaljeni računalnik "zaustavitev.exe / r / t 0 / f "
5] Znova zaženite oddaljeni računalnik z RunDLL32.exe
The rundll32.exe
ponuja način za zagon nekaterih metod proti notranjim izvršljivim datotekam in Windows API-jem, na primer shell32.dll. Obstajata dve metodi, s pomočjo katerih lahko sistem znova zaženete s to funkcijo, vendar te metode ni mogoče dejansko uporabljati na daljavo, to lahko kombinirate z PowerShell prek Invoke-Command
na oddaljenem sistemu.
1. metoda:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.exe uporabnik.exe ExitWindowsExec
2. metoda:
Invoke-Command -ComputerName $ ComputerName -ScriptBlock & rundll32.exe uporabnik.exe ExitWindowsExec
6] Znova zaženite oddaljeni računalnik s programom Taskkill.exe
Nenazadnje, taskkill.exe
je še en pripomoček za Windows, ki ponuja nekaj funkcij za ponovni zagon sistema Windows, čeprav na krožen način. S končanjem lsass.exe
postopek, boste prisilili vnovični zagon sistema Windows.
taskkill.exe / S \\ oddaljeni računalnik / IM lsass.exe / F
To je to na 6 načinih uporabe PowerShell za ponovni zagon oddaljenega računalnika!