Alexander A Manaeff -

 
 

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

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

Модератор: UncleFather

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

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




Задача:

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




Решение 1:

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

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


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




Решение 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




Если Вам понравился этот материал, то мы с признательностью примем вашу финансовую поддержку, которая поможет нам и в дальнейшем радовать Вас интересной и полезной информацией.
Помните, что даже минимальная сумма сделает Вас инвестором этого проекта и о Вас будут думать с благодарностью тысячи наших новых читателей.
Материально поддержать проект можно здесь










Alexander A. Manaeff©

Понравилась статья? Будем крайне признательны за репосты в соцсетях! Материально поддержать проект можно здесь

Мои странички:
ВКонтакте
Одноклассники
Youtube
Facebook
Instagram
Изображение
Изображение
Изображение
Изображение
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1344
Зарегистрирован: 17 авг 2004 16:20, Вт



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

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

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

Alexander A Manaeff - нижняя граница
Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования

Счетчик посещений