UncleFather » 26 янв 2016 14:36, Вт
Задача:
Необходимо запустить созданный ранее VBS скрипт от имени Администратора.
Решение 1:
Чтобы запустить VBS скрипт от имени Администратора, создаем ярлык для нашего vbs-скрипта. Но просто так установить галочку «Запуск от имени Администратора» в дополнительных свойствах ярлыка не получится, так как она просто неактивна.
- 03.jpg (28.4 КБ) 13330 просмотров
Чтобы эта галочка стала доступной, нужно в свойствах ярлыка (на той же вкладке «Ярлык», где находится кнопка «Дополнительно»), в поле «Объект», перед путем до скрипта vbs, пишем «wscript» и ставим пробел. Получится как-то так:
wscript C:\Users\Manaeff\Desktop\!TeamViewerStarting.vbs
Сохраняем изменения и вновь открываем свойства ярлыка. Замечаем, что в поле «Объект» наш «wscript» поменялся на «C:\Windows\System32\wscript.exe». На вкладке «Ярлык» опять жмем кнопку «Дополнительно». Теперь, в открывшемся окне дополнительных свойств ярлыка, галочка «Запуск от имени Администратора» доступна.
- 04.jpg (34.18 КБ) 13330 просмотров
Ставим ее и сохраняем свойства ярлыка.
Решение 2:
Можно создать командный (bat) файл для запуска vbs скрипта из него:
Но этот сценарий будет запрашивать пароль для повышения прав.
Решение 3:
Можно создать командный (bat) файл, который, в свою очередь, нужно запускать от имени Администратора, а из него запускать 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
Дополнение: Как запустить батник (командный файл) от имени администратора
[b][size=150]Задача:[/size][/b]
Необходимо запустить созданный ранее VBS скрипт от имени Администратора.
[hr][/hr]
[b][size=150]Решение 1:[/size][/b]
Чтобы запустить VBS скрипт от имени Администратора, создаем ярлык для нашего vbs-скрипта. Но просто так установить галочку «[b][i]Запуск от имени Администратора[/i][/b]» в дополнительных свойствах ярлыка не получится, так как она просто неактивна.[attachment=1]03.jpg[/attachment]
Чтобы эта галочка стала доступной, нужно в свойствах ярлыка (на той же вкладке «[b][i]Ярлык[/i][/b]», где находится кнопка «[b][i]Дополнительно[/i][/b]»), в поле «[b][i]Объект[/i][/b]», перед путем до скрипта vbs, пишем «[b][i]wscript[/i][/b]» и ставим пробел. Получится как-то так: [quote]wscript C:\Users\Manaeff\Desktop\!TeamViewerStarting.vbs[/quote][attachment=2]02.jpg[/attachment]
Сохраняем изменения и вновь открываем свойства ярлыка. Замечаем, что в поле «[b][i]Объект[/i][/b]» наш «[b][i]wscript[/i][/b]» поменялся на «[b][i]C:\Windows\System32\wscript.exe[/i][/b]». На вкладке «[b][i]Ярлык[/i][/b]» опять жмем кнопку «[b][i]Дополнительно[/i][/b]». Теперь, в открывшемся окне дополнительных свойств ярлыка, галочка «[b][i]Запуск от имени Администратора[/i][/b]» доступна.[attachment=0]04.jpg[/attachment] Ставим ее и сохраняем свойства ярлыка.
[hr][/hr]
[b][size=150]Решение 2:[/size][/b]
Можно создать командный (bat) файл для запуска vbs скрипта из него:
[code]runas /User:Администратор MyScriptName.vbs[/code]
Но этот сценарий будет запрашивать пароль для повышения прав.
[hr][/hr]
[b][size=150]Решение 3:[/size][/b]
Можно создать командный (bat) файл, который, в свою очередь, нужно запускать от имени Администратора, а из него запускать vbs скрипт, который тоже уже запустится от имени администратора:
[code]%~dp0MyScriptName.vbs[/code]
Здесь предполагается, что vbs скрипт лежи тв одной папке с bat файлом, поэтому, для запуска скрипта мы указываем имя диска и путь, где они лежат: [b][i]%~dp0[/i][/b]
Так, в [url=http://manaeff.ru/forum/viewtopic.php?p=1668#p1668]задаче о перезапуске TeamViewer из командной строки[/url] можно модифицировать батник, из которого запускается VBS скрипт и сам скрипт следующим образом:
[b]bat-файл[/b]:
[code]@Echo Off
%~dp0TeamViewerStarting.vbs %~dp0[/code]
То есть, при запуске скрипта, мы указываем путь, где лежит bat-ник, а так же передаем в VBS в качестве параметра этот путь.
[b]TeamViewerStarting.vbs[/b] будет таким:
[code]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[/code]
[hr][/hr]
[b][size=140]Дополнение:[/size][/b] [url=https://manaeff.ru/forum/viewtopic.php?t=1544]Как запустить батник (командный файл) от имени администратора[/url]