Как заставить перезагрузить окно Windows, используя VBScript? - PullRequest
8 голосов
/ 09 октября 2008

Я пытаюсь найти способ заставить Windows перезагрузиться, и у меня возникают проблемы. Я пробовал

<code>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?

Ответы [ 5 ]

9 голосов
/ 09 октября 2008

Попробуйте заменить:

retVal = OpSys.Reboot()

С:

retVal = OpSys.Win32Shutdown(6)
4 голосов
/ 09 октября 2008

Ну, это использует 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. Интересно, требует ли ОС сервера код завершения работы ...

3 голосов
/ 10 октября 2008

Вы также можете попробовать утилиту командной строки psShutdown от Sysinternals, теперь Microsoft. http://technet.microsoft.com/en-us/sysinternals/bb897541.aspx

2 голосов
/ 08 июня 2011
'*********************************************************

Option Explicit

Dim objShell

Set objShell = WScript.CreateObject("WScript.Shell")

objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0"

'*********************************************************

Этот небольшой скрипт перезапускает локальный компьютер через 0 секунд.

0 голосов
/ 11 апреля 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...