Alexander A Manaeff -

 
 

VBS. Как запустить скрипт от имени администратора.

Здесь обсуждаются вопросы по программированию на Visual Basic.

Модератор: UncleFather

VBS. Как запустить скрипт от имени администратора.

Сообщение UncleFather » 26 янв 2016 14:36, Вт

Задача:

Необходимо запустить созданный ранее VBS скрипт от имени Администратора.




Решение 1:

Чтобы запустить VBS скрипт от имени Администратора, создаем ярлык для нашего vbs-скрипта. Но просто так установить галочку «Запуск от имени Администратора» в дополнительных свойствах ярлыка не получится, так как она просто неактивна.
03.jpg
03.jpg (28.4 КБ) Просмотров: 5156

Чтобы эта галочка стала доступной, нужно в свойствах ярлыка (на той же вкладке «Ярлык», где находится кнопка «Дополнительно»), в поле «Объект», перед путем до скрипта vbs, пишем «wscript» и ставим пробел. Получится как-то так:
wscript C:\Users\Manaeff\Desktop\!TeamViewerStarting.vbs
02.jpg


Сохраняем изменения и вновь открываем свойства ярлыка. Замечаем, что в поле «Объект» наш «wscript» поменялся на «C:\Windows\System32\wscript.exe». На вкладке «Ярлык» опять жмем кнопку «Дополнительно». Теперь, в открывшемся окне дополнительных свойств ярлыка, галочка «Запуск от имени Администратора» доступна.
04.jpg
04.jpg (34.18 КБ) Просмотров: 5156
Ставим ее и сохраняем свойства ярлыка.




Решение 2:

Можно создать командный (bat) файл для запуска vbs скрипта из него:
Код: Выделить всё
runas /User:Администратор MyScriptName.vbs

Но этот сценарий будет запрашивать пароль для повышения прав.




Решение 3:

Можно создать командный (bat) файл, который, в свою очередь, нужно запускать от имени Администратора, а из него запускать vbs скрипт, который тоже уже запустится от имени администратора:
Код: Выделить всё
%~dp0MyScriptName.vbs


Здесь предполагается, что vbs скрипт лежи тв одной папке с bat файлом, поэтому, для запуска скрипта мы указываем имя диска и путь, где они лежат: %~dp0

Так, в задаче о перезапуске TeamViewer из командной строки можно модифицировать батник, из которого запускается VBS скрипт и сам скрипт следующим образом:
bat-файл:
Код: Выделить всё
@Echo Off
%~dp0TeamViewerStarting.vbs %~dp0

То есть, при запуске скрипта, мы указываем путь, где лежит bat-ник, а так же передаем в VBS в качестве параметра этот путь.

TeamViewerStarting.vbs будет таким:
Код: Выделить всё
On Error Resume Next

WshShell.Run "taskkill /F /T /IM ""TeamViewer*""",0,False
WshShell.Run "taskkill /F /T /IM ""tv_w*""",0,True
WshShell.Run "net stop teamviewer7",0,True
WshShell.Run "net stop teamviewer8",0,True
WshShell.Run "net stop teamviewer9",0,True
WshShell.Run "net stop teamviewer10",0,True
WshShell.Run "net stop teamviewer11",0,True
WshShell.Run "taskkill /F /T /IM ""TeamViewer*""",0,False
WshShell.Run "taskkill /F /T /IM ""tv_w*""",0,True

Set objArgs = WScript.Arguments
'WScript.Echo objArgs(0)

WScript.Sleep 1000*10

WshShell.Run objArgs(0) & "TeamViewerQS.exe",1,False
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1325
Зарегистрирован: 17 авг 2004 16:20, Вт

Вернуться в Visual Basic

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Alexander A Manaeff -
@Mail.ru .