„Windows Vista“ įdiegę vartotojo abonemento valdymą (UAC), paprastai atidarote padidintą komandų eilutę, kad paleistumėte paketinius failus ir scenarijus, kuriems reikia administracinių teisių. Programos gali naudoti manifestų failus (naudodamos vėliavą „ RequireAdministrator“ ), kad automatiškai paleistų padidintą.
Scenarijuose šis straipsnis pateikia keletą tvarkingų triukų, kuriuos naudodamiesi „ShellExecute“ runos “parametru galite automatiškai pakelti.
( Taip pat žr. „ Kaip automatiškai pakelti paketinį failą, kad jis būtų paleistas kaip administratorius?“, Skirtą kitam automatinio pakėlimo metodui.)
Paleiskite padidintą Vbscript
Ačiū Jimui Barry, kad jis mane išvadino apie runų argumento naudojimą objekto „Shell.Application“ metodu „ShellExecute“. Remiantis Jimo pasiūlymais, mano originalus scenarijus buvo sutrumpintas. Naudokite vieną iš šių metodų, kad paleistumėte padidintus VBS scenarijus.
1 metodas
Čia pateiktas scenarijaus pavyzdys, kuris vėl paleidžiamas kaip administratorius (padidintas), naudodamas „ runas“ parametrą, jei scenarijus neturi perduotos komandinės eilutės argumentų. Iš naujo paleisdami scenarijų kaip administratorių, paprasčiausiai pateikite klaidingą argumentą, kad scenarijus nebūtų paleistas cikliškai.
Jei „WScript.Arguments.length = 0“, tada nustatykite „objShell = CreateObject“ („Shell.Application“) „Pateikite klaidingą argumentą, tarkime, „ [uac] objShell.ShellExecute “„ wscript.exe “, Chr (34) ir„ WScript.ScriptFullName & Chr “. (34) & „uac“, „“, „runas“, 1 kita „Pridėkite savo kodą čia„ End If “
2 metodas
Šis metodas naudoja paleidimo scenarijų, kuris paleidžia pagrindinį VBScript padidintą, naudodamas runos veiksmažodį.
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
Pamatysite UAC pakėlimo dialogą.
Kai vartotojas spustelėja Tęsti patvirtinimą, pagrindinis scenarijus paleidžiamas kaip administratorius.
SUSIJEDS: Kaip automatiškai pakelti paketinį failą, kad jis būtų paleistas kaip administratorius?