So starten Sie ein Vbscript im erhöhten Modus (als Administrator ausführen)

Mit der Einführung der Benutzerkontensteuerung (User Account Control, UAC) in Windows Vista öffnen Sie normalerweise eine Eingabeaufforderung mit erhöhten Rechten, um Batchdateien und Skripts auszuführen, für die Administratorrechte erforderlich sind. Anwendungen können Manifestdateien (unter Verwendung des RequireAdministrator- Flags) verwenden, um automatisch mit erhöhten Rechten ausgeführt zu werden.

In diesem Artikel finden Sie einige nette kleine Tricks für Skripte, mit denen Sie mithilfe des ShellExecute-Parameters „runas“ automatisch eine Erhöhung vornehmen können.

( Weitere Informationen zum automatischen Erhöhen finden Sie unter So erhöhen Sie eine Stapeldatei automatisch, um sie als Administrator auszuführen.)

Starten Sie ein erhöhtes Vbscript

Vielen Dank an Jim Barry, der mich auf das Argument "using runas" in der ShellExecute- Methode des Shell.Application-Objekts hingewiesen hat. Mit Jims Vorschlägen wurde mein ursprüngliches Drehbuch auf einiges reduziert. Verwenden Sie eine dieser Methoden, um VBScripts mit erhöhten Rechten auszuführen.

Methode 1

Hier ist ein Beispielskript, das sich mit dem Parameter runas als Administrator (erhöht) neu startet, wenn dem Skript keine Befehlszeilenargumente übergeben wurden. Übergeben Sie beim Neustart des Skripts als Administrator einfach ein falsches Argument, damit das Skript nicht in einer zyklischen Schleife ausgeführt wird.

 Wenn WScript.Arguments.length = 0, dann setzen Sie objShell = CreateObject ("Shell.Application") 'Übergeben Sie ein falsches Argument, sagen Sie [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Sonst 'Fügen Sie hier Ihren Code hinzu. End If 

Methode 2

Diese Methode verwendet ein Launcher-Skript, das das Haupt-VBScript ausführt, das mit dem Runas- Verb erhöht wurde.

Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If 

Sie sehen das Dialogfeld "UAC-Höhe".

Sobald der Benutzer auf Weiter zum Genehmigen klickt, wird das Hauptskript als Administrator gestartet.

VERBINDUNG: Wie kann eine Batch-Datei automatisch angehoben werden, um sie als Administrator auszuführen?

Ähnlicher Artikel