Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.82/595: Рейтинг темы: голосов - 595, средняя оценка - 4.82
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
1

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

20.10.2012, 17:40. Просмотров 120853. Ответов 43
Метки нет (Все метки)

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

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

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


Вариант 2) Сначала запустить командную строку (см. ниже), а в ней запустить на исполнение Batch-файл.
2
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2012, 17:40
Ответы с готовыми решениями:

Запуск bat скрипта с пониженными привилегиями
Привет ☺ Как в bat скрипте, который запускается с правами администратора прописать запуск...

Изменение рабочего каталога при запуске батника с повышенными привилегиями
C:\Users\adm>echo Рабочий каталог - C:\Users\adm Рабочий каталог - C:\Users\adm никакого system32

Запуск VBS-скрипта из батника
Не не не, я не совсем нуб =) В бат-файле несколько раз вызывается вбс-скрипт. Но что самое...

Запуск программы из скрипта .cmd
Здравствуйте форумчане, проблема такая: Есть программа fmedia, которую я запускаю из командной...

Запуск скрипта с правами администратора
Доброго времени суток! Есть система: WinXP (SP3). Машина входит в домен. На компе два...

43
alpap
2574 / 1562 / 530
Регистрация: 26.04.2015
Сообщений: 5,260
04.05.2018, 20:21 21
Цитата Сообщение от GarfieldX Посмотреть сообщение
Проблема в доступе к ветке реестра HKEY_CURRENT_USER
получив туда доступ что не получается сделать дальше?
0
GarfieldX
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 7
04.05.2018, 20:21 22
Дело не в доступе, а в расположении. Для каждого пользователя HKEY_CURRENT_USER свой.
Это как, например, %appdata% - попробуйте по такой относительно ссылке попасть в аналогичную папку другого пользователя.

Т.е. никаких чудес. Есть пользовательская учетка из под которой происходит работа, есть админская учетка на том же компе. При запуске скрипта нужно чтобы в том числе прописались некоторые настройки в обозначенной ветке реестра и выполнились определенные действия для которых требуются админские права. При этом если запускать от имени админа, то весь скрипт будет выполнятся с учетом этого.
Пока что назрел вариант как то проверять права доступа, если нужно, то генерить некий bat-ник с добавлением юзера в группу Администраторы, потом запускать основной скрипт уже от имени юзверя, затем убирать его из группы. Но это как кривоватенько получается. Если что не так, то юзер так и останется в админах. Хотелось бы просто повышение полномочий текущего пользователя в рамках сессии выполнения скрипта. Т.е. запросил повышение, ввел данные аккаунта, которые это позволяют и продолжил под текущим юзверем.
0
alpap
2574 / 1562 / 530
Регистрация: 26.04.2015
Сообщений: 5,260
04.05.2018, 20:45 23
Цитата Сообщение от GarfieldX Посмотреть сообщение
попробуйте по такой относительно ссылке попасть в аналогичную папку другого пользователя
Windows Batch file
1
2
3
4
5
6
@echo off
call set "spath=%%appdata:%username%=Vasya%%"
pushd "%spath%"
 echo код
popd
pause
Добавлено через 2 минуты
естественно под админом, а имена могу в цикле перебрать, подставлять и заходить в каждую по очереди - это ведь надо.
0
GarfieldX
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 7
04.05.2018, 21:38 24
Неудачный пример получился. Забыл что так можно.
Но как обратиться из vbs к упомянутой ветке реестра другого пользователя так и не нашел.
По сути только в одном месте скрипта закавыка...
0
04.05.2018, 21:38
GarfieldX
0 / 0 / 0
Регистрация: 18.04.2016
Сообщений: 7
10.05.2018, 16:29 25
В общем вариантов решений было два:
1. Повысить права конкретного юзера и спокойно выполнять скрипт под его учеткой. Именно повысить права, похоже, не возможно. Была мысль сначала добавлять юзера в группу "Администраторы" (если его там нет), вызывать скрипт, убирать юзера из группы. С точки зрения здравого смысла не так все плохо, ведь исходим из того, что пользователь и админ - одно лицо, которое работает под обычной учеткой. Но тем не менее, все равно не аккуратненько как то. Мало ли, вдруг в это же время какая то фигня случится, а тут полные права у пользователя.
2. Переделать скрипт чтобы работать с реестром и прочими папками связанными с заданным пользователем. Так и сделал. При запуске через bat-ник генерится скрипт vbs для запроса админских прав (ShellExecute runas) и в качестве параметра передается имя запустившего пользователя. Где лежат HKEY_CURRENT_USER тоже удалось найти.
0
Eskander88
11 / 12 / 2
Регистрация: 02.11.2015
Сообщений: 204
03.08.2018, 17:31 26
Подскажите пожалуйста, как запустить bat-скрипт через ярлык?

У меня есть скрипт C:\scripts\file.bat и ярлык на него C:\scripts\file.bat.lnk в котором указано "Запуск от имени администратора". Как можно запустить батник используя ярлык? Сейчас если выполнить команду
Bash
1
C:\scripts\file.bat.lnk
возвращает:
Bash
1
2
'S:\apache\bin\restart.bat.lnk' is not recognized as an internal or external command,
operable program or batch file
Добавлено через 10 минут
для решения задачи в принципе достаточно и запуска самого C:\scripts\file.bat от Имени Администратора. Скажем в интернете предлагают использовать RUNAS
Bash
1
runas /user:%computername%\%username% C:\scripts\file.bat
Однако такая команда требует ввода пароля, а у меня он в системе не установлен. Нажатие Enter не помогает
0
alpap
2574 / 1562 / 530
Регистрация: 26.04.2015
Сообщений: 5,260
03.08.2018, 19:33 27
Цитата Сообщение от Eskander88 Посмотреть сообщение
Как можно запустить батник используя ярлык?
как и любую программу:
ПКМ по bat - создать ярлык, в свойствах ярлыка поставить галку запуска от имени админа и стандартно ЛКМ по ярлыку, это же прописные истины работы пользователя даже не имеющие отношения к программированию.
0
Eskander88
11 / 12 / 2
Регистрация: 02.11.2015
Сообщений: 204
03.08.2018, 19:49 28
Цитата Сообщение от alpap Посмотреть сообщение
как и любую программу:
ПКМ по bat - создать ярлык, в свойствах ярлыка поставить галку запуска от имени админа и стандартно ЛКМ по ярлыку, это же прописные истины работы пользователя даже не имеющие отношения к программированию.
я не слепой.. такой же ответ в заголовке темы... меня интересует программный способ... да и какой вообще тогда смысл в скриптах и автоматизации, когда сидишь и в ручную тыкаешь, хотя для данной задачи я бы согласился и на всплывающее окно UAC для подтверждения..

я не могу запустить кликом мыши потому, что мне нужно выполнить скрипт в другой программе с поддержкой технологии WSH, которая может запустить что-нибудь на ПК вроде Win+R

но как ей передать команду, чтобы запустить .lnk-файл?
0
alpap
2574 / 1562 / 530
Регистрация: 26.04.2015
Сообщений: 5,260
03.08.2018, 21:28 29
Eskander88
создавать ярлыки bat не умеет и тогда есть смысл оставить его в покое в пользу чего-то более подходящего для данной задачи.
0
FlasherX
1790 / 799 / 313
Регистрация: 06.06.2017
Сообщений: 2,890
03.08.2018, 22:41 30
Eskander88
Не улавливаю логики. Что ярлык, что батник — суть одна, сделал один раз и пользуйся до бесконечности. При чём тут автоматизация?
И какой смысл запускать скрипт из сценария, если можно всё в скрипте сделать?
0
Eskander88
11 / 12 / 2
Регистрация: 02.11.2015
Сообщений: 204
04.08.2018, 08:26 31
Цитата Сообщение от FlasherX Посмотреть сообщение
Не улавливаю логики. Что ярлык, что батник — суть одна, сделал один раз и пользуйся до бесконечности. При чём тут автоматизация?
И какой смысл запускать скрипт из сценария, если можно всё в скрипте сделать?
ну как же... в ярлыке же пометка, что скрипт "запустить от Имени Администратора".. а сами батники понятное дело можно запустить прямой командой вроде:
Bash
1
cmd.exe /k "C:\file.bat"
но часть инструкции требуют повышения привелегий.. на сам батник нельзя повесить какую-то пометку, что он доверенный и можно запускать без ограничений (ну может быть где-то глубоко в реестре или secpol.msc , gpedit.msc - мне неизвестно..)
так то хоть понятно?
1
FlasherX
1790 / 799 / 313
Регистрация: 06.06.2017
Сообщений: 2,890
04.08.2018, 08:44 32
Не особо. Я задал два вопроса. Не могу понять, на какой из них отвечено и отвечено ли вообще.

