Что такое хороший способ перезагрузить список компьютеров Windows в домене Windows? Предполагая, что контроллер домена Windows не имеет службы для этого, пожалуйста, сделайте рекомендации для сценария.
Могу ли я перечислить имена хостов и выполнить итерации по именам хостов, чтобы отправить команду перезапуска каждому? Могу ли я получить список имен хостов с сервера DHCP, работающего в окне Windows 2008 во время выполнения скрипта?
Мои предпочтительные языки сценариев от наиболее до наименее желательных: PHP, javascript, Bash, Python (очень мало знаю), VB (знаю, но не нравится)
windows-server-2008
active-directory
на паровой тяге
источник
источник
Ответы:
Если GPO не ваша вещь, и вы хотите использовать второй вариант Марка Хендерсона (
shutdown /m
пакетный режим), вы можете упростить свою работу, выполняя пакетное отключение, поэтому он будет выполнять их параллельно, а не последовательно. Это требует PowerShell со стороны административной станции, но это очень изящно .Этот фрагмент порождает столько фоновых заданий, которые выполняются параллельно, сколько машин в $ ComputerList. Это может сделать отключение All The Things намного быстрее.
источник
-AsJob
волшебный бит здесь.Это можно сделать с помощью параметров групповой политики, создав новую запланированную задачу, которая будет выполняться каждую ночь в определенное время. Команда для этой задачи должна быть
shutdown /r /t 0
. Затем вы можете связать этот объект групповой политики с подразделениями или подразделениями, в которых есть ваши компьютеры.Возможно, вы захотите использовать опцию «Запускать эту программу с произвольным интервалом», установленную где-то между 10-15 минутами. Если каждый компьютер включается одновременно, это может быть вредно для ваших выключателей, если вы не будете осторожны. Вы также можете выбрать вариант запуска задачи только в том случае, если компьютер простаивал в течение x часов, если кто-то тянет всю ночь. Вы не хотите убивать труд на целую ночь, перезагружая кого-то, кто пытается сделать крайний срок.
источник
Два варианта:
Создайте запланированное задание с помощью объекта групповой политики, который запускается
shutdown /r /f /t 0
илиshutdown /g /f /t 0
на каждой машине, которую вы хотите перезагрузить. (проверьтеshutdown /?
для более подробной информации.Создайте пакет, который запускается
shutdown /m [computer name] /r /f /t 0
с центрального компьютера (возможно, контроллера домена?). Зациклите его для каждого компьютера, который вы хотите перезагрузить (измените[computer name]
). Это означает, что компьютер не будет перезагружен, если он по какой-либо причине недоступен, и его необходимо запускать с учетной записи, имеющей права на перезагрузку компьютеров.Вы должны быть в состоянии написать командный файл, который просматривает список компьютеров, извлеченных из активного каталога, и запускает команду, однако у меня нет времени, чтобы написать один сегодня (и я не хочу тестировать его, даже если Я действительно написал это, иначе я был бы готов для перезагрузки любого компьютера в середине дня).
источник
start cmd /c shutdown /m computer /r /f /t 0
) или используя некоторую логику, чтобы проверить, подключен ли он к сети, иначе задержка для отключенных компьютеров может быть значительной.Лучший способ сделать это - уволить человека, который думает, что это необходимо, и делать то, что делают все остальные, - не делайте этого.
источник