كيفية فرض إعادة تشغيل مربع Windows باستخدام VBScript؟
سؤال
أحاول إيجاد طريقة لإجبار Windows على إعادة التشغيل، وأواجه مشكلات.لقد حاولت
Set OpSysSet = GetObject("winmgmts:{authenticationlevel=Pkt," _
& "(Shutdown)}").ExecQuery("select * from Win32_OperatingSystem where "_
& "Primary=true")
for each OpSys in OpSysSet
retVal = OpSys.Reboot()
next
لقد حاولت أيضًا استخدام shutdown -f -r
الأمر، وفي كلتا الحالتين لا أحصل على أي استجابة، وإذا حاولت مرة أخرى أحصل على خطأ يقول "لا يمكن إكمال الإجراء لأن النظام مغلق" على الرغم من أنه مهما تركته من الوقت فإنه لا ينطفئ، لا يزال يسمح لي ببدء برامج جديدة وتنفيذها shutdown -a
يعطي نفس الخطأ.كيف يمكن استخدام البرنامج النصي لإجبار Windows على إعادة التشغيل؟
المحلول
حاول استبدال:
retVal = OpSys.Reboot()
مع:
retVal = OpSys.Win32Shutdown(6)
نصائح أخرى
حسنًا، يستخدم هذا VBScript - على الرغم من أنه يستدعي نفس إيقاف تشغيل سطر الأوامر الذي تحاول القيام به.لقد اختبرت ذلك ويعمل.
Dim oShell
Set oShell = CreateObject("WScript.Shell")
'restart, wait 5 seconds, force running apps to close
oShell.Run "%comspec% /c shutdown /r /t 5 /f", , TRUE
ما هو نظام التشغيل الذي تعمل ضده؟كان هذا الاختبار ضد XP.أتساءل عما إذا كان نظام تشغيل الخادم يتطلب رمز إيقاف التشغيل ...
يمكنك أيضًا تجربة الأداة المساعدة لسطر الأوامر psShutdown من Sysinternals (الآن Microsoft).http://technet.microsoft.com/en-us/sysinternals/bb897541.aspx
'*********************************************************
Option Explicit
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0"
'*********************************************************
يقوم هذا البرنامج النصي الصغير بإعادة تشغيل الكمبيوتر المحلي بعد 0 ثانية.
Set Reset= WScript.CreateObject ("WScript.Shell")
Reset.run "shutdown -r -t 00", 0, True
أو..
Shell "shutdown -r -t 00" ' for restart
Shell "shutdown -s -t 00" ' for Shutdown
Shell "shutdown -l -t 00" ' for log off
Shell "shutdown -a -t 00" ' for abort