Man muss sich nur zu helfen wissen…

… so heißt es. Die Windows UAC hat mich heute geärgert. Kann mal vorkommen bei älterer Software die dem Betriebssystem nicht mitteilt dass sie Admin Rechte braucht. Fazit: Die Installation schlägt fehl.

Häufig reicht es dann eine Befehlszeile (cmd) als Admin zu öffnen und die Anwendung oder Befehle darin zu starten. Aber das ist mit Tipperei verbunden und für manche Leute unzumutbar. In meinem Fall hat mich das Microsoft SQL Server 2005 Management Studio geärgert.

Man könnte jetzt sagen, ja, Rechtsklick und „als Administrator starten“. Klar. Geht bei .msi Dateien aber nicht ;)

Da ich primär nach universell nutzbaren Lösungen suche die auch Nutzerfreundlich sind habe ich mal ein kleines Programm geschrieben was im Endeffekt nichts Anderes macht als zu verlangen dass es als Admin gestartet wird und dann die Datei startet die im Dateinamen steht.

Beispiel und Verwendung:

Wenn die Datei „RunAsAdmin_test.exe.exe“ heißt würde sie die Datei „test.exe“ ausführen. Ein einfaches Umbenennen reicht also. Alle Parameter und Rückgabewert wird weiter geleitet. Das ganze funktioniert mit allen startbaren Dateien, wie .exe, .bat, .msi, …

Quelltext und Download:

Quelltext:

Der Quelltext ist so klein, da lohnt sich NoPaste nicht:

Friend Module App

	Friend Function Main(ByVal Args As String()) As Integer

		Using p As New Diagnostics.Process
			p.StartInfo.Arguments = String.Join(" ", Args)
			p.StartInfo.FileName = IO.Path.GetFileNameWithoutExtension(Environment.CommandLine.Trim.Trim(""""c)).Substring(11)
			p.Start()
			p.WaitForExit()
			Main = p.ExitCode
		End Using

	End Function

End Module

Das wars schon. … Naja, fast. In den Projekteigenschaften muss noch festgelegt werden dass die Anwendung Admin Rechte benötigt. VB.Net, Framework 2.0, Starttyp Sub Main, Konsolenanwendung.

Alternativ hier der Download:

RunAsAdmin_test.exe.exe (7,50 kb)

Es sind manchmal eben auch die kleinen Dinge die die Welt begeistern ;)


Kommentar schreiben