daswombat1993
Goto Top

Scheduled shutdown GPO

Liebe Administratoren,

Ich habe vor alle Rechner im Unternehmen Täglich, Zeitgesteuert und falls zu diesem Zeitpunkt der Computer bereits 30min Idle ist herunterzufahren.

Folgende Punkte sind mir dabei wichtig bzw. zu beachten:

• User haben keine Adminrechte.

• Es sollten einzelne Rechner (Computerobjekte) von der GPO ausgenommen werden können. Ob über Security filtering oder auf OU Ebene ist mir dabei egal.

• Server 2016 mit Windows 10+7 Clients

Meine Idee war eine scheduled task mit schutdown -f -s -t 120 anzulegen und zeitgesteuert auszuführen. Diese wird dann mittels einer computerpolicy verteilt. Ausgeführt wird das Ganze mit %logondomain%\%logonuser% oder SYSTEM.
Der Task sollte soweit ich weis in der Aufgabenplanung auf den Lokalen Rechnern erscheinen – tut Sie aber nicht.

Ich habe langsam einen Knoten im Hirn und denke die Lösung kann nicht so kompliziert sein.

Vielleicht kann mir hier jemand den entscheidenden Tipp geben.
Gerne auch über ein Script oder eine andere Lösung.

Danke!

Content-ID: 372444

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

emeriks
emeriks 27.04.2018 um 15:42:37 Uhr
Goto Top
Hi,
d.h. Deine Frage ist: Warum wird die Aufgabe nicht erstellt?"

Wird denn die GPO überhaupt angewendet? Hast Du das mit "gpresult" überprüft?
Wenn nein, dann ist es klar, dass die Aufgabe nicht erstellt wird. Dann kannst Du alles andere erstmal vergessen und Dich nur darauf konzentrieren, warum diese GPO nicht angewendet wird und dies lösen.

Wenn die GPO (dann) angewendet wird aber die Aufgabe immer noch nicht erstellt wird, dann machst Du dort weiter. Hier sollte man als erstes in den Eventlogs nachschauen. Man kann extra Logfiles für die GPP's aktivieren.

usw. usw.
Schritt für Schritt

E.
DasWombat1993
DasWombat1993 27.04.2018 um 16:37:03 Uhr
Goto Top
Hallo,

Dnake für die Antwort!

Ja, die GPO wird angewendet.
Es geht mir auch weniger darum was an meiner GPO falsch ist

Sondern Ich suche eher nach einer Möglichkeit oder einen Denkanstoß wie meine Anforderungen umzusetzen wäre.

Gehen wir davon aus Ich hätte noch keine GPO und würde gerne folgende Punkte in einer neuen verpacken:

- Automatisches Herunterfahren um 19:00, außer ein User arbeitet noch und das Täglich.
- Ausnahme einzelner Computer (Computerobjekte im AD) aus der GPO.
- Clients Win7/10x64 ohne Admin Rechte

wie würdet Ihr das angehen?
KMUlife
KMUlife 27.04.2018 um 17:29:17 Uhr
Goto Top
Hallo Wombat

In der Theorie so:

  • Geplanter Task per GPO aursollen welcher immer 19:00 startet
  • Ausnahmen in Gruppenrichtlinie definieren
  • Task per z.B. SYSTEM-User ausführen

Wie wärs, wenn du das mal zuerst inklusive recherchieren, probierst... danach wenn konkrete Fragen auftauchen, wieder posten.

LG
KMUlife
BassFishFox
BassFishFox 28.04.2018 aktualisiert um 01:53:49 Uhr
Goto Top
Hallo,

außer ein User arbeitet noch und das Täglich.

Wir hatten mal Aehnliches. War ein geplanter Task der um 21:00 startete und ein Eigenbau-Programm (per AutoIT gebaut) aufrief welches pruefte ob bestimmte Programme (in unserem Fall proquota.exe, sdjexec.exe und sxpeng32.exe) liefen, wenn nicht wurde der Rechner herunter gefahren.

Ackere Dich mal durch bei den Geplanten Aufgaben und dem Trigger "On Idle". Vielleicht reicht das ja fuer Dich.
Ansonsten musst Du einen Weg finden, wie Du erfaehrst ob der Benutzer arbeitet oder halt einfach nur angemeldet ist. Stichwort ist auch hier "idle". Dann wenn "idle" halt PC runter fahren.

Eine niedliche Vielleicht-Loesung mit AutoIt ist hier.
https://community.spiceworks.com/topic/440560-auto-logoff

Angepasst (Zeile 15) fuer herunterfahren anstatt abmelden:
#NoTrayIcon
#include <Timers.au3>
Const $IdleTimeToLogoff = (1 * 60 * 1000) ; 1 minute, for testing
Global $last = 0
Global $triggered = false
While(True)
	Sleep(10 * 1000); 10sec
	Global $i = _Timer_GetIdleTime()
	If Not $triggered Then
		if $i < $last Then
			$triggered = True
		EndIf
		$last = $i
	ElseIf $i > $IdleTimeToLogoff Then
		ShellExecute("c:\windows\system32\shutdown.exe", "-f -t 0")  
		Exit
	EndIf
WEnd

Geht garantiert auch mit Powershell oder anderen Mitteln.

BFF
DasWombat1993
DasWombat1993 02.05.2018 um 10:43:18 Uhr
Goto Top
Hallo und Danke für die Antworten,

Ich habe nun nochmal von vorne angefangen und mit den Grundeinstellungen begonnen:

unbenannt

Das ist nun nur die Richlinie mit Standard Security Einstellungen auf einen Standard Benutzer angewendet.

Die GPO erscheint beim Jeweilgen Benutzer in den Angewendeten Gruppenrichlinien mit einem gpresult /r

- in der Aufgabenplanung aber nicht. Wie kann das sein?
KMUlife
Lösung KMUlife 02.05.2018 aktualisiert um 11:03:35 Uhr
Goto Top
Hi

Wieso der Task nicht angelegt wird, kann ich dir grad nicht sagen.
Was sicher nicht funktioniert ist die Zeile: "run shutdown"

Dort gibste entweder die cmd.exe an und dann als argument shutdown oder aber gleich die shutdown.exe (inklusive Pfad!) und dann deine Argumente.

Hast du das ganze Prozedere schon mal ohne GPO geprüft? Erstell doch zuerst mal manuell ne Aufgabe bei dir auf dem System und teste das ganze, bevor du solche Dinge per GPO machst. Dann wäre dir obenstehendes nämlich schon mal aufgefallen.

Edit: Öffnest du die Aufgabenplanung mit dem Standardbenutzer oder mit einem Admin? Könnte noch sein, dass du die Aufgabe einfach nicht siehst, sie aber angelegt wurde.

Grüsse
KMUlife
DasWombat1993
DasWombat1993 02.05.2018 um 11:04:55 Uhr
Goto Top
Hallo,

die ganze Sache funktioniert genau so wenn Ich die Task als User erstelle und ausführe.

shutdown /s /f /t 0 ist devinitv richtig.

Wegen der nicht auftauchenden Task:

"Scheduled Tasks are only visible to the user who created them or if the user is an Administrator.
If you start a powershell console without elevation it run's in user context with its normal user token unelevated! Therefore the console cannot see this tasks."

Könnte das der Grund sein?
KMUlife
Lösung KMUlife 02.05.2018 um 11:31:20 Uhr
Goto Top
Zitat von @DasWombat1993:

Hallo,

die ganze Sache funktioniert genau so wenn Ich die Task als User erstelle und ausführe.

shutdown /s /f /t 0 ist devinitv richtig.

Dann ist das mybad... sorry!

Wegen der nicht auftauchenden Task:

"Scheduled Tasks are only visible to the user who created them or if the user is an Administrator.
If you start a powershell console without elevation it run's in user context with its normal user token unelevated! Therefore the console cannot see this tasks."

Könnte das der Grund sein?

Starte die Aufgabenplanung mal als Admin, dann weisst du's =).

