С введением контроля учетных записей (UAC) в Windows Vista вы обычно открываете повышенная командная строка для запуска командных файлов и сценариев, требующих прав администратора. Приложения могут использовать файлы манифеста (используя RequireAdministrator flag) для автоматического запуска с повышенными правами.
Что касается скриптов, в этой статье представлены некоторые изящные уловки, с помощью которых вы можете автоматически повысить уровень с помощью параметра ShellExecute «runas».
( Смотрите также Как автоматически повысить уровень командного файла, чтобы запустить его от имени администратора? для другого метода автоподъема.)
Запустить Vbscript с повышенными правами
Спасибо Джиму Барри за то, что он сообщил мне об использовании руны аргумент в ShellExecute метод объекта Shell.Application. Используя предложения Джима, мои оригинальный сценарий было сжато до очень большой доли. Используйте один из этих методов для запуска сценариев VBS с повышенными правами.
Способ 1
Вот пример сценария, который повторно запускается с правами администратора (с повышенными правами) с помощью руны параметр, если скрипту не переданы аргументы командной строки. При повторном запуске сценария от имени администратора просто передайте фиктивный аргумент, чтобы сценарий не запускался в циклическом цикле.
Если WScript.Arguments.length = 0 Then Set objShell = CreateObject ('Shell.Application') 'Передайте фиктивный аргумент, скажем [uac] objShell.ShellExecute' wscript.exe ', Chr (34) & _ WScript.ScriptFullName & Chr (34) & 'uac', '', 'runas', 1 Else 'Добавьте сюда свой код Конец Если
Способ 2
В этом методе используется сценарий запуска, который запускает основной сценарий VBScript с повышенными правами с помощью руны глагол
Задайте objShell = CreateObject ('Shell.Application') Установите FSO = CreateObject ('Scripting.FileSystemObject') strPath = FSO.GetParentFolderName (WScript.ScriptFullName) Если FSO.FileExists (strPath & ' MAIN.VBS') Тогда objShellExists 'wscript.exe', _ Chr (34) & strPath & ' MAIN.VBS' & Chr (34), '', 'runas', 1 Else MsgBox 'Файл сценария MAIN.VBS не найден' End If
Вы увидите диалоговое окно повышения уровня UAC.
Как только пользователь нажимает Продолжить для утверждения запускается основной скрипт от имени администратора.
СВЯЗАННЫЙ: Как автоматически повысить уровень командного файла, чтобы запустить его от имени администратора?
Одна небольшая просьба: если вам понравился этот пост, поделитесь им?
Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:- Приколи это!
- Поделитесь этим в своем любимом блоге + Facebook, Reddit
- Напишите об этом в Твиттере!