Хороший спосіб перезавантажувати всі комп'ютери в домені Windows щовечора


9

Який хороший спосіб перезавантажити список комп'ютерів Windows на домені Windows? Припустимо, що в контролері домену Windows немає служби для цього, будь ласка, зробіть рекомендації щодо сценарію.

Чи можу я перерахувати імена хостів і повторити імена хостів, щоб надіслати команду перезавантаження кожному? Чи можу я отримати список імен хостів із сервера DHCP, що працює у вікні Windows 2008 під час виконання сценарію?

Мої кращі мови сценаріїв від найменш бажаних: PHP, javascript, Bash, Python (знаю дуже мало), VB (знайте це, але це не подобається)


8
переверніть вимикач. Я дитина.
gravyface

це призведе до відключення, мені потрібна перезавантаження.
парі

@JM - ні, якщо в BIOS встановлено значення "Відновити попередній стан живлення".
Підроблене ім’я

@Fake Name - це звучить як багато роботи
працює на

Відповіді:


15

Якщо GPO - це не ваша річ, і ви хочете піти з другим варіантом Марка Хендерсона (дозування 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

Мені цікаво, чому ви використовуєте команду "shutdown", а не командлет Restart-Computer.
Чарльз Бурге

@CharlesBurge На це відповіли 5 років тому, і PS3 не був широко розгорнутий. Також це демонструє техніку виконання команд на інших системах. У 2017 році ми просто зробили б це все в PowerShell і не обтяжувались командами. Часи змінюються.
sysadmin1138

7

Це можна зробити за допомогою налаштувань групової політики, створивши нове заплановане завдання, яке буде виконуватися щовечора в певний час. Команда для цього завдання повинна бути shutdown /r /t 0. Потім ви можете зв’язати цей GPO з ОУ чи ОУ, у яких є ваші комп'ютери.

Ви, ймовірно, захочете скористатися параметром "Запустити цю програму у випадковому інтервалі", встановленому десь на 10-15 хвилин. Увімкнення живлення кожного комп'ютера одночасно може бути поганим для ваших вимикачів, якщо ви не будете обережні. Ви також можете перевірити опцію виконання завдання лише в тому випадку, якщо комп'ютер не працює протягом x годин, якщо хтось тягне за собою все. Ви не хочете вбивати цілу ніч роботи, перезавантаживши когось, хто намагається скласти термін.


Мені не знайомі із встановленням запланованих завдань за допомогою GPO, тому мені цікаво: якщо машина буде переміщена з одного OU в інший без визначеного завдання, чи зникне завдання Shed або воно залишиться після першого застосування?
MaCuban

6

Два варіанти:

  1. Створіть планове завдання через GPO, який працює shutdown /r /f /t 0або shutdown /g /f /t 0на кожній машині, яку ви хочете перезавантажити. (перевірте shutdown /?більш детальну інформацію.

  2. Створіть пакет, який працює shutdown /m [computer name] /r /f /t 0від центрального комп'ютера (можливо, контролер домену?). Цикла його для кожного комп'ютера, який ви хочете перезавантажити (змінити [computer name]). Це означає, що комп'ютер не буде перезавантажено, якщо він недоступний з будь-якої причини, і його потрібно запустити з облікового запису, який має права на перезавантаження комп'ютерів.

Ви повинні мати можливість створити пакетний файл, який проходить цикл через список комп'ютерів, витягнутих з активного каталогу та виконує команду, однак я сьогодні не маю часу його написати (і я не бажаю перевіряти його, навіть якщо Я написав це, інакше мене б запікали на перезавантаження комп'ютера Everyones посеред дня).


Крім того, є команда psshutdown, яка також може проходити через пакетний файл, частина набору sysinternals ...
Bart Silverstrim,

Я використовував і 1, і 2. Тепер весело з Powershell. Якщо ви користуєтесь №2, розгляньте окремий процес нересту основного сценарію для кожного комп'ютера (наприклад start cmd /c shutdown /m computer /r /f /t 0) або використовуючи певну логіку, щоб перевірити, чи є в Інтернеті, інакше затримка для автономних комп'ютерів може бути значною.
jscott

4

Найкращий спосіб зробити це - звільнити людину з думкою, що це потрібно, і робити те, що роблять всі інші люди, - не робити цього.


Здається, перенаправлення папок пов’язує ресурси, коли люди залишаються увійшли в систему протягом ночі. Я думаю, я міг би спробувати налаштувати масовий вихід замість масового перезавантаження, але перезавантаження, здається, усуне стільки проблем. Люди йдуть тижнями чи місяцями без перезавантаження. Зазвичай я не вкладаю багато часу, щоб навчитися правильному запуску систем Windows, тому що це не моя основна робота. Що ви порадите?
парі

1
Ага - ні. Тонни компаній не вимагають, щоб їх люди перезавантажувалися - ви думаєте, що вони невірно використовують переадресацію папок? Я пропоную вирішити проблему під рукою. Я особисто був би розлючений, якби мене виходили зі своєї робочої станції щодня - я часто давав роботу працювати протягом ночі. Ваша лінь може коштувати великої кількості людей - виконайте свою роботу належним чином або наймайте когось, хто це робить.
TomTom

Що ж, робити свою роботу належним чином означає не витрачати занадто багато часу на немовляти нашої маленької системи Windows.
парі

Не знаючи, що ти робиш? ;) Я звільняю людей, кажучи, що вони некомпетентні у своїй роботі, незалежно від того, наскільки вони є.
TomTom

Сисадмін - це побічна робота, яку я роблю для своєї сім’ї, щоб допомогти їм. Якби я мав нескінченний час, я б прочитав більше книг про вікна та інші дотичні. Але мій найкращий спосіб заробити гроші - це дотримуватися веб-програмного забезпечення. Я думаю, ти відповів зовсім не в дусі запропонувати технічне рішення питання, яке я задав.
парі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.