Ciao,
secondo me devi passare tramite il programma "ShutDown" di windows, in particolare se lo lanci dal tuo prompt con "/?" ti dice l'help relativo ai parametri da passargli.
Sintassi: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "commento"]]
Da .net lo lanci quindi con la classe "Process.Start(...)" chiaramente e passi i vari parametri come il nome del computer da riavviare e magari /f (force) che così ti butta giù tutto senza chiedere salvataggi in sospeso...etc...cmq guarda l'help di quel comando perchè "è rischioso"...
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo