Med introduktionen av User Account Control (UAC) i Windows Vista öppnar du vanligtvis en upphöjd kommandotolken för att köra batchfiler och skript som behöver administrativa behörigheter. Program kan använda manifestfiler (med hjälp av flaggan RequireAdministrator ) för att automatiskt köra höjd.
För skript innehåller den här artikeln några snygga små trick som du automatiskt kan höja med ShellExecute-"runas" -parametern.
( Se även Hur man höjer en batchfil automatiskt för att köra den som administratör? För en annan automatisk höjningsmetod.)
Starta ett Vbscript upphöjd
Tack till Jim Barry för att ha tippat mig om det använda runas- argumentet i ShellExecute- metoden i Shell.Application-objektet. Med hjälp av Jims förslag kondenserades mitt originella manus till en hel del. Använd en av dessa metoder för att köra VBScripts förhöjda.
Metod 1
Här är ett exempelskript som startar om sig själv som administratör (upphöjd) med runas- parametern, om skriptet inte har kommandoradsargument överfört. När du startar skriptet igen som administratör, skicka helt enkelt ett felaktigt argument så att skriptet inte körs i en cyklisk slinga.
Om WScript.Arguments.length = 0 Ställ sedan in objShell = CreateObject ("Shell.Application") 'Skicka ett falskt argument, säg [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Annars 'Lägg till din kod här End If
Metod 2
Den här metoden använder ett startskript som kör det huvudsakliga VBScript som är upphöjd med runas verb.
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
Du kommer att se UAC-höjdialogen.
När användaren klickar på Fortsätt att godkänna, startas huvudskriptet som administratör.
RELATERADE: Hur höjer jag en batchfil automatiskt för att köra den som administratör?