Med introduksjonen av brukerkontokontroll (UAC) i Windows Vista åpner du vanligvis en forhøyet ledetekst for å kjøre batchfiler og skript som trenger administrative rettigheter. Programmer kan benytte seg av manifestfiler (ved å bruke RequireAdministrator- flagget) for automatisk å kjøre forhøyet.
For skript gir denne artikkelen noen fine, små triks som du automatisk kan løfte ved å bruke ShellExecute “runas” -parameteren.
( Se også Hvordan løfte en batch-fil automatisk for å kjøre den som administrator? For en annen automatisk hevingsmetode.)
Start et Vbscript forhøyet
Takk til Jim Barry for å ha tipset meg om bruk av runas- argumentet i ShellExecute- metoden til Shell.Application-objektet. Ved å bruke Jims forslag ble det originale manuset mitt kondensert til en god del. Bruk en av disse metodene for å kjøre VBScripts forhøyet.
Metode 1
Her er et eksempelskript som starter opp seg selv som administrator (forhøyet) ved å bruke runas- parameteren, hvis skriptet ikke har gitt kommandolinjeargumenter. Når du starter lanseringen av skriptet som administrator, bare pass på et falskt argument slik at skriptet ikke kjøres i en syklisk sløyfe.
Hvis WScript.Arguments.length = 0 Still deretter objShell = CreateObject ("Shell.Application") 'Gi et falskt argument, si [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Ellers 'Legg til koden din her End If
Metode 2
Denne metoden bruker et launcher script som kjører hoved VBScript forhøyet ved hjelp av runas verbet.
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 vil se UAC elevasjonsdialogen.
Når brukeren klikker Fortsett for å godkjenne, blir hovedskriptet lansert som administrator.
RELATERT: Hvordan løfte en batch-fil automatisk for å kjøre den som administrator?