Neben dem Herunterfahren, Neustarten und Abmelden des Computers kann man mit PowerShell auch den Computer sperren. Normalerweise kann man mit der Tastenkombination [WIN] + [L] den Bildschirm sperren.
Mir fällt zwar auf Anhieb kein Anwendungsfall ein, aber es gibt bestimmt die ein oder andere Situation im PowerShell Code, bei dem man den Computer sperren lassen sollte. Beispielsweise nach dem erfolgreichen Konfigurieren des Benutzerprofils.
Computer sperren mit PowerShell
Das Herunterfahren, neu starten oder Abmelden des Benutzers ist ein Kinderspiel. Doch das Sperren des Arbeitsplatzes ist mit PowerShell etwas komplexer. Derzeit gibt es kein PowerShell Cmdlet, welches den Computer sperren lässt.
Somit lässt man in PowerShell einen C# Code ausführen, denn damit ist es relativ einfach die Workstation zu sperren.
Function Lock-WorkStation { $signature = '[DllImport("user32.dll",SetLastError=true)] public static extern bool LockWorkStation();' $t = Add-Type -memberDefinition $signature -name api -namespace stuff -passthru $null = $t::LockWorkStation() }
Die Funktion kann man nennen wie man möchte. In unserem Beispiel haben wir sie Lock-Workstation genannt. Für diese Funktion werden keine Parameter benötigt und lässt sich somit problemlos starten. Nach dem Ausführen ist der Bildschirm gesperrt. 🙂
Gibt es auch die möglichkeit das nach 3 Minuten inaktivität das Script ausgeführt wird?
Klar, das ist möglich. Hierzu muss man die Idle-Time auslesen. Ist diese größer als 3 Minuten, dann das Script ausführen.
https://stackoverflow.com/questions/15845508/get-idle-time-of-machine
Thank you. Im using it to lock out while a softwareinstallation is running. At the end of the script the Computer should restart. But due to the lock – it doesnt. Any ideas?
Wird die Softwareinstallation denn korrekt ausgeführt? Wenn ja, mit welchem Befehl lässt du den Reboot durchführen?
Vielleicht kannst du das Script (oder Teile davon) hier posten?
Gruß Johannes
Sry ich hätte auch bei Deutsch bleiben können 😀