UacConsole
Führt einzelne Befehle in der Windows-Eingabeaufforderung nach einer UAC-Bestätigung mit erhöhten Berechtigungen aus, ohne dass die ganze Eingabeaufforderung vorab als Administrator gestartet werden muss.
Das Problem
Mit Windows Vista hat Microsoft das Sicherheitskonzept in Windows dahingehend geändert, dass auch lokale Administratoren auf einem Rechner nicht mehr ständig alle Berechtigungen haben. Sollen administrative Tätigkeiten durchgeführt werden, müssen zuerst die Berechtigungen für den entsprechenden Prozess angehoben werden, was mit dem bekannten Dialog der Benutzerkontensteuerung (engl. User Account Control, UAC) bestätigt wird. Benutzer, die kein Administrator sind, müssen an dieser Stelle einen entsprechenden Benutzernamen mit Kennwort angeben.
Während diese Abfrage beim Starten von grafischen Anwendungen nicht weiter stört, ist der Aufruf von Konsolenprogrammen oder anderen Befehlen in der Eingabeaufforderung sehr umständlich. Die UAC-Abfrage steht innerhalb der Eingabeaufforderung nicht zur Verfügung. Stattdessen muss zuerst eine neue Eingabeaufforderung „Als Administrator“ gestartet werden, dann muss ggf. noch das Verzeichnis gewechselt werden und erst dann stehen die höheren Berechtigungen für den gewünschten Befehl zur Verfügung. Das stellt bei häufiger Nutzung eine echte Einschränkung dar und führt bei manchen Benutzern immer wieder zu neuer Frustration über Windows an sich.
Die Lösung
Hier kann man aber sehr gut von Unix/Linux lernen: Dort wird das Konzept der Trennung zwischen Benutzer und Administrator bereits sehr lange angewendet und die Werkzeuge sind entsprechend ausgereift. Dafür steht der sudo
-Befehl zur Verfügung, mit dem sich in einem Terminal einzelne Befehle im normalen Arbeitsfluss als Administrator (root) oder unter einem anderen Benutzer ausführen lassen. Ohne ein neues Fenster zu öffnen und ohne das aktuelle Arbeitsverzeichnis zu verlassen.
UacConsole setzt dieses Prinzip auch für Windows um. Statt einer Kennwortabfrage wird die Windows-Benutzerkontensteuerung verwendet, die den entsprechenden Dialog anzeigt. Nach der Bestätigung wird der angegebene Befehl im aktuellen Verzeichnis und im selben Konsolenfenster mit erhöhten Berechtigungen gestartet. Alle Ein- und Ausgaben erfolgen normal im aktiven Fenster. So lässt sich z. B. auch eine neue Eingabeaufforderung starten, in der dann permanent höhere Rechte zur Verfügung stehen.
Ähnlich wie bei sudo kann die UAC-Bestätigung für einige Zeit zwischengespeichert werden, um den UAC-Dialog nicht für jeden einzelnen Befehl erneut bestätigen zu müssen. Dafür wird ein Serverprozess gestartet, der dann weitere Befehle annimmt und ausführt, und sich nach einer Weile Nichtbenutzung selbstständig wieder beendet.
Kompatibilität:
Beispiel
Um einen Befehl mit erhöhten Berechtigungen auszuführen, muss ihm nur der Befehl uac
vorangestellt werden. Dadurch wird UacConsole gestartet, das dann die notwendigen Schritte durchführt. Mit dem folgenden Aufruf wird das Verzeichnis AppDir im aktuellen Arbeitsverzeichnis erstellt:
uac md AppDir
Es können auch grafische Anwendungen auf diese Weise gestartet werden, wie etwa ein Texteditor, um eine geschützte Datei zu bearbeiten:
uac notepad File.txt
Um die Zwischenspeicherung der Berechtigung für einen Aufruf zu deaktivieren, muss die Option /single
oder abgekürzt /s
vorangestellt werden:
uac /s dir
Der Zeitraum der Zwischenspeicherung kann ebenfalls konfiguriert werden. Dafür wird die Option /idletimeout
oder /it
verwendet. Ohne weiteren Parameter wird die aktuelle Dauer angezeigt, die mit Angabe einer Zahl in Sekunden geändert werden kann. Vorgabe ist eine Dauer von 30 Sekunden. Diese Einstellung wird in der Registry unter HKLM\Software\Unclassified\UacConsole gespeichert.
uac /it
uac /it 300
Die vollständige Aufrufbeschreibung wird beim Start ohne Parameter oder mit /?
oder /h
angezeigt.
Download
Hinweis: Veröffentlichungen nach dem 9.1.2016 sind nicht mehr digital signiert, da keine kostenlosen Code-Signing-Zertifikate für Open-Source-Entwickler mehr angeboten werden. Ein kommerzielles Zertifikat ab 200 € pro Jahr lohnt sich hier nicht. Entschuldigung für die Verunsicherung beim nächsten Download.
UacConsole-Setup-1.0.exe557 KiBInstallationsprogramm
UacConsole-1.0.7z12,4 KiBProgrammdateien
Hinweise zur Verwendung
Wenn UacConsole nicht mit dem Installationsprogramm installiert wurde, müssen die beiden Programmdateien in ein Verzeichnis im Suchpfad kopiert werden, oder das Verzeichnis in den Suchpfad (%PATH%) aufgenommen werden, um einen unkomplizierten Aufruf zu ermöglichen. Beide Programmdateien müssen sich im selben Verzeichnis befinden. Das Installationsprogramm kopiert die Dateien ins Windows-Systemverzeichnis.
Lizenz und Nutzungsbedingungen
Dieses Programm ist „Freeware“. Das bedeutet, dass es für private sowie kommerzielle Nutzung kostenlos ist. Die weitere Verbreitung ist nicht ohne meine Genehmigung gestattet. Der Quelltext ist nicht verfügbar. Ich gebe keine Garantie, auch nicht auf Lauffähigkeit oder Benutzbarkeit. Die Nutzung erfolgt auf eigene Gefahr, ich hafte nicht für Schäden, die durch sachgemäßen oder unsachgemäßen Gebrauch dieses Programms entstehen.
Statistische Daten
- Erstellt am 2013-04-07.
- Ca. 530 Codezeilen, geschätzte Entwicklungskosten: 530 - 2 100 €