Как запустить vbs скрипт в windows 10 с правами администратора

Есть vbs скрипт на завершение процессов. Но он не работает, потому что даже через командную строку конкретно эти процессы - не даёт завершить "Не удается завершить процесс "test1.exe" с идентификатором XXXX. Отказано в доступе". А вот если запустить командную строку от имени администратора, то завершается. Вопрос. Что сделать с vbs скриптом, что…

Есть vbs скрипт на завершение процессов. Но он не работает, потому что даже через командную строку конкретно эти процессы — не даёт завершить «Не удается завершить процесс «test1.exe» с идентификатором XXXX. Отказано в доступе». А вот если запустить командную строку от имени администратора, то завершается. Вопрос. Что сделать с vbs скриптом, что бы он выполнялся от имени администратора?

Dim oShell : Set oShell = CreateObject(«WScript.Shell»)
oShell.Run «taskkill /f /im test1.exe»
oShell.Run «taskkill /f /im test2.exe»

Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

1

Запуск скрипта с повышенными привилегиями [руководство]

20.10.2012, 17:40. Показов 311752. Ответов 74


Как запустить Batch-файл от имени Администратора (с повышенными правами).

Вариант 1) Правая кнопка мыши по Batch-файлу «Запуск от имени администратора».

Запуск скрипта с повышенными привилегиями [руководство]

Вариант 2) Сначала запустить командную строку (см. ниже), а в ней запустить на исполнение Batch-файл.



2



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

20.10.2012, 17:40

 [ТС]

2

Как запустить командную строку от имени Администратора (с повышенными правами).

Способ 1:

Пуск
В окно поиска ввести CMD
Нажать Ctrl + Shift + Enter.

Способ 2:

Войти в диспетчер задач (Ctrl + Shift + Esc)
Вкладка «Процессы», кнопка «Отображать процессы всех пользователей».
Файл, Ctrl + Клик ЛКМ (левая кнопка мыши) по пункту «Новая задача (Выполнить …)».

Способ 3. Запуск Batch-файла с повышенными правами:

1. Создайте Batch-файл.

2. Создайте ярлык к этому файлу.

3. Зайдите в свойства ярлыка, выберите вкладку «Ярлык», кнопка «Дополнительно», отметьте галкой «Запускать от имени администратора».

Ярлык для запуска с запросом элевации прав готов.

См. также другие способы в статьях от Вадима Стеркина:
Как открыть командную строку от имени администратора в нужной папке

  • Открытие командной строки с правами администратора в нужной папке
  • Добавление соответствующего пункта контекстного меню с помощью установщика CmdHereAsAdmin.inf (программа PowerToy).
  • Рассматриваются Windows 7 и 8.

Как открывать файлы из контекстного меню с полными правами

  • Как открывать файлы из контекстного меню с полными правами
  • Повышение прав из раздела реестра “runas”
  • Повышение прав сторонними средствами
  • Тонкости, которые нужно учитывать, при работе с UAC
  • Практика: создание архива с полными правами из контекстного меню

Так ли страшен контроль учетных записей?

  • С какими правами работать?
  • Назначение контроля учетных записей
  • Администратор или пользователь?
  • Повышение прав с запросом UAC и без него
  • Современные программы и старые приложения
  • Виртуализация файлов и реестра
  • Использование сторонних утилит для повышения прав
  • Запуск программ без запроса UAC



3



Dragokas

Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

30.12.2012, 03:49

 [ТС]

3

Лучший ответ Сообщение было отмечено как решение

Решение

Элевация прав запуска BAT-файла (отображается диалог контроля учетных записей UAC)
Код: Dragokas

В ОС Windows Vista/7/8… запись в системные папки (такие как Windows, System32, корень диска C: ), запись в реестр (например, в улей HKLM) требует прав администратора.

Чтобы автоматически запускать батник с затребованием повышенных привилегий,
Вы можете воспользоваться одним из способов:

1) Через JScript-вставку без создания вспомогательного файла:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@set @x=0; /*
@echo off
ver |>NUL find /v "5." && if "%~1"=="" cscript.exe //nologo //e:jscript "%~f0"& exit /b
 
 
::
:: <--- Здесь код Вашей основной программы
::
 
 
pause
exit /B
 
:: Эту строку не трогать. Ниже ничего не писать!!!
*/new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);

Из минусов обоих способов: батнику нельзя передавать аргументы запуска.

2) С использованием внешнего VBScript-сценария.

Приведенный пример создает временный VBS-скрипт, через который методом ShellExecute, verb — runas запускает повторно BAT-файл с повышенными правами.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
ver |>NUL find /v "5." && if "%~1"=="" (
  Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%~dp0Elevating.vbs"
  cscript.exe //nologo "%~dp0Elevating.vbs" "%~f0"& goto :eof
)
 
 
::
:: <--- Здесь код Вашей основной программы
::
 
 
pause

Комментарий к коду

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
@echo off
 
:: Проверяем пустой ли первый аргумент
:: Это нужно, чтобы не запустить процесс элевации дважды.
:: Аргумент становится = 1, когда запускается команда [URL="http://ss64.com/vb/shellexecute.html"]ShellExecute[/URL]
 Имя скрипта, Аргумент, Рабочий каталог,Глагол,Режим отображения окна
if "%~1"=="" (
:: Сохраняем скрипт в файл Elevating.vbs, который находится в папке %~dp0, т.е. рядом с батником
::Параметры такие: 
::Имя скрипта - передано аргументом из cscript.exe (см.строку кода ниже)
::Аргументы: 1 - аргумент для бат-файла, чтобы не запустить элевацию дважды
::Рабочий каталог: "" - по умолчанию, текущий.
::Глагол (verb): runas - запуск от имени Администратора.
::Режим отображения окна: 1 - Normal (обычные режим. Окно отображается).
  Echo CreateObject^("Shell.Application"^).ShellExecute WScript.Arguments^(0^),"1","","runas",1 >"%~dp0Elevating.vbs"
:: Запускаем сервер сценариев без отображение сведений о нем (//nologo), запускаем Elevating.vbs с аргументом = имени бат-файла с путем
  cscript.exe //nologo "%~dp0Elevating.vbs" "%~dpnx0"& Goto :eof
)
 
:: Удаляем Elevating.vbs
>nul del "%~dp0Elevating.vbs"
 
 
::
:: <--- Здесь код Вашей основной программы
::
 
 
:: Переходим в каталог с бат-файлом
:: При выполнении повышения прав рабочий каталог бат-файла автоматически сменяется на %windir%system32
chdir /d "%~dp0"
 
::Пытаемся записать пустой файл в корень системного раздела
cd.>c:test.log
 
::Если записанный файл существует - пишем ОК, то есть повышение прав удалось успешно.
if exist c:test.log Echo OK.
 
 
pause

3) С использованием mshta (способ от ComSpec):

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
reg.exe query "HKUS-1-5-19">nul 2>&1
if %errorlevel% equ 1 goto UACPrompt
 
::
:: <--- Здесь код Вашей основной программы
::
 
pause>nul
exit /b
 
 
:UACPrompt
mshta "vbscript:CreateObject("Shell.Application").ShellExecute("%~fs0", "", "", "runas", 1) & Close()"
exit /b

Запуск скрипта с повышенными привилегиями [руководство]

Start Admin Console.cmd
Запускает новое окно консоли с повышенными правами и переходит в папку, где сам находится
Ожидает ввода команд от пользователя.

Bash
1
2
3
4
5
6
7
8
9
10
@set @x=0; new ActiveXObject('Shell.Application').ShellExecute ('cmd.exe','/K ' + '"' + WScript.ScriptFullName + '"' + ' Admin','','runas',1);/*
@echo off
if "%~1" neq "Admin" (
  cscript.exe //nologo //e:jscript "%~f0"
) else (
  cd /d "%~dp0"
)
exit /B
 
*/



15



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

23.02.2014, 21:18

 [ТС]

4



1



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

22.01.2015, 14:34

 [ТС]

5



2



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

20.07.2015, 22:49

 [ТС]

6

Как запустить VBScript, JScript с повышенными привилегиями?

1) Создайте к Вашему скрипту ярлык -> правой кнопкой мыши (ПКМ) по файлу скрипта -> «Создать ярлык».

Название: 1.png
Просмотров: 5290

Размер: 30.9 Кб

2) В свойствах ярлыка (ПКМ по ярлыку)

Запуск скрипта с повышенными привилегиями [руководство]

на вкладке «Ярлык»:
— в поле «Объект» допишите слева слово WSCRIPT и знак пробела
— нажмите «Применить»
— нажмите «Дополнительно»

Запуск скрипта с повышенными привилегиями [руководство]

Поставьте галочку «Запускать от имени администратора».

Запуск скрипта с повышенными привилегиями [руководство]

Нажмите «ОК» в обоих окнах.

Значок скрипта изменится на такой:

Название: 5.png
Просмотров: 5290

Размер: 13.6 Кб

Теперь можете запускать скрипт через этот ярлык (с повышенными привилегиями).

Будет задан вопрос от «Контроля учетных записей», на который следует ответить утвердительно.

Запуск скрипта с повышенными привилегиями [руководство]



5



Pure Free Digital Ghost

4598 / 1910 / 370

Регистрация: 06.01.2013

Сообщений: 4,564

02.12.2016, 02:11

7



0



2 / 2 / 0

Регистрация: 09.12.2015

Сообщений: 26

23.04.2017, 14:37

8

а можно допилить этот код так чтобы после согласия на разрешение прав окно батника пропадало а не висело пока выполняется команда? Заранее спасибо!

вот этот код:

@set @x=0; /*
@echo off
ver |>NUL find /v «5.» && if «%~1″==»» cscript.exe //nologo //e:jscript «%~f0″& exit /b

::
:: <— Здесь код Вашей основной программы
::

pause
exit /B

:: Эту строку не трогать. Ниже ничего не писать!!!
*/new ActiveXObject(‘Shell.Application’).ShellExecute (WScript.ScriptFullName,’Admin’,»,’runas’,1);



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

23.04.2017, 15:09

 [ТС]

9

Любой батник «висит» пока в нём выполняется команда.
Вообще, тут ещё от команды зависит, если вызывается внешняя GUI-шная программа (т.е. оконная), то батнику ждать не обязательно.



0



2 / 2 / 0

Регистрация: 09.12.2015

Сообщений: 26

23.04.2017, 16:54

10

вот вставляю этот код в батник и он перестает висеть (открывается на секунду и закрывается и команда продолжает работать без окна)

вот код:
%1@mshta vbscript:Execute(«CreateObject(«»Wscript.Shell»»). Run «»»»»»%~f0″»»» :»»,0:Close()»)& exit/b

но перестает запускаться от администратора(

можно ка кто эти два кода подружить?



0



Эксперт WindowsАвтор FAQ

17954 / 7591 / 889

Регистрация: 25.12.2011

Сообщений: 11,321

Записей в блоге: 17

23.04.2017, 17:05

 [ТС]

11

Цитата
Сообщение от valli_vasia
Посмотреть сообщение

можно ка кто эти два кода подружить?

2 кода? Я только один вижу, при чём непонятно откуда вы его взяли.
При том так до сих пор и не понятно, что вы хотите сделать.



0



2 / 2 / 0

Регистрация: 09.12.2015

Сообщений: 26

23.04.2017, 17:24

12

второй код я писал в предыдущем сообщении)

мне надо чтобы батник запускался от имени администратора и чтобы окно не висело во время выполнения команды (типо запустил батник он спросил права админа UACокно, я согласился и окно батника пропало а команда продолжалась бы) ну если бы подтверждение не выскакивало было бы еще лучше)

Добавлено через 11 минут
Вообщем то суть такая: Нужен батник чтобы он находил все файлы с расширением .xml на нескольких жестких дисках (допустим С и D) и переименовывал их в db.xml (при этом если в одной папке больше таких файлов чем один то добавлял им цифру типо db.xml db1.xml db2.xml … и т.д.) Надо его запускать от админа так как диск С системный( и чтобы само окно невесело пока он ищет все эти файлы. Помогите разобраться пожалуйста.



0



2 / 2 / 0

Регистрация: 09.12.2015

Сообщений: 26

24.04.2017, 22:30

13

Люди добрые помогите пожалуйста!



0



2 / 2 / 0

Регистрация: 09.12.2015

Сообщений: 26

27.04.2017, 12:51

14

Возможно хоть вообще такое?

Добавлено через 20 часов 36 минут
Ни кто не знает?(

может кто подскажет: Нужен батник чтобы он находил все файлы с расширением .xml на нескольких жестких дисках (допустим С и D) и переименовывал их в db.xml (при этом если в одной папке больше таких файлов чем один то добавлял им цифру типо db.xml db1.xml db2.xml … и т.д.) и чтобы окно невесело пока он ищет все эти файлы. Помогите пожалуйста.



0



4330 / 2120 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

27.04.2017, 14:58

15

все это понятно, но

Цитата
Сообщение от valli_vasia
Посмотреть сообщение

чтобы окно невесело

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



0



0 / 0 / 0

Регистрация: 18.04.2016

Сообщений: 7

04.05.2018, 17:20

16

Может кто знает как запустить bat/vbs не от имени админа, а с повышением прав? Возможно ли такое? Если скрипт пишет что то в HKEY_CURRENT_USER, то при запуске от имени админа все пишется в профиль админа, а нужно в пользовательский.



0



4330 / 2120 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

04.05.2018, 17:36

17

Цитата
Сообщение от GarfieldX
Посмотреть сообщение

все пишется в профиль админа

а повернуть реку вспять религия не позволяет?

Добавлено через 3 минуты
если вы будете в своей комнате на обоях писать нехорошие слова маркером, но с разрешения хозяина квартиры, написанное наблюдать вам придется, на своих обоях своей комнаты.



0



0 / 0 / 0

Регистрация: 18.04.2016

Сообщений: 7

04.05.2018, 17:49

18

Цитата
Сообщение от alpap
Посмотреть сообщение

а повернуть реку вспять религия не позволяет?

Может тогда снизойдете до более подробных объяснений?
Честно — не соображу что и как.
Есть vbs скрипт запускаемый батником, который с свою очередь запускается с админскими правами. Понятно, что только часть операций в скрипте требует админских прав. Вы предлагаете рулить процессом кусочно или как то по-другому?



0



4330 / 2120 / 661

Регистрация: 26.04.2015

Сообщений: 6,823

04.05.2018, 18:56

19

GarfieldX,
с помощью админских разрешений вы получили доступ к запретной папке, но кто потом запрещает копировать оттуда файлы туда куда хочется или писать и сохранять логи в папку (файлы) в своем профиле? Или я чего-то не понимаю в ваших действиях?



0



0 / 0 / 0

Регистрация: 18.04.2016

Сообщений: 7

04.05.2018, 19:57

20

alpap,
Проблема в доступе к ветке реестра HKEY_CURRENT_USER, который является относительно ссылкой, а не абсолютной.
Или та же %appdata%, которая ведет в профиль текущего пользователя. Только в этом случае выкрутиться можно, а вот с реестром пока не нашел как.



0



Нажмите кнопку «Пуск», а затем — «Выполнить». В поле «Открыть» введите полный путь к сценарию и нажмите кнопку «ОК». Вы также можете ввести WScript, а затем полное имя и путь к сценарию, который хотите запустить.

Работает ли VBScript в Windows 10?

Прощай, VBScript!

Microsoft выпустила аналогичное обновление для Windows 10 9 июля 2019 г. Теперь в любой поддерживаемой системе Windows с установленными последними обновлениями VBScript будет отключен по умолчанию. VBScript по большей части уже не было.

Как запустить сценарий Visual Basic?

Запуск сценариев Visual Basic с использованием командной строки (Процедура)

  1. Выберите вкладку «Просмотр»> панель «Windows»> «Пользовательский интерфейс»> «Командная строка». Появится диалоговое окно командной строки.
  2. Введите имя сценария без расширения файла, а затем любые аргументы командной строки, которые требуются сценарию. Например, у вас может быть сценарий с именем test_script. …
  3. Выберите Go. Сценарий играет.

5 ночей. 2018 г.

Добавить пункт контекстного меню Запуск от имени администратора в файлы VBS

  1. Откройте редактор реестра.
  2. Перейдите к следующему ключу реестра: HKEY_CLASSES_ROOTVBSFileshell. Совет: вы можете получить доступ к любому желаемому ключу реестра одним щелчком мыши. …
  3. Создайте здесь новый подраздел с именем «runas». …
  4. В подразделе runas создайте новое строковое значение с именем HasLUAShield. …
  5. В подразделе runas создайте новый подраздел под названием «команда».

16 ночей. 2015 г.

Как проверить, включен ли VBScript?

Откройте диспетчер задач и перейдите на вкладку «Подробности». Если запущен VBScript или JScript, в списке появится процесс wscript.exe или cscript.exe. Щелкните правой кнопкой мыши заголовок столбца и включите «Командная строка». Это должно сообщить вам, какой файл сценария выполняется.

В чем разница между VBA и VBScript?

VBScript — это подмножество языка Visual Basic для приложений. VBScript — нетипизированный язык. … В отличие от Visual Basic и Visual Basic для приложений, в которых разработчик может заранее определить тип данных переменной, все переменные в VBScript являются вариантами.

В чем разница между VBScript и JavaScript?

JavaScript — это язык сценариев с учетом регистра, тогда как VBScript не является языком сценариев с учетом регистра. … JavaScript используется как язык сценариев на стороне клиента, тогда как VBScript может использоваться как язык сценариев как на стороне сервера, так и на стороне клиента.

Как запустить скрипт в Windows 10?

Чтобы запустить сценарий при запуске в Windows 10, выполните следующие простые шаги:

  1. Откройте «Проводник».
  2. Перейдите в папку с командным файлом.
  3. Щелкните пакетный файл правой кнопкой мыши и выберите параметр «Копировать».
  4. Используйте сочетание клавиш Windows + R, чтобы открыть команду «Выполнить».
  5. Введите следующую команду:…
  6. Нажмите кнопку ОК.

16 окт. 2020 г.

Как запустить сценарий из командной строки?

Запустить командный файл

  1. Из меню «Пуск»: ПУСК> ВЫПОЛНИТЬ c: path_to_scriptsmy_script.cmd, ОК.
  2. «C: путь к scriptsmy script.cmd»
  3. Откройте новое приглашение CMD, выбрав START> RUN cmd, OK.
  4. В командной строке введите имя сценария и нажмите клавишу возврата. …
  5. Также возможно запускать пакетные сценарии со старым (стиль Windows 95).

Какой язык программирования использует Visual Basic?

На смену Visual Basic в 2002 году пришел Visual Basic. NET, совершенно другой язык, основанный на C #, языке, похожем на C ++.

Как мне запустить командный файл от имени администратора без запроса?

Всегда запускать пакетный файл от имени администратора в Windows 10

  1. Найдите командный файл.
  2. Щелкните правой кнопкой мыши пакетный файл.
  3. Выберите «Создать ярлык».
  4. Дайте ему подходящее имя.
  5. Теперь щелкните файл ярлыка правой кнопкой мыши.
  6. Нажмите «Свойства».
  7. Выберите вкладку «Ярлыки»> «Дополнительно».
  8. Установите флажок «Запуск от имени администратора».

4 ян. 2020 г.

Как мне запустить командный файл от имени администратора в VBScript?

Или вы можете использовать AutoIT, поскольку у него есть собственный язык сценариев, похожий на VB. Его можно скомпилировать в exe. На сайте www.appdeploy.com есть множество справочных материалов по распространению программного обеспечения. Затем все, что вам нужно сделать, это «перетащить» любые командные файлы в это командное окно, и они будут работать от имени этого привилегированного пользователя.

Как мне запустить высокий уровень привилегий в VBScript?

Практическое руководство: запустить сценарий с повышенными разрешениями. Запуск сценария «От имени администратора» (с повышенными правами) с использованием VBscript можно выполнить, запустив ShellExecute и установив флаг runas. Это можно использовать для запуска исполняемого файла или для запуска всего сценария (пакетного файла или VBScript) с повышенными разрешениями.

Куда мне поместить код VBScript?

VBScripts могут быть размещены в теле и в разделе заголовка документа HTML.

Как остановить выполнение скриптов в Windows 10 в фоновом режиме?

Чтобы запретить приложениям работать в фоновом режиме, тратя впустую системные ресурсы, выполните следующие действия:

  1. Открыть настройки.
  2. Нажмите на конфиденциальность.
  3. Нажмите на фоновые приложения.
  4. В разделе «Выберите, какие приложения могут работать в фоновом режиме» выключите тумблер для приложений, которые вы хотите ограничить.

29 ян. 2019 г.

Как включить Windows Script Host?

Чтобы включить или отключить Windows Script Host, введите regedit.exe в поле «Выполнить» и нажмите Enter, чтобы открыть редактор реестра. На правой панели вы увидите Включено. Если вы видите запись 0, это означает, что доступ к хосту сценариев Windows отключен на вашем компьютере с Windows. Дважды щелкните по нему и присвойте ему значение «Данные 1», чтобы включить его.

Can anyone help me with running vbs from itself but with administrator rights?
I need rename computer with Windows 8 via VBScript, but it’s possible only if I run my script through administrator command line (CMD → Run as Administrator → runScript.vbs). If I start script with classic CMD the computer isn’t renamed.

My idea is I start script with user rights, without parameters and if there is no parameter, the script re-runs itself with admin rights and with parameter as identificator «I’m admin».

Does anyone know how I can do this?

Edit:

I tried this:

If WScript.Arguments.Count = 0 Then
    Set objShell = CreateObject("Shell.Application")
    objShell.ShellExecute "wscript.exe", "c:UsersadminDocumentsselfConfigure.vbs -1", "", runas", 1
End If

Ansgar Wiechers's user avatar

asked Jul 4, 2013 at 9:27

Daphnis's user avatar

4

If UAC is enabled on the computer, something like this should work:

If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName _
    , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
  WScript.Quit
End If

'actual code

answered Jul 4, 2013 at 9:55

Ansgar Wiechers's user avatar

Ansgar WiechersAnsgar Wiechers

189k23 gold badges240 silver badges313 bronze badges

5

Add this to the beginning of your file:

Set WshShell = WScript.CreateObject("WScript.Shell")
If WScript.Arguments.Length = 0 Then
  Set ObjShell = CreateObject("Shell.Application")
  ObjShell.ShellExecute "wscript.exe" _
    , """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
  WScript.Quit
End if

Ansgar Wiechers's user avatar

answered Mar 14, 2014 at 18:57

Hussain's user avatar

HussainHussain

2765 silver badges10 bronze badges

3

fun lil batch file

@set E=ECHO &set S=SET &set CS=CScript //T:3 //nologo %~n0.vbs /REALTIME^>nul^& timeout 1 /NOBREAK^>nul^& del /Q %~n0.vbs&CLS
@%E%off&color 4a&title %~n0&%S%CX=CLS^&EXIT&%S%BS=^>%~n0.vbs&%S%G=GOTO &%S%H=shell&AT>NUL
IF %ERRORLEVEL% EQU 0 (
    %G%2
) ELSE (
    if not "%minimized%"=="" %G%1
)
%S%minimized=true & start /min cmd /C "%~dpnx0"&%CX%
:1
%E%%S%%H%=CreateObject("%H%.Application"):%H%.%H%Execute "%~dpnx0",,"%CD%", "runas", 1:%S%%H%=nothing%BS%&%CS%&%CX%
:2
%E%%~dpnx0 fvcLing admin mode look up&wmic process where name="cmd.exe" CALL setpriority "realtime"& timeout 3 /NOBREAK>nul
:3
%E%x=msgbox("end of line" ,48, "%~n0")%BS%&%CS%&%CX%

Ansgar Wiechers's user avatar

answered Nov 26, 2014 at 5:22

funny's user avatar

funnyfunny

311 bronze badge

2

Nice article for elevation options — http://www.novell.com/support/kb/doc.php?id=7010269

Configuring Applications to Always Request Elevated Rights:

Programs can be configured to always request elevation on the user level via registry settings under HKCU. These registry settings are effective on the fly, so they can be set immediately prior to launching a particular application and even removed as soon as the application is launched, if so desired. Simply create a "String Value" under "HKCUSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers" for the full path to an executable with a value of "RUN AS ADMIN". Below is an example for CMD.

Windows Registry Editor Version 5.00
[HKEY_Current_UserSOFTWAREMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers]
"c:\windows\system32\cmd.exe"="RUNASADMIN"

answered May 13, 2014 at 7:15

Amit's user avatar

AmitAmit

3511 gold badge2 silver badges8 bronze badges

2

`My vbs file path :

D:QTP PracticeDriverTestany.vbs’

objShell = CreateObject("Shell.Application")

objShell.ShellExecute "cmd.exe","/k echo test", "", "runas", 1

set x=createobject("wscript.shell")

wscript.sleep(2000)

x.sendkeys "CD"&"{ENTER}"&"cd D:"&"{ENTER}"&"cd "&"QTP PracticeDriver"&"{ENTER}"&"Testany.vbs"&"{ENTER}"

—from google search and some tuning, working for me

rob's user avatar

rob

2,0798 gold badges27 silver badges36 bronze badges

answered Jul 29, 2015 at 8:23

Hari Krishna's user avatar

This is the universal and best solution for this:

If WScript.Arguments.Count <> 1 Then WScript.Quit 1
RunAsAdmin
Main

Sub RunAsAdmin()
    Set Shell = CreateObject("WScript.Shell")
    Set Env = Shell.Environment("VOLATILE")
    If Shell.Run("%ComSpec% /C ""NET FILE""", 0, True) <> 0 Then
        Env("CurrentDirectory") = Shell.CurrentDirectory
        ArgsList = ""
        For i = 1 To WScript.Arguments.Count
            ArgsList = ArgsList & """ """ & WScript.Arguments(i - 1)
        Next
        CreateObject("Shell.Application").ShellExecute WScript.FullName, """" & WScript.ScriptFullName & ArgsList & """", , "runas", 5
        WScript.Sleep 100
        Env.Remove("CurrentDirectory")
        WScript.Quit
    End If
    If Env("CurrentDirectory") <> "" Then Shell.CurrentDirectory = Env("CurrentDirectory")
End Sub

Sub Main()
    'Your code here!
End Sub

Advantages:

1) The parameter injection is not possible.
2) The number of arguments does not change after the elevation to administrator and then you can check them before you elevate yourself.
3) You know for real and immediately if the script runs as an administrator. For example, if you call it from a control panel uninstallation entry, the RunAsAdmin function will not run unnecessarily because in that case you are already an administrator. Same thing if you call it from a script already elevated to administrator.
4) The window is kept at its current size and position, as it should be.
5) The current directory doesn’t change after obtained administrative privileges.

Disadvantages: Nobody

answered Oct 14, 2018 at 13:43

Riccardo La Marca's user avatar

1

  • Remove From My Forums
  • Вопрос

  • Есть vbs скрипт, который устанавливает драйвера для принтеров и он замечательно работает на ХР. Но при запуске в Win2008 пишет, что не хватает прав. Правой кнопкой мышки жму, но в меню нет пункта «запустить с правами админа».

Ответы

  • Запустите командную строку с правами администратора, а затем введите

    cscript.exe your_script.vbs или
    wscript.exe your_script.vbs

    Либо настройте скрипт через групповые политики для запуска при старте компьютера.

    • Помечено в качестве ответа

      7 июля 2009 г. 9:46

I can’t find a definite solution to this problem. In short, what I want to do is gather a list of applications installed on the computer, and write it to a file. Here was my first attempt:

Set objShell = WScript.CreateObject("Wscript.Shell")
randTrashVar = objShell.Run("cmd /c wmic product get Name,Version > " & strAppListPath, 0, true)

But it must be run as an admin to work in all my cases. So I tried wrapping it in runas, but don’t know too much about it so I could be wrong there.

randTrashVar = objShell.Run("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "", 0, true)

Or doing something with objShell.Exec too

Set getAppsProcess = objShell.Exec("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "")
Do While getAppsProcess.Status = 0
    WScript.Sleep 100
Loop

The first one gets me somewhere, and they all wait for the command to finish before moving on, but didn’t run as admin/run at all (as far as I know).

This runs as Admin now, but no wait

CreateObject("Shell.Application").ShellExecute "cmd", "/c wmic product get Name,Version > " & strAppListPath, "", "runas", 1 

What can I do to get the best of these?

I can’t find a definite solution to this problem. In short, what I want to do is gather a list of applications installed on the computer, and write it to a file. Here was my first attempt:

Set objShell = WScript.CreateObject("Wscript.Shell")
randTrashVar = objShell.Run("cmd /c wmic product get Name,Version > " & strAppListPath, 0, true)

But it must be run as an admin to work in all my cases. So I tried wrapping it in runas, but don’t know too much about it so I could be wrong there.

randTrashVar = objShell.Run("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "", 0, true)

Or doing something with objShell.Exec too

Set getAppsProcess = objShell.Exec("runas /user:Administrator ""cmd /c wmic product get Name,Version > " & strAppListPath & "")
Do While getAppsProcess.Status = 0
    WScript.Sleep 100
Loop

The first one gets me somewhere, and they all wait for the command to finish before moving on, but didn’t run as admin/run at all (as far as I know).

This runs as Admin now, but no wait

CreateObject("Shell.Application").ShellExecute "cmd", "/c wmic product get Name,Version > " & strAppListPath, "", "runas", 1 

What can I do to get the best of these?

With the introduction of User Account Control (UAC) in Windows Vista, you usually open an elevated Command Prompt in order to run batch files and scripts that need administrative privileges. Applications can make use of manifest files (using the RequireAdministrator flag) to automatically run elevated.

For scripts, this article provides you some neat little tricks using which you can automatically elevate using the ShellExecute “runas” parameter.

(See also How to Automatically Elevate a Batch file to Run it as Administrator? for another auto-elevation method.)

Thanks to Jim Barry for tipping me off about the using runas argument in the ShellExecute method of Shell.Application object. Using Jim’s suggestions, my original script was condensed down to a great deal. Use one of these methods to run VBScripts elevated.

Method 1

Here is a sample script that re-launches itself as administrator (elevated) using the runas parameter, if the script has no command-line arguments passed. When re-launching the script as administrator, simply pass a bogus argument so that the script does not run in a cyclic loop.

If WScript.Arguments.length = 0 Then
   Set objShell = CreateObject("Shell.Application")
   'Pass a bogus argument, say [ uac]
   objShell.ShellExecute "wscript.exe", Chr(34) & _
      WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
   'Add your code here

End If

Method 2

This method uses a launcher script which runs the main VBScript elevated using the runas verb.

Set objShell = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
strPath = FSO.GetParentFolderName (WScript.ScriptFullName)
If FSO.FileExists(strPath & "MAIN.VBS") Then
     objShell.ShellExecute "wscript.exe", _
        Chr(34) & strPath & "MAIN.VBS" & Chr(34), "", "runas", 1
Else
     MsgBox "Script file MAIN.VBS not found"
End If

You’ll see see the UAC elevation dialog.

automatically elevate vbscript runas

Once user clicks Continue to approve, the main script is launched as administrator.

RELATED: How to Automatically Elevate a Batch file to Run it as Administrator?


One small request: If you liked this post, please share this?

One «tiny» share from you would seriously help a lot with the growth of this blog.
Some great suggestions:

  • Pin it!
  • Share it to your favorite blog + Facebook, Reddit
  • Tweet it!

So thank you so much for your support. It won’t take more than 10 seconds of your time. The share buttons are right below. :)


Ezoic

Ramesh Srinivasan is passionate about Microsoft technologies and he has been a consecutive ten-time recipient of the Microsoft Most Valuable Professional award in the Windows Shell/Desktop Experience category, from 2003 to 2012. He loves to troubleshoot and write about Windows.
Ramesh founded Winhelponline.com in 2005.

Like this post? Please share to your friends:
  • Как запустить starship troopers на windows 10
  • Как запустить starcraft на windows 7
  • Как запустить windows mobile на андроид
  • Как запустить vb6 на windows 10
  • Как запустить windows mobile на windows 10