Top-Themen

Aktuelle Themen (A bis Z)

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

PCs in einer Domäne Abends gezielt runter fahren

Mitglied: 103148

103148 (Level 1)

22.03.2013, aktualisiert 07:45 Uhr, 3379 Aufrufe, 16 Kommentare, 4 Danke

Hallo,

ich habe schon etwas gesucht, aber nict so richtig was gefunden.

In einer w2k8 Domäne habe ich ca. 200 PC´s XP und W7.
Alle mit dem Namen FirmaCxxx, C steht für Client und xxx der Zähler von 001 - 500, aktiv sind ca. 200 PC´s.

Diese möchte ich gerne mit einem kleinen Tool gegen 21:00Uhr prüfen und wenn dieser an ist mit einer Meldung runter fahren.

Den shutdown Befehl kenne ich aber ich kann ihn nich in eine "Schleife" binden.

Es gibt dann noch paar PC´s die dürfen nicht runter gefahren werden zb FirmaC360 und FirmaC361.

Gruß
Mitglied: Penny.Cilin
22.03.2013 um 07:37 Uhr
Hallo,

ich würde die Clients in eine Text-Datei ablegen und dieses mittel der For-Schleife dann auslesen und runterfahren.
Somit schließt Du die Clients aus, welche nicht runtergefahren werden sollen.

Es gibt hier einige Threads bzgl. auslesen einer Text-Datei mit anschließender Aktion.

Wie Du schon geschrieben hast, hast Du Dir den Shutdown-Befehl schon angeschaut.


Gruß Penny
Bitte warten ..
Mitglied: Casa85
22.03.2013 um 07:39 Uhr
Ist dies nicht per GPO möglich?

Computerkonfiguration->Systemsteuerungseinstellungen->Geplante Aufgaben?

Gruß
Bitte warten ..
Mitglied: 64748
22.03.2013 um 08:03 Uhr
Guten Morgen zusammen,
Zitat von Casa85:
Ist dies nicht per GPO möglich?

Computerkonfiguration->Systemsteuerungseinstellungen->Geplante Aufgaben?

Gruß
selbst wenn das geht, dann ist das zu unflexibel. Alle PCs die nicht herunter gefahren werden sollen (auch kurzfristig) müssten in eine eigene OU. Das ist so nicht umsetzbar.

Ich würde das mit einer Batch-Datei, aber ohne for-Schleife machen. einfach für jeden Client eine Zeile anlegen
shutdown -s -f -m \\FirmaC001 -C "Feierabend, ab nach Hause!" -t 60 
shutdown -s -f -m \\FirmaC002 -C "Feierabend, ab nach Hause!" -t 60 
... usw.
Der Vorteil ist, wenn ein Kollege zu Dir sagt, "ich muss die kommende Nacht durcharbeiten", dann brauchst Du dessen PC nur in der Batch-Datei auszukommentieren.

Markus
Bitte warten ..
Mitglied: mkuchen
22.03.2013 um 09:15 Uhr
Zitat von 64748:
Guten Morgen zusammen,
> Zitat von Casa85:
> ----
> Ist dies nicht per GPO möglich?
>
> Computerkonfiguration->Systemsteuerungseinstellungen->Geplante Aufgaben?
>
> Gruß
selbst wenn das geht, dann ist das zu unflexibel. Alle PCs die nicht herunter gefahren werden sollen (auch kurzfristig)
müssten in eine eigene OU. Das ist so nicht umsetzbar.

Natürlich ist es das!

Ich würde das mit einer Batch-Datei, aber ohne for-Schleife machen. einfach für jeden Client eine Zeile anlegen
shutdown -s -f -m \\FirmaC001 -C "Feierabend, ab nach Hause!" -t 60 
> shutdown -s -f -m \\FirmaC002 -C "Feierabend, ab nach Hause!" -t 60 
> ... usw.
Der Vorteil ist, wenn ein Kollege zu Dir sagt, "ich muss die kommende Nacht durcharbeiten", dann
brauchst Du dessen PC nur in der Batch-Datei auszukommentieren.


Wozu 200 Zeilen Code schreiben?

Man muss nicht über Peking nach Rom. Die GPOs sind da schon völlig ausreichend.
Bitte warten ..
Mitglied: 64748
22.03.2013, aktualisiert um 09:22 Uhr
Zitat von mkuchen:
...
Wozu 200 Zeilen Code schreiben?

Man muss nicht über Peking nach Rom. Die GPOs sind da schon völlig ausreichend.
Wenn man das mit dem Windowseditor macht, dann hat man ein Problem. So eine Batch-Datei legt man einmal in Excel an und bearbeitet sie weiter in einem richtigen Editor.

mkuchen, wenn Du meinst, dass das per GPO zu lösen ist (und zwar flexibel), dann beschreib mal bitte das genaue Vorgehen, das interessiert mich nämlich.

Markus
Bitte warten ..
Mitglied: DerWoWusste
22.03.2013 um 10:21 Uhr
Moin.
@64748
Alle PCs die nicht herunter gefahren werden sollen (auch kurzfristig) müssten in eine eigene OU. Das ist so nicht umsetzbar
Wie kommst Du denn darauf? Noch nie was von Sicherheitsfilterung gehört?

Einen Task zu verteilen ist eine einfache, gute Lösung, da somit Probleme mit der Konnektivität ausgeschlossen werden.
Bitte warten ..
Mitglied: 64748
22.03.2013 um 10:29 Uhr
Zitat von DerWoWusste:
...
@64748
...
Wie kommst Du denn darauf? Noch nie was von Sicherheitsfilterung gehört?
Nö, meine Kenntnisse enden z.Zt. bei Server 2003, und dort habe ich sowas nicht vorgefunden

Einen Task zu verteilen ist eine einfache, gute Lösung, da somit Probleme mit der Konnektivität ausgeschlossen werden.
Mich würde nun interessieren, ob das auch kurzfristig wirkt (mit der Sicherheitsfilterung). Also Beispiel, ein Kollege lässt einen Prozess auf seinem Rechner über Nacht durchlaufen und sagt dem Admin kurz vor Feierabend bescheid. Kann man dann auf diese Weise den einzelnen Rechner vom Shutdown ausschließen? Ich kenne Gruppenrichtlinien ja nur so, dass sie nach dem soundosvielten Neustart greifen..... und das wäre in meinem Beispiel ja eher hinderlich

Markus
Bitte warten ..
Mitglied: DerWoWusste
22.03.2013 um 10:37 Uhr
Sicherheitsfilterung ging schon mit Win2k - einfach mal belesen. Task Deployment über GPPs geht ab xp. Die Tasks werden per Background refresh eingetragen, kein Neustart erforderlich.
Bitte warten ..
Mitglied: 64748
22.03.2013 um 10:40 Uhr
Zitat von DerWoWusste:
Sicherheitsfilterung ging schon mit Win2k - einfach mal belesen. Task Deployment über GPPs geht ab xp. Die Tasks werden per
Background refresh eingetragen, kein Neustart erforderlich.
Ok, danke, das werde ich mir ansehen wenn ich es mal brauche.

Markus
Bitte warten ..
Mitglied: StyX82
22.03.2013 um 11:08 Uhr
Hallo,

du kannst das eigentlich gut mit einer geplanten Aufgabe per GPO machen.
Das einzige was du zusätzlich machen müsstest, wäre einen WMI-Filter erstellen, wo du die besagten paar PCs ausschliesst.

In etwa so: SELECT * FROM Win32_ComputerSystem WHERE Name != 'NAME'

Gruß

StyX-
Bitte warten ..
Mitglied: DerWoWusste
22.03.2013 um 11:15 Uhr
Hallo Styx.

GPPs haben zusammenklickbare WMI-Filter ("Item level targeting"), das wird also ein Klacks sein.
Bitte warten ..
Mitglied: 103148
22.03.2013 um 15:13 Uhr
cool, sehr nette Ansätze!

Das Verteilen per GPO gefällt mir etwas besser bzw eleganter.
Obwol ich Batches liebe....

Also einfach den Shutdown Befehl als Batch und dann per GPO als geplante Aufgabe verteilen.

unter Ausschluss der Liste mit den Rechnern die nicht runter gefahren werden dürfen.
Da läuft auf paar XP Dosen kleine Tools, gehört für mich eher auf ein Server... aber egal


Jetzt habe ich ein kleines Problem mit den WMI Filter... @DerWoWusste, kannst du mir das etwas näher erklären?

