tasklist & taskkill או איך לאתחל שרתים סוררים מבלי לקום מהכיסא
היום אחד משרתי המעבדה שלי נתקע במהלך האתחול (עשיתי לו restart אבל משום מה הוא נתקע באחד השלבים כנראה), לא היתה גישה אליו ב rdp אבל כן היתה גישה ל services שלו ובכלל ה rpc עבד.
אחרי שניסיתי כמה פעמים shutdown /m ללא הועיל נזכרתי שכאשר עוצרים את ה RPC השרת יעשה לעצמו restart תוך 30 שניות וכדי לעצור את ה RPC צריך "להרוג" את svchost.exe הרלוונטי.
אז כדי לראות את ה PID's של הפרוססים עשיתי tasklist /s remoteserver, יצא משהו כזה:
C:\Documents and Settings\gfeldman>tasklist /s remoteserver
Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System Idle Process 0 0 16 K System 4 0 220 K smss.exe 280 0 448 K csrss.exe 328 0 4,304 K winlogon.exe 352 0 7,236 K services.exe 400 0 4,928 K lsass.exe 412 0 9,420 K svchost.exe 612 0 3,096 K svchost.exe 668 0 3,756 K svchost.exe 728 0 4,528 K svchost.exe 756 0 5,548 K svchost.exe 792 0 25,400 K spoolsv.exe 964 0 5,508 K msdtc.exe 992 0 4,372 K vmsrvc.exe 1084 0 2,908 K svchost.exe 1112 0 2,244 K inetinfo.exe 1196 0 8,480 K svchost.exe 1264 0 2,280 K svchost.exe 1588 0 5,484 K svchost.exe 1696 0 4,660 K csrss.exe 932 Console 2 2,656 K winlogon.exe 588 Console 2 4,792 K svchost.exe 2140 0 4,140 K sqlservr.exe 2668 0 6,940 K wmiprvse.exe 3792 0 6,676 K logon.scr 3572 Console 2 1,660 K wmiprvse.exe 1444 0 5,836 K
רשמתי לי את כל ה PID's של svchost (היו ממש לא מעט), והתחלתי "להרוג" אותם אחד אחד (taskkill).
C:\Documents and Settings\Administrator>taskkill /s remoteserver/PID 848 SUCCESS: The process with PID 848 has been terminated.
C:\Documents and Settings\Administrator>taskkill /s remoteserver /PID 904 SUCCESS: The process with PID 904 has been terminated.
C:\Documents and Settings\Administrator>taskkill /s remoteserver /PID 964
ERROR: The RPC server is unavailable.
למזלי ה PID השני היה המתאים וכבר בנסיון השלישי ראיתי שה RPC למטה, מה שאומר שהשרת התחיל לספור 30 שניות עד לאתחול המיוחל.
אלו היו 30 שניות על איך לאתחל שרת סורר בלי לקום מהכיסא.