0

我正在尝试从另一台 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 帐户上运行,但我尝试将其更改为我的本地用户,但仍然无法正常工作。

任何帮助将不胜感激。

4

2 回答 2

1

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

链接的文章还包含有关如何从 C++ 使用 WMI 的示例链接

于 2012-10-24T17:12:53.807 回答
0

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

cmd /c [commands]

...可以将命令与&or链接起来;

于 2012-10-24T11:12:10.903 回答