Usługi Windows nie uruchamiają się automatycznie?

14

Mieliśmy ostatnio problemy z synchronizacją czasu na naszych serwerach z systemem Windows Server 2008 R2.

Prześledziłem to z powrotem do czegoś bardzo prostego: usługa czasu systemu Windows nie została uruchomiona! Czas nie może być synchronizowany przez NTP, gdy usługa czasu nie działa ...

Usługa Czas systemu Windows została ustawiona na „automatyczne” uruchamianie w panelu sterowania usług, który sprawdziłem dwukrotnie i potrójnie. Sprawdziłem także dzienniki zdarzeń i nie zauważyłem żadnych awarii usług ani nic podobnego. W rzeczywistości wyglądało to tak, jakby Usługa Czas systemu Windows nigdy nie uruchamiała się automatycznie po zainstalowaniu cotygodniowych aktualizacji systemu Windows i ponownym uruchomieniu serwerów. (ma się to zdarzyć w każdą sobotę o 19:00).

Gdy tylko zacząłem korzystać z usługi czasu, czas zsynchronizował się dobrze.

Zatem pytanie: dlaczego zestaw usług uruchamiany „Automatycznie” ... nie uruchamia się automatycznie? To wydaje mi się trochę szalone.

Jeff Atwood
źródło

Odpowiedzi:

11

W32time nie uruchomi się automatycznie, jeśli komputer nie jest w domenie. Cholera Microsoft!

Spróbuj uruchomić to: sc triggerinfo w32time start/networkon stop/networkoff

ARPcPro
źródło
potwierdzono tutaj mcbsys.com/techblog/2010/09/…, więc przyjmuję twoją odpowiedź - dzięki!
Jeff Atwood
4

Jedno możliwe wyjaśnienie z tego wątku :

Zrozumiałem to w zasadzie, że usługa nie zostanie włączona, dopóki Ty, zadanie, urządzenie lub sieć, nie uruchomisz wydarzenia, aby je włączyć. Podczas próby aktualizacji godziny wywołujesz usługę i wywołujesz zdarzenie „Uruchom usługę xyz”. Może także wyłączyć usługę po zakończeniu. To bardzo uproszczone. Jest to jeden z powodów, dla których siódemka jest szybsza, ponieważ wiele usług działa tylko wtedy, gdy są potrzebne, a nie cały czas czeka na coś, aby z nich skorzystać. W efekcie nie musisz próbować decydować, których usług potrzebujesz, a których nie, mogą same zadbać o siebie.

Mówi o nowym jądrze w Windows 7.

Ponieważ Windows Server 2008 R2 i Windows 7 współużytkują to samo jądro, zastanawiam się, czy rozdzielczość jest taka sama?

Zalecają ustawienie usługi na automatyczny / opóźniony start, aby to naprawić.

Nadal utrzymuję, że to szaleństwo, że usługa ustawiona na automatyczną nie zostałaby uruchomiona ... i nie do końca rozumiem różnicę semantyczną między opóźnionym automatycznym uruchomieniem a automatycznym uruchomieniem, ale jeśli to działa, myślę, że nie będę narzekać.

Jeff Atwood
źródło
W systemie Windows 7 może tak być. Trudno mi uwierzyć, że mieliby ten sam system w win 2k8, szczególnie z maszyną w domenie, ponieważ synchronizacja czasu jest tak ważna dla uwierzytelnienia.
Zypher
cóż, w 100% potwierdziłem, że jest to usługa ustawiona na Automatyczną, która w niewytłumaczalny sposób NIE działała. Dziwne jest to, że wszystkie inne usługi ustawione na Automatyczny (opóźniony start lub nie), z wyjątkiem „Ochrony oprogramowania”, są uruchomione. Co jest specjalnego w w32time, która uniemożliwia automatyczne uruchomienie?
Jeff Atwood
1

Niestety z czasem systemu Windows ręcznie włączyłeś rejestrowanie .

Nie ma dobrej odpowiedzi na „co spowoduje, że usługa nie uruchomi się automatycznie”. Jedynym prawdziwym powodem jest to, że zależność nie uruchomiła się poprawnie lub nastąpiła awaria usługi podczas jej uruchamiania. I bez logów, zgadujesz równie dobrze jak nasz.

Sugerowałbym włączenie rejestrowania czasu Windows dla następnych kilku cykli łatek. Jeśli usługa się pojawi, wszystko będzie dobrze, jeśli nie, masz coś do pracy.

Dla przypomnienia, widziałem więcej niż jeden serwis, który postanowił nie uruchamiać się bez żadnego dobrego powodu po łatce, ale działał dobrze po pierwszym ponownym uruchomieniu.


Zaczął pisać komentarz, a następnie zabrakło miejsca.

W rzeczywistości uzyskasz informacje z tego dziennika.

  1. Jeśli w ogóle nie ma dziennika, nawet nie próbuje się uruchomić. Możesz rozpocząć wyszukiwanie od tego miejsca, każdy drobny fragment informacji pomaga w rozwiązywaniu tego rodzaju problemów.

  2. Ponieważ jest to dziennik debugowania, który włączasz za pomocą powyższego linku, powinieneś coś dostać, jeśli spróbuje się uruchomić. Przynajmniej będziesz wiedział, dlaczego nie udaje się rozpocząć.

Odkryłeś jedną z największych trudności związanych z byciem sysadminem: potrzebujesz dzienników, aby powiedzieć, od czego zacząć, ale usługa nie osiąga punktu, w którym może generować dzienniki. Klasyczny kurczak i problem z jajkami.

Zypher
źródło
Nie sądzę, aby rejestrowanie koniecznie pomogło w tym przypadku, ponieważ nawet nie jest rejestrowane. Po uruchomieniu usługa działa świetnie! Prawdziwe pytanie brzmi: dlaczego nie działa?
Jeff Atwood
Czy jesteś w domenie? Jakie są reguły czasowe dla Twojej domeny?
Trevoke,
0

Dzięki, ustawiłem opóźnienie niektórych usług, które nie uruchamiały się w systemie Windows Server 2016 i działało, ale nie mogłem tego zrobić w przypadku usługi antywirusowej, ponieważ jest ona chroniona przed modyfikacją.

Znalazłem jednak obejście, które działało, nawet jeśli było w 2008 R2: https://support.microsoft.com/en-us/help/922918/a-service-does-not-start-and- events-7000-and-7011-are-log-in-windows-server-2003-windows-server-2008-and-windows-server-2008-R2

Prawdopodobnie spowoduje to uruchomienie dowolnej usługi, bez ustawiania jej na opóźniony start. Na pewno działało w przypadku programu antywirusowego.

Wkleję tutaj najbardziej użyteczną część obejścia:

Aby obejść ten problem, zmodyfikuj rejestr, aby zwiększyć domyślną wartość limitu czasu dla menedżera sterowania usługami. Aby zwiększyć tę wartość do 60 sekund, wykonaj następujące kroki:

Click Start, click Run, type regedit, and then click OK.
Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
In the right pane, locate the ServicesPipeTimeout entry.

Note: If the ServicesPipeTimeout entry does not exist, you must create it. To do this, follow these steps:

    On the Edit menu, point to New, and then click DWORD Value.
    Type ServicesPipeTimeout, and then press ENTER. 
Right-click ServicesPipeTimeout, and then click Modify.
Click Decimal, type 60000, and then click OK.

This value represents the time in milliseconds before a service times out.
Restart the computer.
fsr
źródło