pixel0815
Goto Top

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

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

129813
129813 12.07.2016 um 08:44:51 Uhr
Goto Top
Hi.
Simply create a scheduled task trigger "on workstation lock" with your script, that's it.

Regards
colinardo
Lösung colinardo 12.07.2016 aktualisiert um 10:05:52 Uhr
Goto Top
Hallo Pixel,
so wie @129813 es schon sagt ... ist eigentlich keine große Sache:

Taskplaner Einstellungen

screenshot

screenshot

screenshot

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