我正在尝试从另一台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帐户上运行,但我尝试将其更改为我的本地用户但仍无法正常工作。
任何帮助将不胜感激。
答案 0 :(得分:1)
对于它的价值,您可以使用记录的WMI Win32_OperatingSystem/Win32Shutdown method以编程方式执行此操作。
链接文章也有关于如何从C ++使用WMI的示例的链接
答案 1 :(得分:0)
如果使用Process.Start
,则在单独的会话中调用每个命令。您需要为命令提示符启动单个进程,并通过同一会话调用这两个命令。 cmd /?
是你的朋友。
cmd /c [commands]
...可以使用&
或;
链接命令。