簡體   English   中英

從服務中重新啟動Windows

[英]Reboot Windows from within a service

是否可以從服務(Server 2008,Server 2012)中重新啟動Windows? 我試過了:

System.Diagnostics.Process.Start("cmd.exe /c shutdown -f -r -t 0")

無濟於事。 我在這里查看了解決方案:

如何從C#關閉計算機

http://www.stackoverflow.com/questions/1215139/reboot-machine-from-ac-wpf-app

http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/shut-down-restart-log-off-and-forced-log-off-system-using-C-Sharp/

而且機器只是不想重啟。

當我從命令行運行命令時,它可以工作。

cmd.exe /c shutdown -f -r -t 0

甚至

shutdown -f -r -t 0

從服務內部運行時沒有任何反應。 我什至修改了它以運行:

c:\\windows\\system32\\cmd.exe /c c:\\windows\\system32\\shutdown.exe -f -r -t 0

同樣的結果,什么也沒有發生。 同樣,當我從命令行運行時,它會正確重新啟動。

我會懷疑,因為窗口服務沒有GUI ...它無法運行命令提示符。

查看win32 API解決方案...例如ExitWindowsEx()或InitiateSystemShutdown或關閉

嘗試這個..

Process myPro = new Process()  
myPro.StartInfo.FileName = "cmd.exe";
myPro.StartInfo.Arguments = “/c shutdown –f –r –t 0”;
myPro.StartInfo.UseShellExecute = false;
myPro.CreateNoWindow = true;
myPro.Start();

另外,您的cmd.exe文件在哪里? 如果沒有用完應用程序運行所在的目錄? 您可能需要提供一個指向cmd.exe文件的路徑。

例..

myPro.StartInfo.FileName = "c:\desktop\myStuff\cmd.exe";

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM