Benutzer mit den meisten Antworten
Powershell Script schützen beim Logoff

Frage
-
Hallo Powersheller!
Ich habe ein Script, dass solange der User angemeldet ist läuft und beendet wird sobald der User sich abmeldet. Leider wird das Script dann nicht sauber beendet, weil der Logoff vorgang dazwischen kommt.
Gibt es die Möglichkeit entweder:
- einen Timeout in den logoff vorgang einzubauen, sodass das script noch die zeit hat sauber zu beenden oder
- das Script so zu schützen, dass der Logoff vorgang sich entsprechend verzögert?
Das Script läuft auf einem Windows Server 2012R2
Vielen Dank vorab!
Antworten
-
Also, im Gegensatz zu Raimund kann ich mir durchaus etliche Szenarien vorstellen, in denen Scripte permanent im Hintergrund laufen. :)
Ohne das Script zu sehen, ist die Frage aber nur allgemein zu beantworten.
Generell kannst du es mit den Systemevents versuchen:
Hat dein Script aber eine GUI (Winforms oder WPF) gibt es u.U. eine bessere Methode.Function FnCleanUp {
# Befehle z. ordentlichen Beenden des Scripts
}
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnding" -Action { FnCleanUp }
Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnded" -Action { FnCleanUp }
In jedem Fall, sieh zu, das du innerhalb von FnCleanUp dann gut aufräumst, d.h. alle Jobs, Eventsubscriptions, Timer etc. korrekt beendest, sonst wirds nicht gehen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
(Schneller, besser + komfortabler scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 12. Februar 2016 12:43
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Dienstag, 16. Februar 2016 13:13
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 17. Februar 2016 15:16
Alle Antworten
-
Also, im Gegensatz zu Raimund kann ich mir durchaus etliche Szenarien vorstellen, in denen Scripte permanent im Hintergrund laufen. :)
Ohne das Script zu sehen, ist die Frage aber nur allgemein zu beantworten.
Generell kannst du es mit den Systemevents versuchen:
Hat dein Script aber eine GUI (Winforms oder WPF) gibt es u.U. eine bessere Methode.Function FnCleanUp {
# Befehle z. ordentlichen Beenden des Scripts
}
$sysevent = [microsoft.win32.systemevents]
Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnding" -Action { FnCleanUp }
Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnded" -Action { FnCleanUp }
In jedem Fall, sieh zu, das du innerhalb von FnCleanUp dann gut aufräumst, d.h. alle Jobs, Eventsubscriptions, Timer etc. korrekt beendest, sonst wirds nicht gehen.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
(Schneller, besser + komfortabler scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Bearbeitet Denniver ReiningMVP, Moderator Freitag, 12. Februar 2016 12:43
- Als Antwort vorgeschlagen Denniver ReiningMVP, Moderator Dienstag, 16. Februar 2016 13:13
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 17. Februar 2016 15:16