Как принудительно перезапустить окно Windows с помощью VBScript?

StackOverflow https://stackoverflow.com/questions/188636

  •  06-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь найти способ принудительно перезагрузить 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top