833737278282jfnksj
Goto Top

Windows hart beenden wenn User angemeldet und gesperrt ist

Hallo zusammen.

Wir haben in einem Fahrzeug ein Netzwerk mit 6 Desktop Intel NUC PC. Diese werden gesammelt über CAN Bus ein und ausgeschaltet. Hierzu wurde ein Kabel auf die Platine der NUC gelötet. Ich vermute parallel zum Netzschalter.

Hiermit werden die PC ein oder ausgeschaltet. Das klappt immer ideal.

Problemstellung:
Wenn ein User angemeldet ist und der PC gesperrt ist, fährt dieser PC nicht herunter. Dieses ist aber so gewünscht.

Wie kann ich sicherstellen das immer alle PC aus sind und nicht einer von ihnen eingeschaltet bleibt?

Vielen Dank für Ihre Hilfe.

Grüße

Timo
2022-02-18 06_29_08-979031036 - anydesk
2022-02-18 06_27_02-979031036 - anydesk

Content-ID: 1942441956

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

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

em-pie
em-pie 18.02.2022 um 07:18:21 Uhr
Goto Top
Moin,


Ich bin mir gerade nicht ganz sicher, aber es könnte sein, dass das auslösen des Shutdowns via PowerButton ein Event im eventlog auslöst. Das kannst du via Scheduled Tasks abfangen und dann ein shutdown /s /f starten

Gruß
em-pie
833737278282jfnksj
833737278282jfnksj 18.02.2022 um 08:31:09 Uhr
Goto Top
Danke für die Info.

Kannst du eingrenzen wo ich da suchen muss, was dieses Event beschreibt? face-smile

Dann probiere ich darauf in der Aufgabenplanung zu reagieren.
137960
137960 18.02.2022 um 09:45:05 Uhr
Goto Top
Definiere "per CAN Bus ein/ausschalten".
Ist ja ein Bus-System, da kann man nicht einfach z.B. eine Datenleitung parallel zum Netzschalter löten. Wenn, dann würde ich vermuten, dass dort ein Relais (SSR) oder Optokoppler zum Einsatz kommt.
Oder unterstützen die Boards den CAN Bus von Haus aus? Wäre sehr ungewöhnlich.

"sicherstellen, dass sie aus sind" bedeutet für mich: Trennung von der Spannungsversorgung, denn so wirklich fährt Windows 10 nicht runter.

Man könnte es also "hardcore" machen und per CAN Bus tatsächlich Relais schalten, die die Spannungsversorgung entweder auf der Primärseite ausknipst oder auf dem Board eine Leitung unterbricht.

Aus sind die Rechner garantiert - aber nicht gerade sanft heruntergefahren.
833737278282jfnksj
833737278282jfnksj 18.02.2022 um 10:19:36 Uhr
Goto Top
Wie der CAN Bus angeschaltet ist kann ich im Detail nicht genau sagen. Ich meine es ist ein Relais bei dem in der technischen Doku ein Hinweis steht das 5V anliegen wenn der PC eingeschaltet ist (zur Erkennung) und das nur hochohmig angeschlossen werden kann/darf.

Das Verhalten ist so, das die Rechner sofort herunterfahren - ohne Rückfrage etc. Aber es geht nicht wenn der User wie in dem Fall automatisch angemeldet wurde und der PC gesperrt ist. Der soll auch "gnadenlos" herunterfahren. Bloß finde ich keine Einstellung im Windows die das fördert und nicht Windows das verneint.

Das ist übrigens eine bewusste Entscheidung und so gewollt, da Datenverluste in geöffneten Programmen etc. nicht möglich sind, da die Programme welche da geöffnet sind sekündlich die Daten speichern bis zu dem Moment wo der PC eben aus ist.
colinardo
colinardo 18.02.2022 aktualisiert um 14:01:29 Uhr
Goto Top
Servus Timo,
erstelle folgenden Scheduled Task um zu erreichen das der Rechner sofort erzwungen herunterfährt wenn man die Workstation sperrt (WIN+L etc.):

screenshot

screenshot

screenshot

Damit das funktioniert sollte auch folgende Einstellung in der Security-Policy (secpol.msc) kontrolliert werden falls diese geändert wurde:

screenshot


Als Referenz und für den direkten Import in den Task-Scheduler gedacht, habe ich ihn hier auch noch direkt als XML bereitgestellt (nicht vergessen das ganze im Unicode-Encoding abzuspeichern!):
<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Date>2022-02-18T13:35:20.4045446</Date>
    <Author>@colinardo</Author>
    <URI>\Shutdown_on_lock</URI>
  </RegistrationInfo>
  <Triggers>
    <SessionStateChangeTrigger>
      <Enabled>true</Enabled>
      <StateChange>SessionLock</StateChange>
    </SessionStateChangeTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>S-1-5-18</UserId>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>shutdown</Command>
      <Arguments>/s /f /t 0</Arguments>
    </Exec>
  </Actions>
</Task>

screenshot

Viel Spaß damit
Grüße Uwe
833737278282jfnksj
833737278282jfnksj 18.02.2022 um 14:02:52 Uhr
Goto Top
Ich möchte nicht dass der PC herunterfährt wenn man ihn sperrt, sondern trotzdem runterfährt wenn er gesperrt ist und über den CAN Bus Befehl ausgeschaltet wird.
colinardo
colinardo 18.02.2022 aktualisiert um 14:20:14 Uhr
Goto Top
Och bitte ... Danke.
Zitat von @833737278282jfnksj:

Ich möchte nicht dass der PC herunterfährt wenn man ihn sperrt, sondern trotzdem runterfährt wenn er gesperrt ist und über den CAN Bus Befehl ausgeschaltet wird.
Dann musst du eben mittels Skript/Programm das Event des CAN-Bus überwachen und auf das Event bspw einen Eventlog Eintrag erstellen lassen auf den du dann mit einem Tasktrigger und Shutdown reagierst.

Wenn der aber nur am Ein-Ausschalter parallel geschaltet ist und dieser wirklich richtig betätigt wird sollte der Rechner eigentlich automatisch herunterfahren wenn das in den Energieoptionen korrekt hinterlegt ist.

Musst du halt prüfen wie das mit dem CAN-Bus realisiert worden ist. Wir können es hier nicht sehen face-smile.
833737278282jfnksj
833737278282jfnksj 18.02.2022 um 14:22:57 Uhr
Goto Top
Drum oben die Screenshots mit den Energieoptionen. Sind die korrekt. Gibt es mehr Einstellungen?
colinardo
colinardo 18.02.2022 aktualisiert um 15:05:16 Uhr
Goto Top
Zitat von @833737278282jfnksj:

Drum oben die Screenshots mit den Energieoptionen.
Die waren noch nicht da als ich geantwortet habe 🙂
Sind die korrekt. Gibt es mehr Einstellungen?
Ja, wenn der CAN tatsächlich mit Hilfsmittel den Power-Button betätigt dann muss der Rechner damit runterfahren, wenn nicht ist es wohl anders gelöst, wir wissen es ja nicht, alles Spekulation hier.
833737278282jfnksj
833737278282jfnksj 21.03.2022 um 20:19:03 Uhr
Goto Top
Also - der CAN Bus gibt einen Befehl mittels Relais auf die Platine (Mainboard) was komplett dem Drücken des Power Button gleich kommt. Der Power Button kann ebenso gedrückt werden.

Beides hat folgendes Problem.

Immer wen ein User angemeldet ist und dieser den PC sperrt, fährt der PC nicht herunter.

Wie kann ich das trotzdem realisieren?

In der Ereignisanzeige habe ich nichts gefunden, was ich hierfür missbrauchen könnte.

Über Hilfe wäre ich sehr dankbar.
colinardo
colinardo 22.03.2022 aktualisiert um 12:45:49 Uhr
Goto Top
Zitat von @833737278282jfnksj:
Wie kann ich das trotzdem realisieren?
Dafür braucht es dann eine Eigenentwicklung, mittels RegisterHotkey den PowerButton Event abfangen und daraufhin die Kiste runterfahren. Wird aber ehrlich gesagt nicht trivial, den Hotkey am Lockscreen abzufangen, soweit ich mich erinnern kann verhindern das auch aktuelle Windows-Systeme.