Gruß
Bitte warten ..
Mitglied: DerWoWusste
22.03.2013, aktualisiert um 15:45 Uhr
Da läuft auf paar XP Dosen kleine Tools, gehört für mich eher auf ein Server
Wovon sprichst Du? Da laufen keine Tools sondern Tasks, die einfach den shutdown-Befehl starten.
WMI-Filter siehe http://technet.microsoft.com/en-us/library/cc733022.aspx oder als Bild b5c039362ccd3a3d62961c444433d0dd - Klicke auf das Bild, um es zu vergrößern bzw. ff4f11fa75922aee5139d9da3df9bf23 - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: win-dozer
22.03.2013 um 19:31 Uhr
Hallo,

wie wärs wenn du Aufgaben anlegst um z.B. 08:30, den Shutdowntimer auf eine halbe Stunden und wenn der Anwender "durcharbeitet" kann er eine shutdown -a Batch ausführen die auf dem Desktop liegt?

Gruß

win-dozer
Bitte warten ..
Mitglied: format-c
23.03.2013 um 02:09 Uhr
Zitat von 103148:
Den shutdown Befehl kenne ich aber ich kann ihn nich in eine "Schleife" binden.

Auch wenn die Lösung mittels GPO eine bessere sein mag, und nur, um deine Frage direkt zu beantowrten, wäre eine folgende Umsetzung denkbar:
01.
for /f %%i in ('net view ^| find /I "FirmaC" ^| findstr /V /G:C:\TEMP\ausschlussliste.txt') do shutdown -m %%i -s -t 600 -c "Dieser Rechner wird demnächst heruntergefahren. Zum Abbrechen starten Sie doNotShutdown.bat auf dem Desktop."
Was mich an der ganzen Geschichte am meisten stört, ist dass der Countdown vor dem Herunterfahren ab Windows Vista aufwärts nicht mehr angezeit wird, und der Anwender somit nicht weiß, wieviel Zeit ihm noch bleibt: 90 Minuten oder 9 Sekunden. Schön ist so eine Lösung dann nicht mehr.


Gruß
format-c
Bitte warten ..
Mitglied: Scanner
25.03.2013 um 15:45 Uhr
Benutz doch die "psshutdown.exe" und machs so. Die Domäne auslesen was für Computer vorhanden sind.
die Computer die nicht runtergefahren sollen aus der Liste entfernen und dann die Computer nach einer bestimmten Wartezeit herunter fahren. in meinem Beispiel bleiben die Server oben und die Workstations fahren herunter.

hier mal der Code dazu
Startdatei -> SearchComputer

' +++ 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.
' +++ -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 (rechner die nicht heruntergefahren werden sollen) aus der Liste zu entfernen
Set wshShell = WScript.CreateObject ("WSCript.shell")
wshshell.run ("Dateihandling.vbs")


Dateihandling <-(sortieren der Rechner)


'+++ 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


shutdown_online <- schaun welcher Rechner online ist und ihn dann auf die Liste zum herunterfahren schreiben.

'+++ 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:\SHUTDOWN_DOM\shutdown.bat"
wshShell.run ("%ComSpec% /c " & str_run)

Set wshShell = nothing

End if



shutdown <- die Datei die das eigentliche shutdown ausführt.

psshutdown @online.txt -c -m "Ihr PC wird vom blablabla herruntergefahren. " -t 1800 >> Doku.txt
Bitte warten ..
Ähnliche Inhalte
Windows Server

Auf einem Hyper-v Host Fahren die VMs von selber runter

gelöst Frage von snajmanWindows Server8 Kommentare

Hallo, wie oben beschrieben habe ich volgendes Problem auf einem Hyper-v (Win2012r2) Host Fahren die VMs (Win2012r2) von selber ...

Windows Server

DC lassen sich nicht wieder neustarten sondern fahren beide runter

gelöst Frage von PeacerWindows Server3 Kommentare

Servus, ich habe hier zwe DC's die mit Windows Server 2012 R2 Standard geladen sind. Problem ist, wenn ich ...

Vmware

ESXi-Host und VMs per APC-USV geregelt runter fahren

gelöst Frage von halingtonVmware7 Kommentare

Hallo zusammen, ich hab einen ESXi-Host mit 3 virtuellen Servern und eine APC USV 750 mit einer Network Management ...

Xenserver

XA76 Server aus Machine Catalog fahren runter, aber nicht mehr hoch

Frage von diematrix125Xenserver1 Kommentar

Hallo zusammen, wir haben seit ein paar Tagen ein Problem mit einem unserer Machine Catalogs. Wir benutzen Citrix XenApp ...

Neue Wissensbeiträge
Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 8 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 14 StundenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 1 TagMicrosoft Office4 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless12 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...