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


9

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

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

私が好むスクリプト言語は、最も望ましいものから最も望ましくないものまで:PHP、javascript、Bash、Python(ほとんど知らない)、VB(知っているが好きではない)です。


8
ブレーカーを裏返します。私は子供です。
gravyface

シャットダウンの原因になります。再起動が必要です。
11年

@JM-BIOSで「前の電源状態を再開する」に設定されている場合は除きます。
偽の名前

@Fake名-多くの作業のようなものの音
steampowered

回答:


15

GPOが目的ではなく、Mark Hendersonの2番目のオプション(バッチ処理shutdown /m)を使用したい場合は、シャットダウンをバッチジョブで実行することでジョブを簡単にして、シリアルではなく並列で実行することができます。管理ステーションの一部にPowerShellが必要ですが、とても気の利いたものです。

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

このフラグメントが行うことは、$ ComputerListにマシンがあるの同じくらい多くのバックグラウンドジョブが並列実行されることです。これにより、All The Thingsのシャットダウンが大幅に高速化されます。


2
これは興味深いソリューションです。再起動するコンピューターがたくさんある場合、シャットダウンコマンドを並列で実行するため、このソリューションを強くお勧めします。
リチャードウェスト、

2
これ-AsJobが魔法のビットです。
jscott 2011年

Restart-Computerコマンドレットではなく「shutdown」コマンドを使用している理由を知りたいと思います。
Charles Burge 2017年

@CharlesBurgeこれは5年前に回答され、PS3はあまり普及していませんでした。また、これは他のシステムでコマンドを実行する手法を示しています。2017年は、PowerShellですべてを実行するだけで、コマンドに煩わされることはありません。時間は変わります。
sysadmin1138

7

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

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


GPOでスケジュールされたタスクの設定に慣れていないので、疑問に思っています。タスクが定義されていないマシンをあるOUから別のOUに移動すると、Shedタスクは消えるか、最初に適用された後も残るのですか?
MaCuban 2015年

6

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])。これは、なんらかの理由でコンピュータに到達できず、コンピュータを再起動する権限を持つアカウントから実行する必要がある場合、コンピュータは再起動されないことを意味します。

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


さらに、sysinternalsスイートの一部であるバッチファイルでも実行できるpsshutdownコマンドがあります...
Bart Silverstrim

私は1と2の両方を使用しました。Powershellを楽しんでいます。#2を使用する場合は、メインスクリプトが各コンピューター(たとえばstart cmd /c shutdown /m computer /r /f /t 0)ごとに別個のプロセスを生成するか、いくつかのロジックを使用してオンラインかどうかを確認することを検討してください。
jscott 2011年

4

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


フォルダーリダイレクトは、人々が一晩ログインしたままでいると、リソースを占有しているようです。大量の再起動の代わりに大量のログアウトを設定することもできると思いますが、再起動すると多くの問題が解決したようです。人々は再起動せずに数週間または数ヶ月を過ごします。私は通常、Windowsシステムを実行する正しい方法を学ぶために多くの時間を費やしません。これは、私の主な仕事ではないためです。何がお勧めですか?
11

1
ああ-いいえ。多くの企業では、従業員が再起動する必要はありません。フォルダリダイレクトを使用する必要はないと思いますか?すぐに問題を修正することをお勧めします。毎日自分のワークステーションからログアウトすると、私は個人的に腹を立てます-私はしばしば仕事を夜通し実行させました。あなたの怠惰は多くの人々の困難を犠牲にするかもしれません-あなたの仕事を適切に行うか、そうする人を雇います。
TomTom '10

まあ、私の仕事を適切に行うことは、私たちの小さな窓システムをベイビーにするために多くの時間を費やさないことを意味します。
steampowered

あなたが何をしているのか分からないのですか?;)パフォーマンスがどのようであっても、仕事が無能だと言って人々を解雇します。
TomTom '10

Sysadminは、家族が手伝ってくれる副業です。私が無限の時間を確実に持っていれば、窓や他の接線に関する本をもっと読むでしょう。しかし、お金を稼ぐための私の最善の方法は、Webソフトウェアに固執することです。あなたが答えたのは、私が尋ねた質問に対する技術的な解決策を提供する精神ではまったくなかったと思います。
12:36に蒸気機関車
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.