Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Alle PCs in Domäne rebooten

Frage Microsoft Windows Netzwerk

Mitglied: Festus94

Festus94 (Level 1) - Jetzt verbinden

30.06.2011 um 22:09 Uhr, 7053 Aufrufe, 19 Kommentare

Suche Möglichkeit, alle PCs in Windows-Domäne auf einmal neuzustarten

Hallo,

wie oben beschrieben, suche ich eine Möglichkeit, alle PCs in einer Windows-Domäne auf einmal zu rebooten.
Ich dachte daran, einfach einen Shutdown-Befehl an die Broadcast-Adresse zu senden. Das hat allerdings nicht
funktioniert. Stattdessen kam die Meldung, dass der Client nicht gefunden wurde.

Habt ihr eine Idee, wie ich dieses Problem lösen könnte ?

Vielen Dank für alle Tipps im Vorraus !


Viele Grüße
tbnwadm
Mitglied: Xaero1982
30.06.2011 um 22:21 Uhr
Hi,

leg dir ne Liste an mit allen Computernamen.

Zusätzlich brauchst du die PSTools und da kannst du mit der PSShutdown.exe die Datei aufrufen und alle neu starten.

psshutdown @File -r -t 00 (wenn ich mich recht Erinner)

VG
Bitte warten ..
Mitglied: Festus94
30.06.2011 um 22:31 Uhr
Hallo,

danke für die schnelle Antwort. Kann ich da auch irgendiwe erreichen, dass erst der DC, dann die Terminalserver, dann ein dritter Server, und dann die ganzen Workstations booten ?



tbnwadm
Bitte warten ..
Mitglied: St-Andreas
30.06.2011 um 22:36 Uhr
Hallo,

ne kleine Batch die die unterschiedlichen Geräte mit unterschiedlichen Wartezeiten für den Shutdown abhandelt.
Bitte warten ..
Mitglied: Festus94
30.06.2011 um 22:38 Uhr
Wärst Du so nett, und würdest mir ein Bespiel geben ? Was das Batchen angeht, habe ich nicht wirklich hilfreiche Erfahrungen. ;)


Viele Grüße
tbnwadm
Bitte warten ..
Mitglied: 60730
30.06.2011 um 23:06 Uhr
moinsen,

Zitat von Festus94:
Hallo,

danke für die schnelle Antwort. Kann ich da auch irgendiwe erreichen, dass erst der DC, dann die Terminalserver, dann ein
dritter Server, und dann die ganzen Workstations booten ?

*hüstel*

Die Reihenfolge ist aber extrem falsch...

  • eine Liste deiner Kisten bekommst du (wenn du die nicht hast) via net view
Und etwas "schöner"
for /f "tokens=1 delims=\ " %a in ('netview') do echo %a>alle_clients.txt
  • Die sortierst du so, wie die Kisten heruntergefahren werden sollen
  • Server am Schluß - nicht am Anfang.....

Zum Thema shutdown Psstools findest du einiges - was das Batchen angeht - eigene Erfahrungen sind das beste - bau was aus den bisherigen Tipps und wenns nicht weitergeht - helfen wir gerne - aber etwas eigenintiative zu sehen ist voraussetzung.

Gruß
Bitte warten ..
Mitglied: jsysde
30.06.2011 um 23:23 Uhr
Server automatisch/per Skript neu starten?
Ob das mal ne gute Idee ist...

Anyway, in Abhängigkeit von der Anzahl der PCs in deinem Netzwerk bzw. pro Standort kannst du dir ein Problemchen einfangen:
Beim Booten verursachen Rechner Leistungsspitzen im Stromnetz - wenn du also sehr viele PCs und die alle gleichzeitig aus- und wieder angehen, könntest du dir damit die Sicherung(en) rausschiessen. Zumindest haben wir das bei uns in einer Laborumgebung schon mal hinbekommen.

Cheers,
jsysde
Bitte warten ..
Mitglied: 2hard4you
30.06.2011 um 23:38 Uhr
Zitat von Festus94:
Hallo,

danke für die schnelle Antwort. Kann ich da auch irgendiwe erreichen, dass erst der DC, dann die Terminalserver, dann ein
dritter Server, und dann die ganzen Workstations booten ?



tbnwadm

Moin,

nenne doch mal bitte einen vernüftigen Grund, warum Du das willst

Danke & Gruß

