KB Knowledge Base

       Die WANSYS-Wissensdatenbank


Anwendung mit anderen Benutzerrechten ausführen

Um unter Windows eine Anwendung mit anderen Benutzerrechten auszuführen gibt es einige Möglichkeiten.
In diesem Artikel werden sowohl die Windows eigenen Bordmittel als auch weitere Möglichkeiten von Dritten vorgestellt.

Windows Bordmittel
Unter Windows kann über einen rechten Mausklick auf das Symbol der Anwendung der Befehl "Ausführen als" gestartet werden.

1

Daraufhin erscheint ein Anmeldedialog in dem man den entsprechenden Benutzernamen und das Kenntwort eingeben kann.

2

Nach erfolgter Eingabe der Benutzerdaten und der erfolgreichen Anmeldung wird die Anwendung mit den entsprechenden Benutzerrechten ausgeführt.
Im Taskmanager auf der Registerkarte "Prozesse" kann man erkennen mit welchem Benutzer die Anwendung gestartet wurde.

3

Mit dem Befehl "runas" der Eingabeaufforderung steht ein weiteres Windows eigenes Bordmittel zur Verfügung.
Hier stehen dann auch weitere Optionen als zur grafischen Oberfläche zur Verfügung.
Um wie im obigen Beispiel den Editor mit anderen Benutzerrechten auszuführen sieht die Syntax des Befehls wie folgt aus:

runas /user:DOMÄNE ODER COMPUTERNAME\administrator notepad

Daraufhin wird das Kennwort abgefragt.
Nach erfolgter Eingabe wird die Anwendung dann entsprechend ausgeführt.

Nachteilig bei den Windows Bordmitteln ist das Handling und das man die Benutzerdaten nicht abspeichern kann.
Dieses ist gerade bei häufigem verwenden von Anwendungen die mit anderen Benutzerrechten ausgeführt werden müssen (das bekannte Problem das diverse Anwendungen nur mit Administrator-Rechten funktionieren) durchaus unangenehm.
Hier hat man zusätzlich das Problem das ein Fenster der Eingabeaufforderung angezeigt wird, solange die Anwendung ausgeführt wird.

Lsrunas und Lsrunase
"Lsrunas" bietet wie der Befehl "runas" die Möglichkeit in der Eingabeaufforderung eine Anwendung mit anderen Benutzerrechten auszuführen.
Die Syntax ist wie folgt:

lsrunas /user:administrator /password:KENNWORT /domain:DOMÄNE ODER COMPUTERNAME /command:notepad.exe /runpath:c:\

Ein Vorteil dieses Tools ist, das man das Kennwort direkt übergeben bzw. auch in einem Batch-Skript speichern kann.
Allerdings ist das Kennwort im Klartext vorhanden und damit leicht auslesbar !
Hier schafft das Tool "Lsrunase" Abhilfe, da bei diesem Tool das Kennwort verschlüsselt übergeben wird.

Die Syntax ist identisch zu "Lsrunas", allerdings wird das Kennwort zuvor mit dem Tool "LSencrypt.exe" verschlüsselt und
anstatt des Kennworts im Klartext bei der Option "/password:" angegeben.

4

Auch hier hat man das Problem das ein Fenster der Eingabeaufforderung angezeigt wird, solange die Anwendung ausgeführt wird.

AutoIt
Eine weitere Möglichkeit besteht darin ein Skript mit AutoIt zu erstellen, in dem der entsprechende Benutzer angemeldet wird,
die Anwendung ausgeführt wird und der ganze Vorgang transparent abläuft, d.h. ohne ein zusätzliches, sichtbares Fenster, Tray Icon oder ähnliches.
Das Einzige was, allerdings nur z.B. im Taskmanager oder ähnlichen Tools, zu sehen ist, ist ein weiterer Prozess.

Beispiel für ein solches Skript:

; Das AutoIt Tray-Icon ausblenden
#NoTrayIcon
; Mit diesen Benutzerdaten ausführen
RunAsSet("Administrator", "DOMÄNE ODER COMPUTERNAME", "KENNWORT")
; Die Anwendung ausführen
RunWait("notepad.exe")
; Die Benutzerdaten zurücksetzen
RunAsSet()

Wenn man dieses Skript mit "Aut2Exe.exe" von AutoIt als eigenständige Exe-Datei kompiliert, sind die Benutzerdaten nicht mehr ohne weiteres zu erkennen und
man kann ein eigenes Icon, z.B. das der zu startenden Anwendung, definieren.

Links

SO WIRD'S GEMACHT: Aktivieren und Verwenden des Befehls "Ausführen als" beim Ausführen von Programmen in Windows
Sekundäre Anmeldung (Ausführen als): Starten von Programmen und Tools im lokalen Administratorkontext
Lsrunas : free runas utility
Lsrunase : free runas utility which accepts encrypted passwords
AutoIt