是否可以通过.net应用程序以编程方式关闭“远程PC”?
我想知道,是否可以通过.net应用程序以编程方式关闭远程PC?
如果是的话,怎么样?
请参阅此知识库文章
例如:
System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.EnableRaisingEvents=false; proc.StartInfo.FileName = "shutdown.exe"; proc.StartInfo.Arguments = @"\\computername /t:120 ""The computer is shutting down"" /y /c"; proc.Start();
上面的示例使用以下开关(摘自链接的文章)
-
\\ computername:使用此开关指定要关闭的远程计算机。 如果省略此参数,则使用本地计算机名称。
-
/ t:xx:使用此开关指定计算机关闭之前的时间(以秒为单位)。 默认值为20秒。
-
“计算机正在关闭”:使用此开关在关机过程中指定消息。 邮件可包含的最大字符数为127。
-
/ y:使用此开关强制对计算机中的所有查询作出“是”回答。
-
/ c:使用此开关退出所有正在运行的程序。 如果使用此开关,Windows会强制所有正在运行的程序退出。 保存可能已更改的任何数据的选项将被忽略。 这可能导致以前未保存数据的任何程序中的数据丢失。
WMI将为此任务工作。 Win32_OperatingSystem类有一个名为Win32Shutdown的方法。 这可用于关闭远程计算机。
Win32Shutdown: http : //msdn.microsoft.com/en-us/library/aa394058( VS.85) .aspx
以下博客条目在C#中有一个完整的程序,演示了如何使用WMI关闭计算机。 在页面上搜索Win32Shutdown(关于第2篇文章)
您可以使用程序中的WMI。
我有一个本地应用程序与用户一起运行,而不是有一个组策略,表明该用户无法关闭该PC。 然后我使用你的代码,但当我通过用户和密码要求模仿我的应用程序。 我收到了下一个错误System.Management.ManagementException:无法使用用户的凭据进行本地连接
我的方式:
Process.Start("ShutDown", "/s");
当然,从远程ASP.NET页面中解雇。