私は停電があるときを知っているメインコンピュータを持っている。そのメインコンピュータは、組み込みの "shutdown/m \ computername/s"コマンドを使用して、ネットワーク経由ですべてのワークステーションにシャットダウンを指示します。 そのメインコンピュータはまた、同じshutdown /m \\computername /r
メカニズムを使用して再起動するように個々のワークステーションに指示します。シャットダウン-sが実行されているときを調べる
各ワークステーションには、実行時にすべての重要なデータが保存されるスクリプトがあります。
各ワークステーションは、ネットワーク経由でシャットダウンまたは再起動するように指示されたときにスクリプトを実行する必要があります(shutdown /m \\computername /s
またはshutdown /m \\computername /r
)。
Idea1:
- シャットダウン/再起動が発生したときに調べるためにWM_QUERYENDSESSIONイベントを使用します。
- シャットダウン/再起動をキャンセルします。
- スクリプトを実行します。
- (問題。:私はシャットダウンや再起動がメインコンピュータによって発行されたかどうかを決定するために合理的な方法が表示されない)をシャットダウン/再起動を続行
Idea2:
- shutdown.exeプロセスが存在するまで待ちます。
- は、スクリプトを実行して処理し、そのプロセスのコマンドラインパラメータ
- キルを取得します。
- 取得したパラメータでshutdown.exeを実行します。
問題:shutdown.exeが実際に実行されていません。ローカルでも単純なshutdown -s -t 30
を実行しても、
Idea3:着信ネットワークトラフィックスニフ
- 。シャットダウン-mパケット
- ため
- ルック...
問題:私が使用していると、パケットがどのようにフォーマットされているどのようなプロトコルは考えています。
Idea4:私は場合は見当がつかない、これは希望:
- モニタのイベントログ
- それは
問題を発行されたシャットダウンの種類についての情報を含んでいることを願っています記録される。
PS:
PsExecは使用しません。ワークステーションは独自のスクリプトを実行する必要があります。
スーパーユーザーと/またはserverfaultでよく聞かれるかもしれません – Jasen
私の質問はかなりプログラミングに特有です。 – Forivin
これはプログラミングに関するものですが、shutdown.exeを使用するのではなく、すべてのマシンにインストールされた特定の.exeで実装された独自のシャットダウンプロトコルをプログラムするのはなぜですか? –