2011-08-03 64 views
0

我同意,我們可以通過編程方式關閉cleint機器。但假設我的機器配置了Windows Server 2008 R2。關閉任何服務器機器,與普通客戶機操作系統機器相比並不容易。 因爲我們需要停止服務,停止正在運行的進程,最後我們需要向os確認關閉過程是「計劃好」的關閉事件跟蹤程序。那麼我們可以通過c#console應用程序來做到這一點嗎?我必須爲此做什麼程序?從c#console應用程序關閉windows server 2008 r2機器

被編輯: 我很感謝所有的答案。但是有一件事我在寫這個問題時錯過了,這個關機只有在機器無人照看120分鐘時才能執行。那麼有沒有其他的流程可以檢查機器的出勤率 - 無人蔘與?這樣我就可以調用關機過程。

+0

請查看編輯過的查詢.... –

+0

您能否詳細說明出勤 - 無人蔘與?用戶註銷120分鐘後,用戶登錄但不是鍵盤/鼠標輸入? – Dominik

+0

你是絕對正確的,自120分鐘以來沒有輸入 –

回答

2

你可以這樣做,使用Windows的shutdown.exe命令:

Process.Start("shutdown.exe", "/l /t:0"); 

如果你只是想擺脫對話框進入停機的原因,你可以相應地配置您的註冊表:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability] 
"ShutdownReasonOn"=dword:00000000 
1

有一個應用程序Shutdown,您可以使用Process類調​​用。

它也可以重啓機器,設置日誌消息,並重新啓動遠程機器(我認爲)

1

您需要在該機器上運行Process.Start("shutdown",...);(其中...-是參數串)。

1

Windows Server 2008,Windows Vista和Windows 7上的UAC會阻止未升級的進程中的「shutdown.exe」。 嘗試使用管理員權限運行您的應用程序。

相關問題