Aber war ja auch meine Vermutung:
Edit: Öffnest du die Aufgabenplanung mit dem Standardbenutzer oder mit einem Admin? Könnte noch sein, dass du die Aufgabe einfach nicht siehst, sie aber angelegt wurde.

LG
KMUlife
DasWombat1993
DasWombat1993 02.05.2018 um 12:00:37 Uhr
Goto Top
Aber war ja auch meine Vermutung:
//Edit: Öffnest du die Aufgabenplanung mit dem Standardbenutzer oder mit einem Admin? Könnte noch sein, dass du die Aufgabe einfach nicht >siehst, sie aber angelegt wurde.

Danke, die Task ist als Administrator zu sehen.
Das Ist ja schon mal ein Fortschritt.

Also wir die Richlinie richtig verarbeitet und die Task angelegt.

Nun stellt sich nur noch die Frage warum wird der Befehl nicht ausgeführt?

Aktuell sieht die GPO so aus:

unbenannt

Genau so funktioniert die Task wenn Ich sie Lokal am Rechner als Standart User anlege und ausführe.
DasWombat1993
DasWombat1993 02.05.2018 um 12:01:39 Uhr
Goto Top
OK blödsinn geredet, jetzt funktioniert die Task Zeitgesteuert face-smile
KMUlife
KMUlife 02.05.2018 um 15:48:23 Uhr
Goto Top
Hallo Wombat

Zitat von @DasWombat1993:

OK blödsinn geredet, jetzt funktioniert die Task Zeitgesteuert face-smile

Also alle Fragen geklärt?
Wenn Ja, gerne Beitrag 'als gelöst markieren'.

LG
KMUlife
DasWombat1993
DasWombat1993 02.05.2018 aktualisiert um 16:31:44 Uhr
Goto Top
Falls es für die Zukunft jemanden Interessiert, Ich habe das Problem nun folgendermaßen gelöst:

1. Erstellen einer Scheduled Task als UserGPO


2018-05-02 15_53_00-svwydc01 - remotedesktopverbindung

2. Als User wird %LogonDomain%\%LogonUser% verwendet

2018-05-02 15_57_31-svwydc01 - remotedesktopverbindung

3. Als Trigger wurde „Täglich um 18:45“ gewählt.

2018-05-02 15_53_24-svwydc01 - remotedesktopverbindung

4. Als Action „shutdown /s /f /t 120“

2018-05-02 15_54_02-svwydc01 - remotedesktopverbindung

5. Als Condition habe Ich „If Idle for 30min – wait 1h for Idle“ gesetzt.

2018-05-02 15_54_25-svwydc01 - remotedesktopverbindung

6. Um auf Computerkonten einzuschränken habe Ich die betroffenen Rechner in eine Gruppe gegeben und über das „Item-level targeting“ der GPO auf die Gruppe eingeschränkt.



Dadurch habe Ich all meine Anforderungen erfüllt ohne groß zu Skripten.

Danke für eure Hilfe!
KMUlife
KMUlife 02.05.2018 um 16:22:00 Uhr
Goto Top
Hi Wombat

Danke für die letzten Infos!
Schau doch noch, dass keine Domänennamen, Computernamen & Usernamen/Gruppen auf den Printscreens ersichtlich sind. (Zensieren)
Etwas paranoid ist es ja, aber man weiss ja nie face-wink.

LG
KMUlife
Sameer
Sameer 14.01.2020 um 10:21:53 Uhr
Goto Top
Wie kann ich einstellen das die Users eine Benachritigung bzw. ein Fenster auf dem Desktop bekommen wo steht PC WIRD in 2 Minuten (zeit angepassung) so lange der User nicht abbricht wird der Task ausgefüht sonst nicht falls er auf Abrrechen klickst
DasWombat1993
DasWombat1993 14.01.2020 um 16:22:17 Uhr
Goto Top
Hallo Sameer,

einfach ein Script schreiben das deine Showdown Routine mit den Abfragen enthält und in meiner Lösung anstatt dem Befehl verwenden.