Ciao a tutti, sto cercando di preparare un minitool che mi permetta di fare lo screening delle macchine in rete (ne esistono già tanti lo so, ma così posso gestirmi un mio database specifico e integrare in seguito funzioni ad hoc ).
Cmq in questa avventura per ora sono riuscito a fare accendere un pc, ora vorrei:
- riuscire a spegnerlo
- verificare che sia acceso
per lo spegnimento ho provato una procedura proposta in rete che teoricamente dovrebbe funzionare. Usa il comando shutdown.exe verso un pc remoto
// crea il processo
Process shutP = new Process();
// imposta lo startup
// argomenti e riferimento al client
shutP.StartInfo.Arguments = "-s -f -t 00 -m \\" + client;
// no finestra separata
shutP.StartInfo.CreateNoWindow = false;
//shutP.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// applicazione
shutP.StartInfo.FileName = "c:\\windows\\system32\\shutdown.exe";
// avvia il processo
shutP.Start();
// attende 10 secondi e verifica che il processo sia uscito altrimenti lo spegne
shutP.WaitForExit(10000);
if (!shutP.HasExited)
shutP.Kill();
shutP.Close();
Sebbene il comando provato da console funzioni e spenga il pc selezionato, la procedura riportata non funziona runtime, ne con il nomehost ne con indirizzo IP.
Ho anche provato a lanciare un altro eseguibile, come il paint .net e va alla grande.
Debuggando il processo noto che ritorna un ExitCode 53, so che significa
The network path was not found ma nn so come risolvere.
Grazie