Windows - Távoli rendszerleállítás, újraindítás

forráskód letöltése
Hálózatunk munkaállomásait, kiszolgálóit egy gépről központilag parancssorból vagy programból is leállíthatjuk, újraindíthatjuk. Az alábbiakban két módszert mutatunk be erre és megnézzük a végrehajtáshoz szükséges jogosultságokat is.
Az első bemutatásra kerülő módszerhez szükségünk lesz a Windows 2000 Resource Kit csomagra. Feltelepítése után a C:\PROGRAM FILES\RESOURCE KIT mappában (alapértelmezés szerint) találunk egy SHUTDOWN.EXE nevű programot. Érdekessége, hogy kétféle üzemmódban indítható el: lehet grafikus és karakteres is. Ez utóbbi lehetőséget biztosít arra, hogy beépítsük egy batch fájlba, vagy saját programjainkból hívjuk meg.
Kattintsunk rá kétszer (vagy parancssorban írjuk be: shutdown), ekkor a grafikus felülete indul el. A "Computer Name" mező melletti nyomógombra kattintva a hálózati tallózó szolgáltatás által felismert gépek közül választhatunk, hogy melyiket akarjuk leállítani (ez a helyi gép munkacsoportját vagy tartományát látja). Tevékenységi körünk nem csak ezekre vonatkozik, hanem minden fizikailag elérhető gépre. Ha olyan gépet akarunk leállítani, amely nem szerepel a listában, akkor a Computer Name" mezőbe írjuk be a gép nevét "\\gépnév" szintaxis szerint.

Beállítások:

"Kill Applications Without Saving Data":
Feltétel nélküli leállítás, nem mentett állományok nem foghatják meg a leállítás folyamatát. A rendszer ezektől függetlenül leáll, akár adatvesztés árán is (az utolsó mentés utáni adatok vesznek el).

"Reboot after shutdows":
A rendszerből való kilépés után a számítógép újraindul.

"Message Text":
Az "OK" gombra kattintás után elindul a távoli gép leállítási folyamata, erről az ottani képernyőn megjelenő ablakban a felhasználó tájékoztatást kap, amelynek szövege ebben a mezőben adható meg maximum 127 karakter hosszan.

"Delay (seconds)":
A figyelmeztető ablak megjelenése és a tényleges rendszerleállítás között még ennyi idő telik el, ezalatt lehet menteni a nem mentett állományokat és ezalatt még megszakítható a leállítás az "Abort" gombbal.

Ha a helyi operációs rendszerből akarunk kilépni a "Computer Name"-hez írjuk be a lokális gép nevét.

Leállítás parancssorból:

Távoli gép leállítása:
shutdown \\gépnév

Leállítás 10 másodperc múlva (ha nem adunk meg időt az alapértelmezett 30 másodperc múlva történik meg a kilépés).
shutdown \\gépnév /t:10

Leállítás feltétel nélkül:
shutdown \\gépnév /c

Leállítási üzenet megadása:
shutdown \\gépnév Üzenet

Leállítás utáni újraindítás:
shutdown \\gépnév /r

A leállítás megszakítása:
shutdown \\gépnév /a

Helyi gép leállítása:
shutdown /l

Az sincs elzárva minden lehetőségtől, akinek nem áll rendelkezésére a Windows 2000 Resource Kit programcsomag. Szkript-ből a Windows Scripting Host és a WMI (Windows Management Instrumentation) szolgáltatás segítségével is kiléptethetünk távoli gépeket.

A rendszerleállítást megvalósító VBScript így néz ki a WINMGMTS objektum meghívásával.
Set RShutDown = GetObject("winmgmts:{(Debug,RemoteShutdown)}//GÉPNÉV/root/cimv2").ExecQuery("select 
   * from Win32_OperatingSystem where Primary=true")
for each OpSys in RShutDown
OpSys.Shutdown()
next

Ha a helyi gépet akarjuk leállítani, némileg módosítani kell a WINMGMTS objektum paraméterezését.
Set ShutDown = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from
    Win32_OperatingSystem where Primary=true")
for each OpSys in ShutDown
OpSys.Shutdown()
next

Távoli gép újraindítása:
Set RReboot = GetObject("winmgmts:{(RemoteShutdown)}//GÉPNÉV/root/cimv2").ExecQuery("select * from
    Win32_OperatingSystem where Primary=true")
for each OpSys in RReboot
OpSys.Reboot()
next

Helyi gép újraindítása:
Set Reboot = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from
    Win32_OperatingSystem where Primary=true")
for each OpSys in Reboot
OpSys.Reboot()
next

A fenti műveletek elvégzéséhez minden esetben megfelelő jogosultsággal kell rendelkeznünk. Amennyiben a jogosultak listájáról lekerülünk, nem tudjuk végrehajtani a kilépést és hibaüzenetet kapunk.

Távoli rendszerleállítás jogosultságának kiosztása nem Active Directory tartományban működő Windows 2000 Professional rendszerben:

Tallózzunk el a következő helyre:
Vezérlőpult > Felügyeleti eszközök > Helyi biztonsági házirend > Helyi házirend > Felhasználói jogok kiosztása. A konzol jobb oldalán megjelenő listában keressük meg a "Távirányított rendszerleállítás" házirendobjektumot, kattintsunk rá kétszer a megnyitásához és a megjelenő listában láthatjuk azokat a személyeket, akik jogosultak a távoli leállítás elvégzésére. Újakat a "Hozzáadás" gombbal tudunk felvenni.

Távoli rendszerleállítás jogosultságának kiosztása Active Directory tartományvezérlőkön:

Ebben az esetben az aktuális gépre vonatkozó csoportházirendben találjuk az előző beállításokat. Példánkban az alapértelmezett Domain Controllers szervezeti egységben található tartományvezérlők beállításait keressük meg:
Active Directory – Felhasználók és számítógépek > Domain Controllers > Tulajdonságok > Csoportházirend > Szerkesztés > Számítógép konfigurációja > Windows beállításai > Biztonsági beállítások > Helyi házirend > Felhasználói jogok kiosztása alatt találjuk a jogosultak listáját.

Amit a csoportházirendekkel való munka során mindig figyelembe kell venni, hogy a házirend öröklődés megváltoztathatja a beállításokat.