С введением контроля учетных записей (UAC) в Windows Vista вы обычно открываете командную строку с повышенными правами, чтобы запускать пакетные файлы и сценарии, которым требуются права администратора. Приложения могут использовать файлы манифеста (используя флаг RequireAdministrator) для автоматического запуска с повышенными правами.
В отношении сценариев в этой статье приводятся некоторые изящные маленькие хитрости, которые вы можете автоматически повышать с помощью параметра ShellExecute «runas».
(Смотрите также Как автоматически поднять пакетный файл, чтобы запустить его от имени администратора? для другого метода авто-возвышения.)
Запустить VBScript повышенных
Спасибо Джиму Барри за сообщение об использовании беги как аргумент в методе ShellExecute объекта Shell.Application. Используя предложения Джима, мой оригинальный сценарий был сжат до значительной степени. Используйте один из этих методов для запуска VBScripts с повышенными правами.
Способ 1
Вот пример сценария, который перезапускает себя как администратор (с повышенными правами), используя беги как параметр, если в сценарии не переданы аргументы командной строки. При повторном запуске скрипта от имени администратора просто передайте фиктивный аргумент, чтобы скрипт не работал в циклическом цикле.
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
'Pass a bogus argument, say [ uac]
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
'Add your code here
End IfСпособ 2
Этот метод использует скрипт запуска, который запускает основной VBScript с повышенными правами, используя беги как глагол.
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Вы увидите диалоговое окно повышения UAC.

Когда пользователь нажимает кнопку «Продолжить», основной сценарий запускается от имени администратора.
СВЯЗАННЫЙ: Как автоматически поднять пакетный файл, чтобы запустить его от имени администратора?