kaffeepause
Goto Top

Shutdown -f auf Servern bedenkenlos?

Ich habe auf mehreren Servern (Mitgliedsserver und Domänencontroller) eine Batch, die über einen Task regelmäßig aufgerufen wird, in der der shutdown-Befehl einen Reboot auslöst. Meine Frage: Wie kontrolliert fahren die Server herunter? Werden dadurch eventuell Systemdateien oder -konfigurationen beschädigt?

Letztens durften wir die AD-Datenbank reparieren - was glücklicherweise problemlos funktionierte.
Nur frage ich mich, wie es das Active Directory zerschossen hat.
Wir starten die Server über Batch & Task einmal wöchentlich neu, wobei shutdown /r /f /t 60 ausgeführt wird.
/f steht für force und genau deshalb frage ich mich, ob der Server, wenn er nicht schnell genug herunterfährt, einfach ganz rüde alle Prozesse abschießt und dadurch eventuell Systemdateien beschädigt (ähnlich, wie das regelmäßige Ziehen des Stromsteckers bei einer XP-Kiste irgendwann zu Fehlern - beispielsweise im Dateisystem - führt).

Kurzfassung: ist der Schalter /f bedenklich oder unbedenklich?
Erfahrungswerte???

Happy Namenstag allen Juttas und Manuelas

Content-Key: 112309

Url: https://administrator.de/contentid/112309

Ausgedruckt am: 29.03.2024 um 13:03 Uhr

Mitglied: 68702
68702 25.03.2009 um 10:41:08 Uhr
Goto Top
Macht der Server denn Probleme, wenn du ihn ohne /f runterfährst ?
Mitglied: Kaffeepause
Kaffeepause 25.03.2009 um 10:43:10 Uhr
Goto Top
Zitat von @68702:
Macht der Server denn Probleme, wenn du ihn ohne /f runterfährst?

Das weiß ich noch nicht. Hab die Batches heute morgen erst auf allen Servern geändert.
Mitglied: Kaffeepause
Kaffeepause 25.03.2009 um 11:16:07 Uhr
Goto Top
Ich hätte gern die genaue Funktion von shutdown /f gewusst, also beispielsweise ob ein TASKKILL durchgeführt wird. Das ist mein eigentliches Anliegen.
Mitglied: 60730
60730 25.03.2009 um 11:42:55 Uhr
Goto Top
<sarkasmus on>
Auch dir ein feuchtfröhliches Hallo face-wink
<sarkasmus off>

Ich hätte gern die genaue Funktion von shutdown /f gewusst, also....

  • welchen Grund gibt es, die Server einmal wöchentlich neu zu starten?
  • Passiert das "gleichzeitig auf allen DCs?"

Kurzfassung: ist der Schalter /f bedenklich oder unbedenklich?

Kurzfassung: ist das "nur shutdown /r /f /t 60" - keine Abfrage, ob evtl. ein bestimmter (unwichtiger) Task wie zum Bleistift Msiexec gerade läuft?

Wenn ja - Kurzfassung - Yupp.

Gruß
Mitglied: Kaffeepause
Kaffeepause 25.03.2009 um 12:09:49 Uhr
Goto Top
Hoppla, das "Hallo" hab ich diesmal tatsächlich vergessen. Dafür hab ich brav zum Namenstag gratuliert (ist doch aus was).

Der Grund für einen Neustart sind sicherheitsrelevante Updates. Zwar gibt es in der Regel pro Monat nur einen Patchday, aber das ist eben nur die Regel, Ausnahmen gibt es trotzdem. Während der Arbeitszeit lassen sich die Server immer so schlecht neustarten, vor allem Dateiserver, Internetserver, E-Mail-Server usw., von denen keine redundanten Server haben, die dann die Funktionen übernehmen. Deswegen wurde der Task eingerichtet, der das außerhalb der Geschäftszeiten macht. Da es upraktisch wäre, jedesmal den Task neu festzulegen (je nachdem wann Microsoft Bock auf Updates hat), wurde ein regelmäßiger Reboot festgelegt.

Der Reboot erfolgt nicht gleichzeitig auf allen DCs. Es liegen mindestens Stunden dazwischen.

Im Bezug auf die Batch: Ja, es erfolgt keine Abfrage.

--> reicht es für mich aus, den Schalter /f zu entfernen, oder werden dann immer noch systemrelevante Tasks gekillt? Falls gekillt wird, wie kann ich einen - mehr oder weniger - regelmäßigen automatischen Reboot initiieren, ohne gleich mein Netzwerk in die Tonne zu kicken?
Startest du bei Updates, die einen Neustart erfordern, alle betroffenen Server jedesmal per Hand neu durch?

Viele Grüße
Mitglied: 60730
60730 25.03.2009 um 12:23:43 Uhr
Goto Top
face-wink ... und ich hatte noch keinen Kaffe face-wink
Startest du bei Updates, die einen Neustart erfordern, alle betroffenen Server jedesmal per Hand neu durch?

So ungefähr....
und das sind dann immer die Wochenendtage, an denen sich der Beilsche Timo im Administrator Forum rumtreibt
die nicht redundanten Systeme, die nicht virtualisiert sind, sicher ich erstmal mit Drivesnapshot, und danach werden die Updates installiert und die Kisten fahren dann eh zu 95% von alleine runter.
^Die virtuellen werden eh täglich gesichert, bei den redundanten hab ich von jedem Monat ein Backup

Selbstverfreilich nicht per Hand, sondern per Handgestartetem Batch.

Ich hab bei Windowsupdates einfach gelernt, das ich denen nie traue - mag sein, dass ich nun "übervorsichtig" bin - das letzte Restore eines Upgedateten abschmierers mußte ich bei W2kSP2 durchziehen und war sehr froh - es zu haben. Ok ist schon ein paar Tage her, aber in dem Fall "Sicher ist Sicher"

Und leider stimmen die Aussagen bezüglich Neustart ja grundsätzlich nicht mehr, früher stand das explizit beim Patch dabei, heute steht immer "möglicherweise"...

Und Exchange /SQL ist ja gleich ein ganz anderes Thema, da knipse ich vorher die betreffenden Dienste aus und erst dann wird das update angestossen.

Gruß
Mitglied: Kaffeepause
Kaffeepause 25.03.2009 um 12:39:36 Uhr
Goto Top
Hallo,

Virtualisierung ist hier noch ein feuchter Traum...

Bei uns stehen an die 20 Server rum, das alles per Hand zu machen wird irgendwann unpraktikabel. Daher - wenn es geht - Skripte, Batches, Tasks...

Die Updates spiele ich übrigens auf Servern auch per Hand ein (WSUS verteilt, installiert aber nicht selbständig), aber das löst nicht das Problem mit dem Reboot. Ärger hatte ich übrigens hauptsächlich in Verbindung mit ISA oder (seltener) SQL.

Jaja, Technik macht alles leichter. Hab zwar tolle WSUS-Server eingerichtet, aber so lange hier keine 1:1-Testumgebung für die ganzen Server steht, ist das Einspielen der Updates einfach immer ein Glücksspiel.

Ich schau mal weiter im Technet, ob es da genaue Beschreibungen des Shutdown-Befehls gibt...
Mitglied: DerWoWusste
DerWoWusste 27.03.2009 um 01:17:02 Uhr
Goto Top
Hi!
Microsoft hätte es gerne so, dass der Updatedienst die Server neu startet - rate mal, wie der vorgeht. Der nutzt auch -f, was denn sonst. Der schert sich doch nicht darum, was auf dem Server noch geöffnet ist. Hast Du jedoch Datenbanken am laufen, dann mach es doch so: Leg per GPO eine zeitplangestützte Installation auf 3 Uhr nachts fest. Um 5 vor 3 lässt Du dann per geplantem Task die Datenbankdienste runterfahren und fertig. Machen wir seit Ewigkeiten so.
Mitglied: Kaffeepause
Kaffeepause 27.03.2009 um 13:58:24 Uhr
Goto Top
Hi,

haha, das mit dem Updatedienst-Neustart-/f wusste ich nicht. Lustig.

Die Updates spielen wir jedoch eh per Hand ein (also der WSUS verteilt die Dinger, aber die Admins stoßen die Installation dann doch selbst an).

Was ich jetzt probiere:
  • den Schalter /f herausnehmen (mal schauen, wie viele dann neu booten)
  • die Dienste auf dem Rechner vorher per Batch beenden (sc stop Dienstname) und dann erst den shutdown-Befehl absetzen. Der Dienste-Stop-Befehl dürfte schonender sein, als ein der Force-Schalter

Ziemlich nervig übrigens, die vielen Dienste in der richtigen Reihenfolge (wegen der Abhängigkeiten) in die Batch zu hacken...

Mache es also so ähnlich wie DerWoWusste, aber dann doch ein bisschen anders.

Am Montag weiß ich mehr.
Mitglied: Kaffeepause
Kaffeepause 03.04.2009 um 13:37:33 Uhr
Goto Top
Hi folks,

nur ein einziger Server (von knapp 20) hat ohne den Schalter /f neu gestartet.

Ich hab jetzt auf ALLEN Servern die Batch so angepasst, dass die (vermutlich) aktiven Dienste (also die, welche in der Regel gestartet sind) über den SC STOP Befehl beendet werden. Dabei wird jedesmal eine Log-Datei erstellt, welche auch den Fehlercode %errorlevel% mitgibt (auch wenn ich noch keine Doku habe, welche Fehlercodes SC zurückgibt). Bei der Batch wurde auf die Abhängigkeiten der Dienste geachtet.

Anschließend wird noch eine Protokolldatei auf dem Server abgelegt, welche die noch aktiven Dienste und Tasks anzeigt.
Diese Log-Dateien werde ich dann auswerten und schauen, was ich damit machen kann.

sc stop <dienst1>& ECHO %computername% hat am %date% den <Dienst1>-Dienst mit Fehler %errorlevel% abgeschlossen>>"\\<Server>\Logs$\%computername%_reboot.log"  
...
TASKLIST /SVC>>"\\<Server>\Logs$\%computername%_reboot.log"  
TASKLIST /V>>"\\<Server>\Logs$\%computername%_reboot.log"  
TASKLIST /M>>"\\<Server>\Logs$\%computername%_reboot.log"  
shutdown /r /t 10 /f

Ich schließe den Beitrag mal, auch wenn ich noch nicht wirklich schlauer bin. Eine wirkliche Lösung bezüglich Neustarts habe ich noch nicht.

Wünsche euch allen so schönes Wetter, wie es hier gerade ist,
Die Kaffeepause