Kasutajakonto juhtimise (UAC) juurutamisega Windows Vistasse avate tavaliselt administraatoriõigusi vajavate pakettfailide ja skriptide käitamiseks tavaliselt kõrgendatud käsuviibu. Rakendused saavad kõrgenduse automaatseks käitamiseks kasutada manifesti faile (kasutades lipu RequireAdministrator lippu).
Skriptide jaoks pakub see artikkel teile mõningaid toredaid nippe, mille abil saate ShellExecute “runas” parameetri abil automaatselt tõsta.
(Teise automaatse tõstemeetodi kohta vaadake ka jaotist Kuidas partii faili automaatselt tõsta, et käivitada see administraatorina?)
Käivitage kõrgendatud Vbscript
Tänu Jim Barryle, kes andis mulle lahti runasargumendi kasutamise kohta Shell.Application objekti ShellExecute meetodis. Jimi soovitusi kasutades lühendati minu algne skript suureks. Kasutage ühte neist meetoditest VBScriptide kõrgendatud käitamiseks.
1. meetod
Siin on näidiskript, mis taaskäivitab end administraatorina (kõrgendatud), kasutades parameetrit runas, kui skriptil pole käsuridade argumente üle antud. Skripti administraatorina taaskäivitamisel andke lihtsalt võlts argument, nii et skript ei töötaks tsüklilises ahelas.
Kui WScript.Arguments.length = 0, siis määrake objShell = CreateObject ("Shell.Application") 'Edastage võlts argument, öelge [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 muu "Lisage oma kood siia End If
2. meetod
See meetod kasutab käivitusskripti, mis käivitab runas- verbi abil kõrgemat VBScripti.
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
Näete UAC-dialoogi.
Kui kasutaja klõpsab Jätka kinnitamiseks, käivitatakse põhiskript administraatorina.
SEOTUD: Kuidas saab partii faili automaatselt tõsta, et käivitada see administraatorina?