Shutdown命令簡介:
用法: shutdown [/i | /l | /s | /r | /a | /p | /h | /e] [/f]
[/m //computer][/t xxx][/d [p:]xx:yy [/c "comment"]]
沒有參數 顯示協助。這與鍵入 /? 是一樣的
/? 顯示協助。這與不鍵入任何選項是一樣的
/i 顯示圖形化使用者介面(GUI)。
這必須是第一個選項
/l 登出。這不能與 /m 或 /d 選項一起使用
/s 關閉電腦
/r 關閉並重啟動電腦
/a 放棄系統關閉。
這隻能在逾時過程中使用
/p 關閉本機電腦,沒有逾時或警告。
這隻能與 /d 選項一起使用
/h 休眠本機電腦。
這隻能與 /f 選項一起使用
/e 將電腦的意外關閉原因記入文檔
/m //computer 指定目標電腦
/t xxx 設定關閉前的逾時為 xxx 秒。
有效範圍是 0-600,預設為 30
/c "comment" 重啟動或關閉的原因的注釋。
最大允許 127 個字元
/f 強制正在啟動並執行應用程式關閉而不事先警告使用者
/d [p:]xx:yy 提供重啟動或關閉的原因
p 表明重啟動或關閉是計劃內的
xx 是主要原因號(小於 256 的正整數)
yy 是次要原因號(小於 65536 的正整數)
代碼如下:
System.Diagnostics.Process bootProcess = new System.Diagnostics.Process();
bootProcess.StartInfo.FileName = "shutdown";
bootProcess.StartInfo.Arguments = "/s";
bootProcess.Start();
後來仔細想了想,在應用程式中提供了一個完整的實現系統關機、重啟、登出的類庫,DLL檔案為System.ManagerMent.dll,這是WMI的使用。
WMI是英文Windows Management Instrumentation的簡寫,它的功能主要是:訪問本地主機的一些資訊和服務,可以管理遠端電腦(當然你必須要擁有足夠的許可權),比如:重啟,關機,關閉進程,建立進程等。其中WMI中含有語言WOL,用於實現各種操作。下面是實現關機的代碼:
ConnectionOptions BootConn = new ConnectionOptions();
BootConn.Username = "XXXX";
BootConn.Password = "XXXXXX";
ManagementScope ms = new ManagementScope("////電腦名稱或IP地址//root//cimv2", BootConn);
ms.Options.EnablePrivileges = true;
try
{
ms.Connect();
}
catch (Exception err)
{
MessageBox.Show(err.ToString());
}
if (ms.IsConnected)
{
try
{
ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher mos = new ManagementObjectSearcher(ms, oq);
ManagementObjectCollection moc = mos.Get();
foreach (ManagementObject mo in moc)
{
string[] ss = { "8", "4" };
mo.InvokeMethod("Win32Shutdown", ss);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}