24
Bitte warten ..
Mitglied: Festus94
01.07.2011 um 14:40 Uhr
Hallo,

danke für die Tipps.

Die Reigenfolge hatte ich ausgewählt, da alle Clients (die laufen) neu gestartet werden sollen, um Änderungen in der Domäne zu übernehmen. Daher auch der DC als Erster, dann die Terminalserver, usw. ;)

Das Skript soll nur ablaufen, wenn ich es ausführe - was hoffentlich eine Seltenheit darstellt. Es ist auch eher nur für den Fall gedacht...

Das mit dem Stromnetzt sollte kein Problem darstellen, aber danke für den Tipp !


Viele Grüße
tbnwadm
Bitte warten ..
Mitglied: FSX2010
01.07.2011 um 14:56 Uhr
läuft der DNS Server auf dem DC? Wenn ja sollte die als letztes rebootet werden. Ansonsten können evtl. die Namen nicht mehr aufgelöst werden. Es sei du verwendest die IP Adressen. Was aber auch wieder schlecht ist wenn Du die IPs per DHCP vergibst. Allerding weiss ich auch nicht warum du das machen willst?

Gruss

Micha
Bitte warten ..
Mitglied: Festus94
01.07.2011 um 15:25 Uhr
Ich hatte einfach vor mir ein solches Skript zu basteln, für den Fall, dass mal Änderungen gemacht werden, die den Neustart aller Clients vorraussetzen. Also auch noch die Server dabeipacken - wenn schon, denn schon...

Ich habe DHCP im Einsatz, daher würde ich gerne die Hostnamen verwenden. Der DNS läuft auf dem Router.



tbnwadm
Bitte warten ..
Mitglied: BigWim
01.07.2011 um 15:33 Uhr
Hallo,

Daher auch der DC als Erster, dann die Terminalserver, usw. ;)
Wenn der DC als Erster booten muß(?), dann manuelle von Hand. Warten bis der wieder da ist, dann weiter machen

Das Skript soll nur ablaufen, wenn ich es ausführe - was hoffentlich eine Seltenheit darstellt.
Dann würde ich keinen Aufwand treiben. Wie vorgeschlagen, die Listen anlegen und diese für shutdown /i nutzen (Cut & Paste).

Gruß
Markus
Bitte warten ..
Mitglied: 60730
01.07.2011 um 16:37 Uhr
Moin,

Der DNS läuft auf dem Router.

das ist nicht dein Ernst?
Bitte warten ..
Mitglied: Festus94
01.07.2011 um 16:55 Uhr
Zitat von 60730:
das ist nicht dein Ernst?

Doch, eigentlich schon, wieso ? Es funktioniert alles.



Viele Grüße
tbnwadm
Bitte warten ..
Mitglied: Festus94
01.07.2011 um 16:56 Uhr
@Markus: Danke, dann werde ich das wohl so machen. Das mit dem DC wollte ich nur so machen, weil ich mir hab' sagen lassen, dass die Verbindungen aller Clients (und der abhängigen Server) dann praktisch "ungültig" wären, da die IPs ggf. nicht mehr akzeptiert werden, Folder Redirections nicht übernommen werden, etc.


tbnwadm
Bitte warten ..
Mitglied: 2hard4you
01.07.2011 um 20:56 Uhr
naja, genauer sind es die Kerberostickets, die ungültig werden....
Bitte warten ..
Mitglied: Festus94
02.07.2011 um 14:33 Uhr
Genau das war's.



tbnwadm
Bitte warten ..
Mitglied: Xaero1982
02.07.2011 um 15:47 Uhr
Zitat von Festus94:
> Zitat von 60730:
> ----
> das ist nicht dein Ernst?

Doch, eigentlich schon, wieso ? Es funktioniert alles.



Viele Grüße
tbnwadm

Das würde ich mal bezweifeln

VG
Bitte warten ..
Mitglied: Scanner
08.07.2011 um 14:03 Uhr
Hallo zusammen, ich habe zwar nicht alles gelesen, aber ich würde das so machen.

