Powershell Programm in Benutzersitzung beenden wenn Desktop gesperrt
Moin zusammen,
ist es möglich an einem Win 7 PC per Powershell Skript (Geplanter Task) ein bestimmtes Programm nach einer definierten Leerlaufzeit abzuschießen wenn der Benutzer z.b. seinen Desktop gesperrt hat?
Ich habe da leider nicht viel gefunden bisher.
Gruß
Pixel
ist es möglich an einem Win 7 PC per Powershell Skript (Geplanter Task) ein bestimmtes Programm nach einer definierten Leerlaufzeit abzuschießen wenn der Benutzer z.b. seinen Desktop gesperrt hat?
Ich habe da leider nicht viel gefunden bisher.
Gruß
Pixel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 309572
Url: https://administrator.de/forum/powershell-programm-in-benutzersitzung-beenden-wenn-desktop-gesperrt-309572.html
Ausgedruckt am: 22.12.2024 um 12:12 Uhr
2 Kommentare
Neuester Kommentar
Hi.
Simply create a scheduled task trigger "on workstation lock" with your script, that's it.
Regards
Simply create a scheduled task trigger "on workstation lock" with your script, that's it.
Regards
Hallo Pixel,
so wie @129813 es schon sagt ... ist eigentlich keine große Sache:
Taskplaner Einstellungen
Dann im Script folgendes schreiben:
(Timeout und Pfad zum Prozess anpassen)
Alternativ kannst du oben im Task die Verzögerungseinstellung (Vergzögern für:) für den Timeout nutzen, dann brauchst du im Script die While Schleife nicht mehr und prüfst stattdessen nur ob der LoginUI.exe Prozess existiert oder nicht.
Funktioniert hier beides testweise in einer Windows 7 VM einwandfrei.
Grüße Uwe
so wie @129813 es schon sagt ... ist eigentlich keine große Sache:
Taskplaner Einstellungen
Dann im Script folgendes schreiben:
(Timeout und Pfad zum Prozess anpassen)
#---------------------
# Timeout in Sekunden bei dem nach dem Lockvorgang die Anwendung beendet wird
# Entsperrt der User vor dem Timeout die Arbeitsstation bleibt die Anwendung offen.
$wait = 120
# Pfad zum Prozess
$processpath = 'C:\Windows\System32\calc.exe'
# --------------------
$timeout = (get-date).AddSeconds($wait)
while((get-process LogonUI)){
if((get-date) -ge $timeout){
Get-Process | ?{$_.Path -eq $processpath}| Stop-Process -Force
break
}
sleep 1
}
Alternativ kannst du oben im Task die Verzögerungseinstellung (Vergzögern für:) für den Timeout nutzen, dann brauchst du im Script die While Schleife nicht mehr und prüfst stattdessen nur ob der LoginUI.exe Prozess existiert oder nicht.
Funktioniert hier beides testweise in einer Windows 7 VM einwandfrei.
Grüße Uwe