Möchte man per PowerShell Verwaltungsaufgaben auf Remotehosts durchführen, bietet die WinRM Schnittstelle interessante Möglichkeiten. Z.B. kann man über das CMDLET New-PSSession
eine Powershell Sitzung auf dem Remotecomputer starten. In meiner Arbeitsumgebung ist auf allen PC’s die Benutzerkontensteuerung (UAC) aktiviert. Leider steht UAC der Remote-Verwaltung mit Powershell im Weg. Ist auf dem Host, auf dem das Script ausgeführt wird, UAC aktiv und auch auf den Hosts, mit denen sich das Script verbindet, dann sind Operationen mit erweiterten Berechtigungen nicht möglich. Das Script meldet einen Fehler. Es gibt aber Möglichkeiten dieses Problem zu umgehen. Ich möchte in diesem Artikel die verschiedenen Möglichkeiten auflisten.
Möglichkeiten UAC zu umgehen
- UAC auf den Servern deaktivieren
- Kann man eigentlich nur von abraten.
- Eine CMD mit erweiterten Privilegien starten
- Funktioniert nur, wenn das Script während der Arbeitszeit auf dem selben Host ausgeführt werden soll und kein PS Remoting erfolgt.
- Über einen Client verbinden, bei dem UAC deaktiviert ist
- Scheint keine schlechte Option. Man benötigt nur einen Client ohne UAC und kann über diesen die Scripte laufen lassen. Ich habe diese Methode noch nicht getestet, da bei uns alle Computer mit aktiviertem UAC laufen.
- Eine nicht-administrative Gruppe erstellen, dieser Gruppe die die erforderlichen Erlaubnisse erteilen und die Admins dieser Gruppe hinzufügen.
- Auch keine schlechte Möglichkeit. Man muss nur sicherstellen, dass das Script auch im Benutzerkontext einer der in der Gruppe definierten Konten ausgeführt wird.
- Über den Task Planer
- Über den Taskplaner kann man ein Script mit administrativen Privilegien auf einem einzelnen Host starten (kein PS Remoting). Hierüber ist es möglich für einen normalen Benutzer, z.B. bei Anmeldung, einen Task mit erweiterten administrativen Privilegien zu starten.