Как принудительно перезапустить окно 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