Задача:
Необходимо запустить созданный ранее VBS скрипт от имени Администратора.
Решение 1:
Чтобы запустить VBS скрипт от имени Администратора, создаем ярлык для нашего vbs-скрипта. Но просто так установить галочку «Запуск от имени Администратора» в дополнительных свойствах ярлыка не получится, так как она просто неактивна.
Чтобы эта галочка стала доступной, нужно в свойствах ярлыка (на той же вкладке «Ярлык», где находится кнопка «Дополнительно»), в поле «Объект», перед путем до скрипта vbs, пишем «wscript» и ставим пробел. Получится как-то так:
wscript C:\Users\Manaeff\Desktop\!TeamViewerStarting.vbs
Сохраняем изменения и вновь открываем свойства ярлыка. Замечаем, что в поле «Объект» наш «wscript» поменялся на «C:\Windows\System32\wscript.exe». На вкладке «Ярлык» опять жмем кнопку «Дополнительно». Теперь, в открывшемся окне дополнительных свойств ярлыка, галочка «Запуск от имени Администратора» доступна.
Ставим ее и сохраняем свойства ярлыка.
Решение 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
Дополнение: Как запустить батник (командный файл) от имени администратора