Dobry sposób, aby co noc ponownie uruchamiać wszystkie komputery w domenie Windows

9

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)

steampowered
źródło
8
odwróć wyłącznik. Ja dzieciak
gravyface
to spowodowałoby wyłączenie, potrzebuję ponownego uruchomienia.
steampowered
@JM - nie, jeśli są ustawione na „Wznów poprzedni stan zasilania” w BIOS-ie.
Fałszywe imię
@Fake Name - to brzmi jak dużo pracy
steampowered

Odpowiedzi:

15

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 .

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

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.

sysadmin1138
źródło
2
To ciekawe rozwiązanie - jeśli masz dużo komputerów do ponownego uruchomienia, bardzo polecam to rozwiązanie, ponieważ będzie ono uruchamiać polecenia zamykania równolegle.
Richard West
2
To -AsJobjest magiczny kawałek tutaj.
jscott,
Jestem ciekawy, dlaczego używasz polecenia „zamknij” zamiast polecenia cmdlet Restart-Computer.
Charles Burge
@CharlesBurge Odpowiedzi udzielono 5 lat temu, a PS3 nie był szeroko wdrażany. Pokazuje to również technikę uruchamiania poleceń w innych systemach. W 2017 r. Robilibyśmy to wszystko w PowerShell i nie zawracali sobie głowy poleceniami. Czasy się zmieniają.
sysadmin1138
7

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.

MDMarra
źródło
Nie jestem zaznajomiony z ustawianiem Zaplanowanych zadań za pomocą GPO, więc zastanawiam się: jeśli maszyna zostanie przeniesiona z jednej jednostki organizacyjnej do innej bez zdefiniowanego zadania, czy Shed Task zniknie, czy pozostanie po zastosowaniu po raz pierwszy?
MaCuban
6

Dwie opcje:

  1. Utwórz zaplanowane zadanie za pomocą obiektu GPO, który działa shutdown /r /f /t 0lub shutdown /g /f /t 0na każdym komputerze, który chcesz zrestartować. (sprawdź shutdown /?więcej szczegółów.

  2. Utwórz partię uruchamianą shutdown /m [computer name] /r /f /t 0z 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).

Mark Henderson
źródło
Dodatkowo istnieje polecenie psshutdown, które może również uruchamiać plik wsadowy, część pakietu sysinternals ...
Bart Silverstrim
Użyłem zarówno 1, jak i 2. Teraz bawię się Powershellem. Jeśli używasz # 2, rozważ główny skrypt spawnujący osobny proces dla każdego komputera (np. 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.
jscott,
4

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.

TomTom
źródło
Przekierowanie folderu wydaje się wiązać zasoby, gdy ludzie pozostają zalogowani przez noc. Przypuszczam, że mógłbym spróbować skonfigurować masowe wylogowanie zamiast masowego restartu, ale ponowne uruchomienie wydaje się rozwiązać wiele problemów. Ludzie przechodzą tygodnie lub miesiące bez restartu. Zazwyczaj nie poświęcam dużo czasu na naukę właściwego sposobu uruchamiania systemów Windows, ponieważ to nie jest moja podstawowa praca. Co polecasz?
steampowered
1
Ah nie. Mnóstwo firm nie wymaga od swoich ludzi ponownego uruchamiania - myślisz, że nigdy nie używają przekierowania folderów? Sugeruję rozwiązanie tego problemu. Osobiście byłbym wkurzony, gdyby codziennie wylogowywano mnie ze stacji roboczej - często pozwalam, by zadania działały z dnia na dzień. Twoje lenistwo może kosztować wiele trudów ludzi - wykonuj swoją pracę właściwie lub zatrudnij kogoś, kto to robi.
TomTom
Właściwe wykonywanie mojej pracy oznacza, że ​​nie spędzam zbyt wiele czasu na opiekujeniu się naszym małym systemem Windows.
steampowered
Nie wiesz co robisz? ;) Zwalniam ludzi, którzy mówią, że są niekompetentni w swojej pracy, bez względu na to, jak się zachowują.
TomTom
Sysadmin to praca dodatkowa, którą wykonuję dla mojej rodziny, aby im pomóc. Gdybym miał czas nieskończony, przeczytałbym więcej książek na temat okien i innych stycznych. Ale moim najlepszym sposobem na zarabianie pieniędzy jest trzymanie się oprogramowania sieciowego. Myślę, że odpowiedź wcale nie była w duchu oferowania technicznego rozwiązania zadanego pytania.
steampowered