Vbscripts и повышение прав UAC в Windows Vista и более поздних версиях - Winhelponline

Vbscripts Uac Elevation Windows Vista

С введением контроля учетных записей (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.

автоматически повышать vbscript runas

Как только пользователь нажимает Продолжить для утверждения запускается основной скрипт от имени администратора.

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


Одна небольшая просьба: если вам понравился этот пост, поделитесь им?

Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:
  • Приколи это!
  • Поделитесь этим в своем любимом блоге + Facebook, Reddit
  • Напишите об этом в Твиттере!
Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)