Comment forcer le redémarrage d'une machine Windows en utilisant VBScript?
Question
J'essaie de trouver un moyen de forcer Windows à redémarrer et je rencontre des problèmes. J'ai essayé
Set OpSysSet = GetObject("winmgmts:{authenticationlevel=Pkt," _
& "(Shutdown)}").ExecQuery("select * from Win32_OperatingSystem where "_
& "Primary=true")
for each OpSys in OpSysSet
retVal = OpSys.Reboot()
next
J'ai également essayé d'utiliser la commande shutdown -f -r
et, dans les deux cas, je ne reçois parfois aucune réponse. Si j'essaie à nouveau, une erreur indiquant "l'action n'a pas pu aboutir" s'affiche. parce que le système est en train de s'arrêter " bien que peu importe le temps que je laisse, il ne s'éteint pas, il me permet toujours de démarrer de nouveaux programmes, et faire un shutdown -a
donne la même erreur. Comment utiliser un script pour forcer Windows à redémarrer?
La solution
Essayez de remplacer:
retVal = OpSys.Reboot()
Avec:
retVal = OpSys.Win32Shutdown(6)
Autres conseils
Eh bien, cela utilise VBScript - bien qu’en vérité, il appelle le même arrêt en ligne de commande que vous essayez de faire. Je l'ai testé et ça marche.
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
Quel système d’exploitation utilisez-vous? Ce test était contre XP. Je me demande si le système d'exploitation du serveur nécessite un code d'arrêt ...
Vous pouvez également essayer l'utilitaire de ligne de commande psShutdown de Sysinternals maintenant 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"
'*********************************************************
Ce petit script redémarre l'ordinateur local après 0 secondes.
Set Reset= WScript.CreateObject ("WScript.Shell")
Reset.run "shutdown -r -t 00", 0, True
Ou ..
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