我想知道,是否可以通过.net应用程序以编程方式关闭远程PC?
如果是,那怎么可能?
答案 0 :(得分:7)
例如:
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会强制所有正在运行的程序退出。保存可能已更改的任何数据的选项将被忽略。这可能导致以前未保存数据的任何程序中的数据丢失。
答案 1 :(得分:2)
WMI将适用于此任务。 Win32_OperatingSystem类有一个名为Win32Shutdown的方法。这可用于关闭远程计算机。
Win32Shutdown:http://msdn.microsoft.com/en-us/library/aa394058(VS.85).aspx
以下博客条目在C#中有一个完整的程序,演示了如何使用WMI关闭计算机。在页面上搜索Win32Shutdown(关于第二篇文章)
答案 2 :(得分:1)
您可以使用程序中的WMI。
答案 3 :(得分:0)
我有一个本地应用程序与一个用户一起运行,而不是一个组策略,表明该用户无法关闭该PC。 然后我使用你的代码,但是当我通过用户和密码要求模仿我的应用程序时。我收到了下一个错误 System.Management.ManagementException:无法使用用户的凭据进行本地连接
答案 4 :(得分:-1)
我的方式:
Process.Start("ShutDown", "/s");
当然,从远程ASP.NET页面解雇。