0

cleint マシンをプログラムでシャットダウンできることに同意しました。しかし、私のマシンが Windows サーバー 2008 r2 で構成されているとします。サーバー マシンをシャットダウンするのは、通常のクライアント オペレーティング システム マシンに比べて簡単ではありません。サービスを停止し、実行中のプロセスを停止する必要があるため、最後に、このシャットダウン プロセスがシャットダウン イベント トラッカー用に「計画されている」ことを OS に確認する必要があります。では、C# コンソール アプリケーションからそれを実行できますか? これのために私がしなければならないプログラムは何ですか?

編集済み: すべての回答に感謝します。しかし、質問を書いているときに見逃したことが 1 つあります。このシャットダウンは、マシンが 120 分間無人である場合にのみ実行する必要があります。マシンの出欠を確認できる別のプロセスはありますか?シャットダウンプロセスを呼び出すように。

4

7 に答える 7

2

shutdown.exeこれは、Windowsのコマンドを使用して行うことができます。

Process.Start("shutdown.exe", "/l /t:0");

シャットダウン理由を入力するためのダイアログを単に削除したい場合は、それに応じてレジストリを構成できます。

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliability]
"ShutdownReasonOn"=dword:00000000
于 2011-08-03T11:18:22.320 に答える
1

Windows Server 2008、Windows Vista、およびWindows 7上のUACは、昇格されていないプロセスからの「shutdown.exe」をブロックします。管理者権限でアプリケーションを実行してみてください。

于 2011-08-03T11:20:25.670 に答える
1

p / invokeInitiateSystemShutdownEx使用すると、イベントトラッキングの理由とメッセージ、およびUIダイアログの管理を指定できます。

于 2011-08-03T11:27:29.807 に答える
1

shutdown.exeが機能していませんか?http://technet.microsoft.com/en-us/library/cc770416.aspxを参照してください

于 2011-08-03T11:18:10.740 に答える
1

そのマシンで実行する必要がありますProcess.Start("shutdown",...);(ここで...-はパラメータの文字列です)。

于 2011-08-03T11:18:32.693 に答える
1

Sysinternals Suite には、プロセスの強制終了、サービスのシャットダウン、OS のシャットダウンに必要なツールがすべて含まれています。あなたがそれを見ていない場合は、ここから見てください: http://technet.microsoft.com/en-us/sysinternals/bb842062

于 2011-08-03T11:26:37.853 に答える
1

Processクラスを使用して起動できるShutdownというアプリケーションがあります。

マシンを再起動し、ログメッセージを設定し、リモートマシンを再起動することもできます(私は思う)

于 2011-08-03T11:17:23.883 に答える