Script 1
' +++ Sucht alle Computer in der Domaene und speichert sie in einer Datei
' +++ dsquery computer <- findet alle Computer im Activ Directory
' +++ -limit 200 <-- Das Standart limit liegt bei 100 Einträgen.
' +++ da wir in der Domaene ca. 150 Rechner haben wird es mit
' +++ diesen Befehl auf 200 heraufgesetzt.
' +++ -o rdn <-- Nur der Computername wir ausgegeben
str_run = "dsquery computer -limit 200 -O rdn > Computer_in_Domaene.txt"
set wshell = CreateObject("WScript.Shell")
' +++ Startet eine DOS Box und führt dann dort den Eintrag in str_run aus.
' +++ /c fuert den Befehl/ befehle aus und endet dann.
wshell.Run "%ComSpec% /c " & str_run,,True
Set wshell = nothing

' +++ Aufruf des Dateihandlings um die Server aus der Liste zu entfernen
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run ("Dateihandling.vbs")
Set wshell = Nothing


Sript 2
Hinweis: die Datei Server.txt wurde manuell erstellt, in ihr stehen die Namen der Server / Clients die nicht angefasst werden sollt

'+++ Variablen Deklaration
Dim objFs1, objFs2, objFs3 ' FileSystemObject Objekt
Dim strDateiname1, strDateiname2, strDateiname3
Dim strMaschines, strServer
Dim objTextStream1, objTextStream2, objTextStream3 ' Textstream Objekt
Dim strBoolean

' +++ FileSystemObjecte anlegen
Set objFs1 = CreateObject("Scripting.FileSystemObject")
Set objFs2 = CreateObject("Scripting.FileSystemObject")
Set objFs3 = CreateObject("Scripting.FileSystemObject")

'+++ Datei Pfade und Namen deklarieren
'+++ 1 fuer die Computer in der Domaene, 2 fuer die Serverliste
'+++ 3 ist fuer die Aufnahme der Workstations in der domaene
strDateiname1 = "Computer_in_Domaene.txt"
strDateiname2 = "Server.txt"
strDateiname3 = "Workstation.txt"


' +++ Textstream oeffnen, erlaubt Zugriff auf den Inhalt der Datei
' +++ objTextStream1 = Computer in Domaene
Set objTextStream1 = objFs1.OpenTextFile(strDateiname1,1)

'+++ Datei zur Aufnahme der Workstations erstellen
Set objTextStream3 = objFs3.CreateTextFile(strDateiname3, 8)


'+++Computerliste durchlaufen und kontrollieren ob es ein Server ist.
'+++ Wenn es kein server ist, dann in die Workstaton Datei eintragen
While Not objTextStream1.AtEndOfStream
strBoolean = False
strMaschines = objTextStream1.ReadLine

' +++ Textstream oeffnen, erlaubt Zugriff auf den Inhalt der Datei
' +++ objTextStream2 = Server
Set objTextStream2 = objFs2.OpenTextFile(strDateiname2,1)

While Not objTextStream2.AtEndOfStream
strServer = objTextStream2.ReadLine
If strMaschines = strServer Then
strBoolean = True
End if

Wend
'+++ Schliessen um ihn zu leeren
objTextStream2.Close

'+++ wenn es kein Server ist dann ab damit in die datei.
If strBoolean = False Then
'+++ Computer in Workstationliste eintragen
'+++ erst den text formatiern und die " entfernen.
'+++ dann den String mit einen Zeilenumbruch in Datei schreiben:
strMaschines = Replace(strMaschines, Chr(34), "")
objTextStream3.Write strMaschines & vbCrLf
End If

Wend


' +++ Textstream schliessen
objTextStream3.Close
objTextStream1.Close

' +++ Resourcen freigeben
Set objTextStream1 = Nothing
Set objTextStream2 = Nothing
Set objTextStream3 = Nothing
Set objFs1 = Nothing
Set objFs2 = Nothing
Set objFs3 = Nothing

' +++ Aufruf des Shutdon progs um alle Rechner die Online sind runter zu fahren.
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run ("shutdown_online.vbs")

Set wshshell = nothing

Script 3:schaun welcher der Kisten an ist (pingen)
'+++ Variablen deklaration
Dim objFs1, objFs2 '+++ FileSystemObject Objekt
Dim strDateiname1, strDateiname2
Dim objTextStream1, strMaschines '+++ Textstream Objekt
Dim str_run '+++ Zur Aufnahme eines DOS Box Befehls
Dim i '+++ Zaehler zur Kontrolle ob ein Rechner Online ist.
i=0 '+++ Zaehler


'+++ Datei Pfade und Namen deklarieren
'+++ 1 = Die Rechner die online bzw aktive sind
'+++ 2 = Alle Workstations in der Domäne
strDateiname1 = "online.txt"
strDateiname2 = "Workstation.txt"

