NEWS
Ist ein Win User gerade aktiv?
-
Hallo,
Ich mach's kurz:
Ziel ist es, einige Geräte automatisch einzuschalten, wenn ein User gerade an einem PC eingeloggt ist.
Ich habe bereits den "Windows-Control" Adapter entdeckt in Kombination mit dem "GetAdmin.exe" Tool.
So recht werde ich aber noch nicht schlau daraus.
Theoretisch könnte man ja das Windows Kommando "query user" nutzen um alle aktiven Nutzer zu listen. Natürlich mit ein wenig string handling.Aber wie kann ich den Befehl nun remote ausführen und den Consolenoutput verarbeiten?
Oder gibt es überhaupt eine elegantere Methode?
lG
-
Hallo,
Ich mach's kurz:
Ziel ist es, einige Geräte automatisch einzuschalten, wenn ein User gerade an einem PC eingeloggt ist.
Ich habe bereits den "Windows-Control" Adapter entdeckt in Kombination mit dem "GetAdmin.exe" Tool.
So recht werde ich aber noch nicht schlau daraus.
Theoretisch könnte man ja das Windows Kommando "query user" nutzen um alle aktiven Nutzer zu listen. Natürlich mit ein wenig string handling.Aber wie kann ich den Befehl nun remote ausführen und den Consolenoutput verarbeiten?
Oder gibt es überhaupt eine elegantere Methode?
lG
@thirty8763
Vielleicht geht es auch so: Die Windows-Aufgabenplanung nutzen, als Trigger "bei Anmeldung" wählen und ein Powershell-Skript starten, welches einen Datenpunkt im iobroker setzt.Keine Ahnung, ob das so läuft, aber auf den ersten Blick sieht es wie die einfachere Lösung für mich aus.
-
@marc-berg said in Ist ein Win User gerade aktiv?:
@thirty8763
Vielleicht geht es auch so: Die Windows-Aufgabenplanung nutzen, als Trigger "bei Anmeldung" wählen und ein Powershell-Skript starten, welches einen Datenpunkt im iobroker setzt.Keine Ahnung, ob das so läuft, aber auf den ersten Blick sieht es wie die einfachere Lösung für mich aus.
Jup...hab das gerade mal getestet. Das geht. Voraussetzung: Das Powershelll Script muss laufen dürfen (bypass policy) und es ist z.B. der Simple API Adapter installiert. Dann kann man jeden Login (egal ob nach dem einschalten, Benutzer Wechsel oder wenn der Rechner aus dem Stromsparmodus kommt) registrieren und via script darauf reagieren.
Ich hab dazu unter c:\temp eine loginscript.ps1 Datei angelegt. In dieser Datei steht:
$msg = $env:UserName Invoke-WebRequest -Uri "http://192.168.0.177:8087/set/0_userdata.0.1_Test.Username?value=$msg"Zeile1: Hol den Username aus den Umgebungsvariablen
Zeile2: Frage aus Powershelll herraus die URL "http://192......." ab.In Zeile 2 bitte nicht vergessen die IP (192.168.0.177) gegen die korrekte zu tauschen.
Dann in der Aufgabenplanung (Win-Taste drücken und einfach "Aufgabenplanung" tippen) starten und links auf "Aufgabenplanungsbibliothek" klicken. Dann rechts auf "Einfache Aufgabe erstellen" klicken. In der Aufgabe dann als Trigger wie Marc Berg schon sagte "Bei Anmeldung" auswählen und bei Aktionen "Programm starten" auswählen. Ich hab beim Programm das reinkopiert:
PowerShell.exe -ExecutionPolicy Bypass -File c:\temp\logonscript.ps1Weil dann die ExecutionPolicy nicht großartig verändert werden muss.
Nicht vergessen: Im IOBroker hab ich unter 0.Userdata.0.1_Test den Datenpunkt Username angelegt.
Dann ging es. Zum testen kann man in der POwershell ISE das obige Powershell manuell ausführen und schauen ob alles wie gewünscht läuft.
Im IOBroker muss der Adapter "simple API" laufen.
In Zeile 2 wird dann die Simple API vom IOBroker angesprochen.
Greets, Fun, Bernd :-)
-
@marc-berg said in Ist ein Win User gerade aktiv?:
@thirty8763
Vielleicht geht es auch so: Die Windows-Aufgabenplanung nutzen, als Trigger "bei Anmeldung" wählen und ein Powershell-Skript starten, welches einen Datenpunkt im iobroker setzt.Keine Ahnung, ob das so läuft, aber auf den ersten Blick sieht es wie die einfachere Lösung für mich aus.
Jup...hab das gerade mal getestet. Das geht. Voraussetzung: Das Powershelll Script muss laufen dürfen (bypass policy) und es ist z.B. der Simple API Adapter installiert. Dann kann man jeden Login (egal ob nach dem einschalten, Benutzer Wechsel oder wenn der Rechner aus dem Stromsparmodus kommt) registrieren und via script darauf reagieren.
Ich hab dazu unter c:\temp eine loginscript.ps1 Datei angelegt. In dieser Datei steht:
$msg = $env:UserName Invoke-WebRequest -Uri "http://192.168.0.177:8087/set/0_userdata.0.1_Test.Username?value=$msg"Zeile1: Hol den Username aus den Umgebungsvariablen
Zeile2: Frage aus Powershelll herraus die URL "http://192......." ab.In Zeile 2 bitte nicht vergessen die IP (192.168.0.177) gegen die korrekte zu tauschen.
Dann in der Aufgabenplanung (Win-Taste drücken und einfach "Aufgabenplanung" tippen) starten und links auf "Aufgabenplanungsbibliothek" klicken. Dann rechts auf "Einfache Aufgabe erstellen" klicken. In der Aufgabe dann als Trigger wie Marc Berg schon sagte "Bei Anmeldung" auswählen und bei Aktionen "Programm starten" auswählen. Ich hab beim Programm das reinkopiert:
PowerShell.exe -ExecutionPolicy Bypass -File c:\temp\logonscript.ps1Weil dann die ExecutionPolicy nicht großartig verändert werden muss.
Nicht vergessen: Im IOBroker hab ich unter 0.Userdata.0.1_Test den Datenpunkt Username angelegt.
Dann ging es. Zum testen kann man in der POwershell ISE das obige Powershell manuell ausführen und schauen ob alles wie gewünscht läuft.
Im IOBroker muss der Adapter "simple API" laufen.
In Zeile 2 wird dann die Simple API vom IOBroker angesprochen.
Greets, Fun, Bernd :-)
-
@marc-berg said in Ist ein Win User gerade aktiv?:
@thirty8763
Vielleicht geht es auch so: Die Windows-Aufgabenplanung nutzen, als Trigger "bei Anmeldung" wählen und ein Powershell-Skript starten, welches einen Datenpunkt im iobroker setzt.Keine Ahnung, ob das so läuft, aber auf den ersten Blick sieht es wie die einfachere Lösung für mich aus.
Jup...hab das gerade mal getestet. Das geht. Voraussetzung: Das Powershelll Script muss laufen dürfen (bypass policy) und es ist z.B. der Simple API Adapter installiert. Dann kann man jeden Login (egal ob nach dem einschalten, Benutzer Wechsel oder wenn der Rechner aus dem Stromsparmodus kommt) registrieren und via script darauf reagieren.
Ich hab dazu unter c:\temp eine loginscript.ps1 Datei angelegt. In dieser Datei steht:
$msg = $env:UserName Invoke-WebRequest -Uri "http://192.168.0.177:8087/set/0_userdata.0.1_Test.Username?value=$msg"Zeile1: Hol den Username aus den Umgebungsvariablen
Zeile2: Frage aus Powershelll herraus die URL "http://192......." ab.In Zeile 2 bitte nicht vergessen die IP (192.168.0.177) gegen die korrekte zu tauschen.
Dann in der Aufgabenplanung (Win-Taste drücken und einfach "Aufgabenplanung" tippen) starten und links auf "Aufgabenplanungsbibliothek" klicken. Dann rechts auf "Einfache Aufgabe erstellen" klicken. In der Aufgabe dann als Trigger wie Marc Berg schon sagte "Bei Anmeldung" auswählen und bei Aktionen "Programm starten" auswählen. Ich hab beim Programm das reinkopiert:
PowerShell.exe -ExecutionPolicy Bypass -File c:\temp\logonscript.ps1Weil dann die ExecutionPolicy nicht großartig verändert werden muss.
Nicht vergessen: Im IOBroker hab ich unter 0.Userdata.0.1_Test den Datenpunkt Username angelegt.
Dann ging es. Zum testen kann man in der POwershell ISE das obige Powershell manuell ausführen und schauen ob alles wie gewünscht läuft.
Im IOBroker muss der Adapter "simple API" laufen.
In Zeile 2 wird dann die Simple API vom IOBroker angesprochen.
Greets, Fun, Bernd :-)
@bernd33-1
Super, das alles ist mir eine große Hilfe.
Dankeschön!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden