ログオンしているユーザーから特に指示がない限り、週末に組織内のすべてのコンピューター (約 1600 台のコンピューター) をリモートでシャットダウンする適切な方法を探していました。
すべてのステーションで実行されるクライアントを構築しました。クライアントはプロセスをリモートで開始する役割を担っており、現在の目的は、ユーザーにシャットダウンが近づいていることを通知するメッセージを表示することです。ユーザーが操作のキャンセルを選択した場合、スクリプトによってコンピューターの電源がオフになることはありません。
ログオンしているすべてのユーザーにとってはうまく機能しますが、ロックされたマシンと現在「スリープ」モードになっているマシンに対処する必要があります。
psshutdown を使用して、ポップアップが表示されたときにキャンセル ボタンをクリックしていないすべてのコンピューターをリモートでシャットダウンします。
psshutdown はロックされたマシンを処理しますが、通信がないためにスリープ状態のマシンにアクセスできません。
そのため、Mac アドレスでコンピュータを起動し、シャットダウン操作を最初からやり直すスクリプトも追加しました。
私の目標を達成するためのより適切で適切な方法があると思いますが、そうでない場合は、組織のすべてのコンピューターの Mac アドレス (オフになっているものも含む) のリストを取得する方法を知りたいと思います。「arp -a」について考えていましたが、組織全体ではなく、特定のスイッチに接続されているコンピューターの小さなリストしか表示されません。
または、さらに良いことに、現在の問題を解決するためのより良い方法はありますか? おそらく、他の方法を使用して、一部のPCに到達できない(スリープしている)にもかかわらず、一連のPCをリモートでシャットダウンします。