xsudo für Windows

Einfaches Arbeiten mit erweiterten Rechten im richtigen Benutzerkontext

Index

Über xsudo
Hintergrund
Usage
Nützliche Systemordner im Zusammenspiel mit xsudo
Quickstart
Setup per xsudo
Eingabeaufforderung per xsudo
Explorer per xsudo
Xsudo selbst kompilieren
Changelog
Download
Forum (momentan offline)
FAQ

>> Latest version: xsudo v1.2de <<

 

Als Autor übernehme ich keinerlei Haftung für eine falsche Benutzung des Programmes.

Über xsudo

Als erstes: xsudo ist Freeware, ganz nach der OpenSource Philosophie.
xsudo wurde mit AutoIt 3 geschrieben. Die Syntax ist sehr ähnlich der von VB Basic und kann sehr leicht mit dem beigelegten Compiler auch ohne großes Know-How von jedem übersetzt werden.

xsudo startet Prozesse standartmäßig im aktuellen Benutzerkontext, aber zusätzlich mit Administratorrechten.

xsudo ermöglicht so jedem Windows Benutzer (WinNT, Win2000, WinXP Pro / Home) die kompfortable Arbeit ohne Rechte.

Fragen, Anmerkungen, Ideen oder Kritik ist ausdrücklich erwünscht!

Kontakt / eMail:

 

Hintergrund

Jeder der angefangen hat mit Windows ohne Adminrechte zu arbeiten kennt das. Manche Sachen werden extrem erschwert. zB eine einfache Dateifreigabe einzurichten oder das Energieschema zu verändern. Auch wenn man gezielt ein Programm installieren möchte ist es nicht unbedingt bequem, sich dafür extra umzumelden (vor allen dingen ist das nicht der Sinn der Sache).

Aus diesem Grund und da ich gern unter Debian mit xsudo arbeite, hab ich ein Windows Pendant geschrieben.

 

Usage

xsudo -c | -h |
	[ -nx ] [ -ne ] [ -g <groupname> ] [[ -u <username> ] -p <password> ] [[ -au <username> ] -ap <password> ] [ <cmdline> ]

 

Quickstart

Das xsudo-Binary (xsudo.exe) dass man unten Herunterladen kann, enthält keine einkompilierten Benutzerinformationen. Deswegen muss beim start ein gültiges Adminkonto angegeben werden.

Das funktioniert zB. wie folgt:

xsudo -au Administrator [ <cmdline> ]
xsudo wird nun nach dem Benutzerkennwort des aktuell angemeldeten Benutzers und danach nach dem Administratorkennwort fragen. Ein kleines Beispiel:

Sie sind als der Benutzer "John" mit eingeschränkten Rechten auf ihrem Desktop angemeldet. Es gibt ein Administrator Konto namens "Admin" für welchen Sie das Kennwort auch kennen. Dann können Sie mit der folgenden Anweisung eine Eingabeaufforderung öffnen die als Benutzer "John" läuft, aber über Administratorrechte verfügt.

xsudo -au Admin
Oder optional (dann wird man nicht nach den Kennwortern gefragt, nützlich für Batchprozesse):
xsudo -au Admin -ap <adminpw> -u John -p <john's pw>

So kann man Beispielsweise ein Programm für "John" installieren, ohne sich ummelden zu müssen oder erst anders John die Rechte zuzuweisen.

xsudo -au Admin "E:\setup 2.0.exe"

Hat man sich entschlossen die Informationen über ein Administrator Konto ins Binary zu kompilieren, sind Aufrufe wie folgt möglich:

xsudo "E:\setup 2.0.exe"

 

sudo kann aber auch als Ersatz für das Windows Tool "runas" benutzt werden, in dem der Schalter "-nx" benutzt wird.
xsudo -nx -u John "E:\setup 2.0.exe"

tut das gleiche wie:

runas /u:John "E:\setup 2.0.exe"

 

Nützliche Systemordner im Zusammenspiel mit xsudo

xsudo "explorer /root,::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"			; Netzwerkverbindungen
xsudo "explorer /root,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"			; Explorer
xsudo "rundll32.exe shell32.dll,Control_RunDLL ups.cpl"				; Eigenschaften von Energieoptionen
xsudo "rundll32.exe NTLANUI.DLL,ShareManage"					; Freigaben Manager
xsudo "rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0"			; Systemsteuerung - Software
xsudo "rundll32 devmgr.dll DeviceManager_Execute"				; Gerätemanager
xsudo "regedit.exe"								; Regedit

; Systemsteuerung
xsudo "explorer /root,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}"

; Drucker und Faxgeräte
xsudo "explorer /root,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\::{2227A280-3AEA-1069-A2DE-08002B30309D}"
				

 

Setup per xsudo

Es ist jetzt möglich Programme (zB. setup.exe) mit xsudo zu starten um diese zu installieren. Dabei muss man sich nicht ummelden, man kann ganz normal weiter mit eingeschränkten Rechten arbeiten. Das Programm wird dabei natürlich auch im Benutzerkontext des angemeldeten Benutzers installiert. So ist sichergestellt das die NTFS Ordnerrechte vom Setup richtig erstellt werden und auch jeder Regestry-Eintrag dort hin kommmt, wo er hin soll.

Start -> Ausführen:

xsudo "E:\setup.exe"

 

Eingabeaufforderung per xsudo

Startet man nur xsudo, öffnet sich eine Eingabeaufforderung im aktuellen Benutzerkontext aber mit Adminrechten. Von dieser kann man natürlich wieder Programme öffnen die im gleichen Kontext gestartet werden wie die Eingabeaufforderung.

Start -> Ausführen:

xsudo
Eine xsudo-Eingabeaufforderung:

 

Explorer per xsudo

Startet man xsudo mit einer CLSID, öffnet sich eine Explorerfenster im aktuellen Benutzerkontext aber mit Adminrechten.

Start -> Ausführen:

xsudo "explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Ein xsudo-Explorerfenster:

 

Xsudo selbst kompilieren

Als erstes nehmen wir uns die "auth.au3" und öffnen diese mit einem beliebigen Editor (zB. Windows-Notepad).

Dann suchen wir den folgenden Abschnitt: (sollte man sofort sehen)

; ##############################################################################################################################
; Account Information (may be modified)
; ##############################################################################################################################

Als zweiten Schritt sollte man sich entscheiden ob man die Kennwörter für die Accounts mit einkompilieren möchte. Das ist weniger Sicher aber sehr komfortabel. Das würde zB. so aussehen.

; ##############################################################################################################################
; Account Information (may be modified)
; ##############################################################################################################################

ReDim $Account[2][2]		; <- first is the amount of users, second is always 2!

	$Account[0][0] 	= "Administrator"		; Username
	$Account[0][1] 	= "testpassword"		; Password
	
	$Account[1][0] 	= "John"			; Username
	$Account[1][1] 	= "tx"				; Password
	

Wichtig ist, dass man so wie oben gezeigt die ";" vor den Zeilen entfernt um diese so für den Kompiler zu aktivieren. Zeilen denen ein ";" voransteht, werden vom Kompiler ignoriert und sind damit quasi nicht existent. Falls man sich nicht dafür entscheidet, sollte man aber wenigstens ein Administrator-Konto (ohne das Passwort) angeben. Das würde dann so aussehen:

; ##############################################################################################################################
; Account Information (may be modified)
; ##############################################################################################################################

ReDim $Account[1][2]		; <- first is the amount of users, second is always 2!

	$Account[0][0] 		= "Administrator"		; Username
	;$Account[0][1] 	= ""				; Password
	
	;$Account[1][0] 	= ""				; Username
	;$Account[1][1] 	= ""				; Password
	

Diese Methode ist weniger kompfortabel (weil man immer nach den Kennwörtern gefragt wird) bietet aber auch die größte Sicherheit, da die Passwörter nicht auf der Festplatte gespeichert sind.

Datei Speichern nicht vergessen. Jetzt braucht man nur noch den AutoIt3 Kompiler. Der Kompiler übrigens ist kein komplizierter C++ Kompiler, sondern besteht aus nur einem Fenster und 5 Knöpfen. Ich habe den hier genommen.

Einfach entpacken und ins Verzeichniss "/Aut2Exe" wechseln. Falls dort keine "upx.exe" ist, kann man diese in dieser Zip-Datei finden, und dort hin kopieren.

Jetzt startet man "Aut2Exe.exe".

Source ist die "xsudo.au3"
Destination ist der Ort wo die neue "xsudo.exe" erstellt werden soll. Ist also beliebig zu wählen.
Als Custom Icon kann man das "redhatlinux.ico" verwenden.
Allow decompilation, sollte aus Sicherheitsgründen abgeschaltet werden.

Jetzt nur noch Convert drücken und fertig ist die neue "xsudo.exe".

 

Changelog

Aktuelles Changelog v1.2

 

Download

xsudo (v 1.2de) .Zip / Win Binary
xsudo (v 1.2de) .Zip / Source Code

 

FAQ

F: Ich starte xsudo explorer.exe oder xsudo "explorer /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}" aber das neue Fenster hat keine erweiterten Rechte! Wie kommt das?

A: Sind vielleicht noch andere Ordner-Fenster dabei auf? Das Problem tauchte bisher nur bei diesen beiden Prozessen auf. Man sollte es aber eigentlich leicht verhindern können, indem man darauf achtet dass keine anderen Windows-Ordner-Fenster beim starten geöffnet sind. Um gehen kann man es wenn das Parameter "/e" durch "/root" ersetzt. Also:

xsudo "explorer /root,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"

 

F: Ich starte ein Setup (InstallShield) über xsudo, bekomme aber trotzdem den Fehler das ich dieses doch bitte mit Administrator Rechten aussführen sollte.

A: Das Setup überprüft (vermutlich) nicht ob der Prozesskontext über Administratorrechte verfügt, sondern ob der angemeldete Benutzer über Administratorrechte verfügt. xsudo kann da leider nicht viel machen, da es ein Problem der Installationsroutine ist. Um das Problem zu lösen bleibt einem daher im moment nichts anders übrig als doch seinen Benutzeraccount zur Administratorgruppe hinzuzufügen und sich einmal ab und wieder anzumelden. Dann sollte es gehen. Ein Programm das das kompfortabel erledigt findet man bald hier.