如何从Windows服务关闭远程计算机

时间:2012-10-24 11:07:15

标签: c# windows windows-services

我正在尝试从另一台Windows计算机上运行的Windows服务关闭网络中的Windows计算机。

在控制台中,我可以这样做:

net use \\ComputerName Password /u:User
shutdown /s /t 0 /m \\ComputerName

但是当我尝试从我的Windows服务中执行此操作时:

Process.Start("net", "use \\ComputerName Password /u:User");
Process.Start("shutdown", "/s /t 0 /m \\ComputerName");

什么都没发生。

我知道存在权限问题,因为我的服务在LocalSystem帐户上运行,但我尝试将其更改为我的本地用户但仍无法正常工作。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

对于它的价值,您可以使用记录的WMI Win32_OperatingSystem/Win32Shutdown method以编程方式执行此操作。

链接文章也有关于如何从C ++使用WMI的示例的链接

答案 1 :(得分:0)

如果使用Process.Start,则在单独的会话中调用每个命令。您需要为命令提示符启动单个进程,并通过同一会话调用这两个命令。 cmd /?是你的朋友。

cmd /c [commands]

...可以使用&;链接命令。