Плюс к ним: "другой программе с поддержкой технологии WSH" — это не про wscript/cscript? А про что? Не о скрипте речь?
0
Eskander88
11 / 12 / 2
Регистрация: 02.11.2015
Сообщений: 204
04.08.2018, 08:59 33
а вы можете ответить на такой вопрос: что написать в bat-файле по пути C:\file.bat (можно .vbs ), чтобы можно было выполнить произвольные bat-инструкции в режиме "от имени Администратора"?

При условии, что этот файл будет открываться автоматически другой программой путём генерации команды к оболочке системы. Эти события создаваемые программой полностью эквивалентны набронному
Bash
1
cmd.exe /k C:\file.bat
0
FlasherX
1790 / 799 / 313
Регистрация: 06.06.2017
Сообщений: 2,890
04.08.2018, 09:19 34
Варианты записей из bat разобраны на первой странице.
А что касаемо ярлыка, то стоило перед путём к батнику %ComSpec% /c прописать.
Цитата Сообщение от Eskander88 Посмотреть сообщение
этот файл будет открываться автоматически другой программой путём генерации команды к оболочке системы
Тогда запускайте эту программу тоже от админа.
1
Eskander88
11 / 12 / 2
Регистрация: 02.11.2015
Сообщений: 204
04.08.2018, 09:58 35
здорово когда тебя понимают.. а про элевацию в начале через JS/VBS сценарии тоже смотрел, но там не разобрался и есть сложности с подстановкой своих bat-команд
0
Dragokas
Эксперт WindowsАвтор FAQ
17103 / 7158 / 861
Регистрация: 25.12.2011
Сообщений: 10,954
Записей в блоге: 16
08.08.2018, 17:30  [ТС] 36
Цитата Сообщение от Eskander88 Посмотреть сообщение
что написать в bat-файле по пути C:\file.bat (можно .vbs ), чтобы можно было выполнить произвольные bat-инструкции в режиме "от имени Администратора"?
Это можно сделать с помощью задания. Только у вас будут весьма большие ограничения:
- нельзя синхронизировать процессы
- нельзя наследовать переменные среды (хотя вы сможете передать аргумент для команды)
- нельзя получить код возврата

Если вам такое подходит:

Создаёте новую папку, работаете в ней:
- создаёте и запускаете с админ. полномочиями такой батник:
Windows Batch file
1
schtasks.exe /create /tn "AdminHost" /SC ONCE /ST 00:00 /F /RL HIGHEST /tr "\"%~dp0AdminHost.cmd\" $(Arg0)"
- создаёте батник AdminHost.cmd с таким содержанием:
Windows Batch file
1
2
3
@echo off
SetLocal EnableExtensions
%*
(можно добавить в конец pause)
- создаёте admin.vbs с таким содержимым:
Visual Basic
1
2
3
4
5
6
7
8
For i = 0 to WScript.Arguments.Count - 1
    strCom = strCom & " " & WScript.Arguments(i)
