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?

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top