web-dev-qa-db-ja.com

Windowsドメインのすべてのコンピューターを毎晩再起動する良い方法

WindowsドメインのWindowsコンピューターのリストを再起動する良い方法は何ですか? Windowsドメインコントローラーにこれを行うサービスがないと想定して、スクリプトを推奨してください。

ホスト名をリストし、ホスト名を繰り返して、それぞれに再起動コマンドを送信できますか?スクリプトの実行時にWindows 2008ボックスで実行されているDHCPサーバーからホスト名のリストを取得できますか?

PHP、javascript、Bash、Python(ほとんど知らない)、VB(知っているが、そうではない)いいね)

9
steampowered

もしGPOはあなたのものではなく、Mark Hendersonの2番目のオプション(バッチ処理shutdown /m)シャットダウンのバッチジョブを実行して、シリアルではなくパラレルで実行することで、ジョブを簡単にすることができます。管理ステーションの一部にPowerShellが必要ですが、それはvery niftyです。

foreach ($ComputerName in $ComputerList) {
    invoke-command -AsJob -ScriptBlock {
        params($ComputerName)
        shutdown /m $ComputerName /r /f /t 0
    } -ArgumentList $ComputerName
}

このフラグメントが行うことは、$ ComputerListにマシンが存在するのと同じ数のバックグラウンドジョブ並列実行を生成することです。これにより、All The Thingsのシャットダウンが大幅に速くなります。

15
sysadmin1138

これを行うには、グループポリシーの基本設定を使用して、毎晩特定の時間に実行される新しいスケジュールされたタスクを作成します。そのタスクのコマンドはshutdown /r /t 0。次に、そのGPO=を、コンピューターが含まれているOUにリンクできます。

おそらく、「このプログラムをランダムな間隔で実行する」オプションを10〜15分の間に設定することをお勧めします。注意を怠ると、すべてのコンピューターの電源が同時に投入されるので、ブレーカーに悪影響を与える可能性があります。また、誰かが徹夜をしている場合に備えて、コンピューターがx時間アイドル状態である場合にのみタスクを実行するオプションをオンにすることもできます。期限を設定しようとしているユーザーを再起動して、一晩分の仕事を殺したくはありません。

7
MDMarra

2つのオプション:

  1. 再起動する各マシンでGPO shutdown /r /f /t 0またはshutdown /g /f /t 0を実行する]を介してスケジュールされたタスクを作成します(詳細については、shutdown /?を確認してください。

  2. 中央コンピューター(おそらくドメインコントローラー)からshutdown /m [computer name] /r /f /t 0を実行するバッチを作成します。再起動するコンピュータごとにループします([computer name]を変更します)。これは、なんらかの理由でコンピュータに到達できず、コンピュータを再起動する権限を持つアカウントから実行する必要がある場合、コンピュータは再起動されないことを意味します。

Active Directoryからプルされたコンピューターのリストをループしてコマンドを実行するバッチファイルを作成できるはずですが、今日は作成する時間がありません(そして、私はそれをテストするつもりはありません私はそれを書きました、さもなければ、私はその日の真ん中にみんなのコンピュータを再起動するために焼き尽くされるでしょう)。

6
Mark Henderson

これを行うための最良の方法は、これが必要であるという考えを持つ人を解雇し、他のすべての人が行うことを行うことです-それをしないでください。

4
TomTom