Next
set TaskScheduler = CreateObject("Schedule.Service")
TaskScheduler.Connect()
set ScheduledTaskFolder = TaskScheduler.GetFolder("\")
set ScheduledTask = ScheduledTaskFolder.GetTask("AdminHost")
call ScheduledTask.Run(strCom)
- создайте рабочий батник Work.cmd, например, с таким содержимым:
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
 
:: Run user-level command
whoami /priv
 
:: Rum admin-level command
cscript.exe admin.vbs whoami /priv
 
pause
и запустите его.
1
Proffessional
Особый статус
696 / 144 / 5
Регистрация: 16.07.2009
Сообщений: 2,131
Записей в блоге: 1
12.02.2019, 23:21 37
Цитата Сообщение от Dragokas Посмотреть сообщение
Через JScript-вставку без создания вспомогательного файла:
А можно для непрошаренных объяснить как оно работает? Батники знаю, а JScrips хз
0
jester7
1 / 1 / 1
Регистрация: 13.02.2012
Сообщений: 43
27.06.2019, 12:55 38
Всем привет.
У меня подобная задача, которую я до сих пор не смог разрулить.
У меня виндовс 7.
Есть Админская учетка: admin pas=1234
Есть Юзерская учетка: user без пароля.
Вход автоматом в юзерскую.

Ползунок ограничения прав юзеру стоит на максимуме (вверху).
Если юзер что-то хочет установить или создать ЗАДАЧУ и т.д., ему нужно запускать приложение "ОТ ИМЕНИ АДМИНИСТРАТОРА"
Тоесть с повышенными правами.
Например находясь в аккаунте ЮЗЕРА для создания ЗАДАЧИ в планировщике нам нужно:
1. запустить CMD от "ОТ ИМЕНИ АДМИНИСТРАТОРА" - это правой кнопкой мышки.
2. затем в этой консоли можно творить чудеса и создавать ЗАДАЧИ и прочее.

Но если мы запустим просто CMD и в нем создадим окно CMD от имени админа: echo 1234|RUNAS /netonly /user:admin cmd
-- это нам ничего не даст, тут нет повышенных прав
я не смогу создать в планировщике задания для АДМИНА.
Я не смогу создать другого АДМИНА и т.д.
-------------------------------------------------------------
пробовал стороннюю утилиту: psexec.exe
d:\psexec.exe -u admin -p 1234 "d:\create_adm.bat"
- она так же не работает, потому как не достаточно прав. тоесть права нужно повысить, но как ????

Вобщем сам вопрос:
Как написать CMD или VBS чтоб в ЮЗЕРСКОЙ учетке я его запустил и этот скрипт смог мне создать ЗАДАНИЕ в планировщике от имени АДМИНА или СИСТЕМЫ ? либо Создал бы мне новую АДМИНСКУЮ УЧЕТКУ, которую я хочу сделать для всех тачек своей сети одинаковой на будущее.
Есть ли такая возможность в виндовсе ?
0
jester7
1 / 1 / 1
Регистрация: 13.02.2012
Сообщений: 43
27.06.2019, 13:01 39
Вот такое окно имеет повышенные права
0
Миниатюры
Запуск скрипта с повышенными привилегиями [руководство]  
artem78
6 / 6 / 2
Регистрация: 20.12.2012
Сообщений: 484
Завершенные тесты: 1
05.07.2019, 19:24 40
Здравствуйте.
Не подскажете, как в Windows XP получить привелегии для операций с реестром в BAT файле?
Запуск скрипта с повышенными привилегиями [руководство]


Когда вручную делаю через regedit, то достаточно установить права в окне "Разрешения", а как это в батнике сделать?
Запуск скрипта с повышенными привилегиями [руководство]
0
05.07.2019, 19:24
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2019, 19:24

Запуск скрипта с правами администратора для юзера
Всем привет. Нужна помощь. Имеются два небольших скрипта: один включает автоматическую установку ip...

Запуск скрипта с привилегиями администратора
Здравствуйте. Создал службу windows 10. Она должна запускать скрипт Powershell. Но что-то не...

Почему эта программа запускается с повышенными привилегиями?
Ресурса #24 нет, слой совместимости тоже не прописан, так откуда тогда знак щита? Как это у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.