Come forzare il riavvio di una finestra di Windows utilizzando VBScript?
Domanda
Sto cercando di trovare un modo per forzare il riavvio di Windows e sto riscontrando problemi. Ho provato
Set OpSysSet = GetObject("winmgmts:{authenticationlevel=Pkt," _
& "(Shutdown)}").ExecQuery("select * from Win32_OperatingSystem where "_
& "Primary=true")
for each OpSys in OpSysSet
retVal = OpSys.Reboot()
next
Ho anche provato a usare il comando shutdown -f -r
, e in entrambi i casi a volte non ricevo risposta, e se provo di nuovo ricevo un errore che dice " L'azione non può essere completata perché il sistema sta chiudendo " anche se per quanto tempo lo lascio non si spegne, mi permette comunque di avviare nuovi programmi e fare un shutdown -a
dà lo stesso errore. Come si può utilizzare uno script per forzare il riavvio di Windows?
Soluzione
Prova a sostituire:
retVal = OpSys.Reboot()
Con:
retVal = OpSys.Win32Shutdown(6)
Altri suggerimenti
Bene, questo usa VBScript - anche se in verità invoca lo stesso arresto della riga di comando che stai cercando di fare. L'ho provato e funziona.
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
Con quale sistema operativo stai eseguendo? Questo test era contro XP. Mi chiedo se il sistema operativo del server richiede un codice di spegnimento ...
Puoi anche provare l'utilità della riga di comando psShutdown da Sysinternals ora 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"
'*********************************************************
Questo piccolo script riavvia il computer locale dopo 0 secondi.
Set Reset= WScript.CreateObject ("WScript.Shell")
Reset.run "shutdown -r -t 00", 0, True
O ..
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