' +++ FileSystemObjecte anlegen
Set objFs1 = CreateObject("Scripting.FileSystemObject")
Set objFs2 = CreateObject("Scripting.FileSystemObject")

'+++ Textstream oeffnen, erlaubt Zugriff auf den Inhalt der Datei
'+++ 1 = Die Rechner die online sind
'+++ 2 = Alle Workstations in der Domäne

Set objLogFile = objFS1.CreateTextFile(strDateiname1,8)
Set objTextStream1 = objFs2.OpenTextFile(strDateiname2,1)

While Not objTextStream1.AtEndOfStream

strMaschines = objTextStream1.ReadLine

'+++ Pingen um heraus zu bekommen ob der Rechner online ist
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address = '"_
& strMaschines & "'")

'+++ Wenn der Rechner an ist, kommt er in die Online Datei
For Each objStatus in objPing
If objStatus.StatusCode=0 Then
objLogFile.Write(strMaschines & VbCrLf)
i=1 '+++ Merker, das mind. ein Rechner online ist.
End If
Next

Wend

'+++ Kontrolliert ob ueberhaupt ein Rechner online war.
'+++ Wenn nicht wird eine Bemerkung in die Datei geschrieben und alles Beendet.
if i=0 then
'+++ Durchlauf wenn kein Rechner Online war

'+++ Bemerkung in die Datei schreiben
objLogFile.Write("Keine Computer Online!" & VbCrLf)

'+++ Stream schliessen
objTextStream1.Close
objLogFile.Close

'+++ Dateihaendling
Set wshell = WScript.CreateObject("WScript.Shell")
'+++ Benennt die Online Dateim zur Doku um.
str_run = "ren online.txt online_%date%.txt"
'+++ Startet eine DOS Box und führt dann dort den Eintrag in str_run aus.
wshell.Run("%ComSpec% /c " & str_run)
'+++ Nicht mehr benoetigte Datei Loeschen
str_run = "del Computer_in_Domaene.txt"
wshell.Run("%ComSpec% /c " & str_run)
'+++ Nicht mehr benoetigte Datei Loeschen
str_run = "del Workstation.txt"
wshell.Run("%ComSpec% /c " & str_run)


'+++ Objekte freigeben
Set objFs1 = Nothing
Set objFs1 = Nothing
Set wshshell = Nothing

Else
'+++ Wird durchlaufen wenn mind. 1 Rechner online war.

'+++ Stream schliessen
objTextStream1.Close
objLogFile.Close

'+++ Objekte freigeben
Set objFs1 = Nothing
Set objFs1 = Nothing

'+++ Aufruf des shutdown Progs
Set wshShell = WScript.CreateObject ("WSCript.shell")
str_run ="C:\XXX\shutdown.bat"
wshShell.run ("%ComSpec% /c " & str_run)

Set wshShell = nothing

End if


Und nun die Bat Datei


Sleep5min.vbs
psshutdown @online.txt -c -m "Ihr PC wird von blablabla herruntergefahren. (Tel.xxxxxxx)" -t 1800 >> Doku.txt

Sleep5min.vbs

del Computer_in_Domaene.txt
del Workstation.txt
ren online.txt online_%date:~0,2%%date:~3,2%%date:~6,4%.txt
ren Doku.txt Doku_%date:~0,2%%date:~3,2%%date:~6,4%.txt

So fahre ich alle clients in der Domaäne herrunter, zum reeboot musst du nur den psshutdown eintrag anpassen.
Dann hasst du alles schön sauber Dokumentiert.
Durch die vielen Kommentare müste das ganze selbsterklärend sein.
Ss gibt bestimmt bessere Lösungen, aber so mach ich es halt.
Bitte warten ..
Mitglied: Festus94
08.07.2011 um 14:38 Uhr
Danke für den Tipp ! Ich werde es bei Gelegenheit mal ausprobieren.


tbnwadm
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Netzwerk
gelöst Mehrere Windows PCs gleichzeitig zur Domäne (4)

Frage von PharIT zum Thema Windows Netzwerk ...

Windows Netzwerk
USB-Gerät ins Netzwerk (Domäne) einbinden (3)

Frage von griss0r zum Thema Windows Netzwerk ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (1)

Frage von Gien-app zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...