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場合は、個別のセッションで各コマンドを呼び出しています。代わりに、コマンド プロンプトに対して 1 つのプロセスを起動し、同じセッションで両方のコマンドを呼び出す必要があります。cmd /?あなたの友達です。

cmd /c [commands]

&...またはでコマンドを連鎖させることができます;

于 2012-10-24T11:12:10.903 に答える