Giusto ... XP Pro SP2 ...
certo che però far lanciare dei batch al php non è che sia una cosa proprio degna del premio applicazione sicura dell'anno...
Qui nessuno a parlato di sicurezza! A me serve un sistema gestibile anche da una semi scimmia che in caso di alcuni errori (generati ancora da non so cosa) mi permetta con poco sforzo di rimettere in funzione il sistema...
![]()
Ho trovato sto script in VBS che penso vada abbastanza bene, poi ditemi voi io l'ho provato e pare funzicareQualcuno ora mi sa aiutare a creare un *.bat che richiami sto file e mi riavii apache? Può tornare anche un risultato (tipo "comando eseguito" o "errore" se non c'è riuscito)?codice:strComputer = "." arrTargetProcs = Array("winword.exe") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process") Wscript.Echo "Checking for target processes ..." For Each objProcess in colProcesses For Each strTargetProc In arrTargetProcs If LCase(objProcess.Name) = LCase(strTargetProc) Then WScript.Echo VbCrLf & "Process Name: " & objProcess.Name WScript.Echo " Time: " & Now intReturn = objProcess.Terminate If intReturn = 0 Then WScript.Echo " Terminated" Else WScript.Echo " Unable to terminate" End If End If Next Next
Continuando a fare ricerche sono arrivato a trovare un sistema per riavviare Apache usando sempre WSH, ma ho un problema... questo è lo script completo:Mi da errore dicendo che c:\programmi\apache non è un programma. Lui becca lo spazio di Apache Group come interruzione di comando. ho provato a sostituire con Apache~1 ma da lo stesso errore... sapete aiutarmi?codice:strComputer = "." arrTargetProcs = Array("winword.exe") Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process") Wscript.Echo "Checking for target processes ..." For Each objProcess in colProcesses For Each strTargetProc In arrTargetProcs If LCase(objProcess.Name) = LCase(strTargetProc) Then WScript.Echo VbCrLf & "Process Name: " & objProcess.Name WScript.Echo " Time: " & Now intReturn = objProcess.Terminate If intReturn = 0 Then WScript.Echo " Terminated" Else WScript.Echo " Unable to terminate" End If End If Next Next Wscript.Echo "Riavvio di Apache ..." set WShell = CreateObject("wscript.Shell") WShell.run "C:\Programmi\Apache Group\Apache2\bin\Apache.exe -k restart" Wscript.Echo "Apache riavviato." set WShell = nothing
Provato a mettere delle virgolette?
codice:WShell.run """C:\Programmi\Apache Group\Apache2\bin\Apache.exe"" -k restart"
Amaro C++, il gusto pieno dell'undefined behavior.
GRAZIE! con le virgolette funzia!
Ora devo solo imparare a richiamarlo da php...