Kuinka käynnistää Vbscript korotetussa tilassa (Suorita järjestelmänvalvojana)

2015-07-26 17:23:48
Tärkein·Microsoft·Kuinka käynnistää Vbscript korotetussa tilassa (Suorita järjestelmänvalvojana)

Kun Windows Vista -käyttöjärjestelmä (UAC) otetaan käyttöön, avaat yleensä korotetun komentokehotteen suorittaaksesi erätiedostoja ja komentosarjoja, jotka tarvitsevat järjestelmänvalvojan oikeuksia. Sovellukset voivat käyttää manifestitiedostoja (käyttämällä RequireAdministrator -lippua) suorittaaksesi korotetut automaattisesti.

Skripteille tämä artikkeli tarjoaa joitain siistiä pieniä temppuja, joiden avulla voit korottaa automaattisesti ShellExecute “runas” -parametrilla.

( Katso myös Kuinka nostaa erä automaattisesti tiedostoon suorittamalla se järjestelmänvalvojana? Toista automaattisen korotuksen menetelmää varten.)

Käynnistä Vbscript koholla

Kiitos Jim Barrylle, että hän tipisti minut käyttämään runas- argumenttia Shell.Application -objektin ShellExecute- menetelmässä. Jimin ehdotuksia käyttämällä alkuperäinen skriptini tiivistettiin suureksi osaksi. Käytä yhtä näistä menetelmistä suorittaaksesi korotetut VBScriptit.

Menetelmä 1

Tässä on esimerkki komentosarjasta, joka käynnistää itsensä uudelleen järjestelmänvalvojana (korotettuna) käyttämällä runas- parametria, jos komentosarjalla ei ole annettu komentoriviargumentteja. Kun käynnistät skriptin uudelleen järjestelmänvalvojana, lähetä vain väärä argumentti, jotta skripti ei toimi syklisessä silmukassa.

 Jos WScript.Arguments.length = 0, aseta sitten objShell = CreateObject ("Shell.Application") 'Välitä väärä argumentti, sano [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Else 'Lisää koodi tähän Lopeta If 

Menetelmä 2

Tämä menetelmä käyttää kantorakettiohjelmaa, joka suorittaa korotetun VBScript- pääkomennon runan verbilla .

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äet UAC-korkeusikkunan.

Kun käyttäjä napsauttaa Jatka hyväksyntää, pääkäsikirjoitus käynnistetään järjestelmänvalvojana.

LIITTYVÄT: Kuinka nostaa erä automaattisesti tiedostoa ajamalla sitä järjestelmänvalvojana?

Toimituksen Valinta