Jaki jest dobry sposób na ponowne uruchomienie listy komputerów z systemem Windows w domenie Windows? Zakładając, że kontroler domeny systemu Windows nie ma do tego usługi, proszę o zalecenia dotyczące skryptu.
Czy mogę wymienić nazwy hostów i iterować nazwy hostów, aby wysłać do każdego polecenie restartu? Czy mogę uzyskać listę nazw hostów z serwera DHCP działającego w polu Windows 2008 w czasie wykonywania skryptu?
Moje preferowane języki skryptowe od najbardziej do najmniej pożądanych to: PHP, javascript, Bash, Python (wiem bardzo mało), VB (wiem, ale się nie podoba)
windows-server-2008
active-directory
steampowered
źródło
źródło
Odpowiedzi:
Jeśli GPO nie jest twoją rzeczą i chcesz przejść z drugą opcją Marka Hendersona (grupowanie
shutdown /m
), możesz ułatwić sobie zadanie, wykonując wsadowe zamykanie, aby działało to równolegle, a nie szeregowo. Wymaga PowerShell po stronie administratora, ale jest bardzo sprytny .Fragment ten odradza tyle zadań w tle wykonywanych równolegle, ile jest komputerów w $ ComputerList. Może to spowodować, że zamknięcie All The Things nastąpi znacznie szybciej.
źródło
-AsJob
jest magiczny kawałek tutaj.Możesz to zrobić za pomocą Preferencji zasad grupy, tworząc nowe zaplanowane zadanie, które będzie uruchamiane każdej nocy o określonej godzinie. Poleceniem dla tego zadania powinno być
shutdown /r /t 0
. Następnie możesz połączyć ten obiekt zasad grupy z jednostką organizacyjną lub jednostkami organizacyjnymi, w których znajdują się komputery.Prawdopodobnie zechcesz skorzystać z opcji „Uruchom ten program w losowych odstępach czasu” ustawionej gdzieś pomiędzy 10–15 minut. Włączenie zasilania każdego komputera w tym samym czasie może być szkodliwe dla przerywaczy, jeśli nie będziesz ostrożny. Możesz także zaznaczyć opcję uruchamiania zadania tylko wtedy, gdy komputer był bezczynny przez x godzin, na wypadek, gdyby ktoś ciągnął za wszystko. Nie chcesz zabijać pracy przez całą noc, uruchamiając ponownie kogoś, kto próbuje dotrzymać terminu.
źródło
Dwie opcje:
Utwórz zaplanowane zadanie za pomocą obiektu GPO, który działa
shutdown /r /f /t 0
lubshutdown /g /f /t 0
na każdym komputerze, który chcesz zrestartować. (sprawdźshutdown /?
więcej szczegółów.Utwórz partię uruchamianą
shutdown /m [computer name] /r /f /t 0
z komputera centralnego (być może kontrolera domeny?). Zapętl go dla każdego komputera, który chcesz zrestartować (zmień[computer name]
). Oznacza to, że komputer nie zostanie ponownie uruchomiony, jeśli jest nieosiągalny z jakiegokolwiek powodu i musi zostać uruchomiony z konta, które ma uprawnienia do restartowania komputerów.Powinieneś być w stanie napisać plik wsadowy, który zapętla listę komputerów pobranych z katalogu aktywnego i uruchamia polecenie, jednak nie mam czasu na pisanie jednego z nich dzisiaj (i nie chcę go testować, nawet jeśli Napisałem to, w przeciwnym razie zostałbym zaatakowany za ponowne uruchomienie komputera każdego w środku dnia).
źródło
start cmd /c shutdown /m computer /r /f /t 0
) Lub skorzystaj z logiki, aby sprawdzić, czy jest online, w przeciwnym razie opóźnienie dla komputerów offline może być znaczne.Najlepszym sposobem na to jest zwolnienie osoby, która uważa, że jest to potrzebne i robi to, co robią wszyscy inni ludzie - nie rób tego.
źródło