Как создать cmd скрипт от имени администратора на запуск программы

У меня есть небольшой скрипт, который выполняет процесс сборки и установки в Windows для Базар репозиторий, которым я управляю. Я пытаюсь запустить скрипт с повышенными правами администратора из в оболочке Windows (cmd.exe) — так же, как если бы я щелкнул ее правой кнопкой мыши и выбрал Запуск от имени администратора, но без использования каких-либо методов, требующих использования графического интерфейса.

задан 09 мая ’11, 22:05

Чтобы запускать команды от имени администратора, я сделал sudo -подобный инструмент для Windows, доступный в виде пакета Chocolatey: stackoverflow.com/a/54642324/1768303 — noseratio

9 ответы

Гибрид пакетной обработки/WSH может вызывать ShellExecute для отображения диалогового окна повышения прав UAC.

ответ дан 11 мая ’11, 20:05

Я думаю, что ранние версии NT использовали недокументированный флаг в STARTUPINFO для установки значка в консоли, но поддержка этого умерла в NT4 или NT5. Если у вас уже есть своя программа, почему вы не можете выполнить проверку администратора там? Файлы .pif, вероятно, все еще могут устанавливать значок, но я не знаю, поддерживаются ли файлы .pif в 64-битной Windows. — Андерс

Как создать bat файл в Windows

Нажмите кнопку запуска. В поле поиска введите «cmd», затем нажмите Ctrl + Shift + Enter

ответ дан 23 окт ’15, 08:10

не то, что спросил оп, но в любом случае — хорошо знать этот ярлык! — Благодарность — исполняемый

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

runas /user:Administrator «cmdName parameters»

В моем случае это было

runas /user:Administator «cmd.exe /C %CD%installer.cmd %CD%»

Обратите внимание, что вы должны использовать кавычки, иначе команда runas сожрет параметр переключения на cmd.

Также обратите внимание, что административная оболочка (cmd.exe) запускается в папке C:WindowsSystem32. Это не то, что я хотел, но было достаточно просто передать текущий путь к моему установщику и сослаться на него, используя абсолютный путь.

Читайте также:
Программа для исправления 3д модели

Предостережение: включите учетную запись администратора

Использование runas таким образом требует включения учетной записи администратора, которая не используется по умолчанию в Windows 7 или Vista. Однако, здесь отличный учебник о том, как включить его тремя различными способами:

Я сам включил его, открыв Администрирование, Локальная политика безопасности, затем перейдите к Локальные политикиПараметры безопасности и изменяя значение Учетные записи: статус административной учетной записи политику на «Включено», что не является ни одним из трех способов, показанных в ссылке.

Еще более простой способ:

C:> net user Administrator /active:yes

ответ дан 11 мая ’18, 20:05

Есть ли способ работать от имени другого пользователя (с правами администратора), а не от имени администратора? Это очень важно для нас с рабочими компьютерами. — еж

Запуск приложений в Windows 7 от имени администратора

Я так себе представляю. Попробуйте и посмотрите, работает ли это. Но IDK, какие конкретные разрешения потребуются пользователю для запуска определенной команды или для получения «статуса администратора» в целом. — Джейпо

Это работает, но это не совсем похоже на Linux. Я заметил икоту во время его использования. Также сначала есть примерно 5-секундная пауза перед выполнением команды. Используйте его по своему усмотрению. — KeyC0de

Вы правы насчет икоты! Некоторые программы не будут работать с повышенными привилегиями, если оболочка ( explorer.exe ) также работает от имени администратора. (Например: control.exe .) Однако для моей первоначальной цели (бесшовная установка) ответ Андера гораздо лучше подходит. — Джейпо

Для демонстрации: self-elevating.bat «путь с пробелами» arg2 3 4 «еще один длинный аргумент»

И это еще одна версия, которая не требует создания временного файла.

Источник: stackovergo.com

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

У меня есть небольшой скрипт, который выполняет процесс сборки и установки в Windows для базар репозитории я управляющий. Я пытаюсь запустить скрипт с повышенными правами администратора из внутри оболочка Windows (cmd.ехе) — так же, как если бы я щелкнул правой кнопкой и выбрал Запуск от имени администратора, но без использования какого-либо метода, требующего использования графического интерфейса.

Читайте также:
Как открыть 1 программу 2 раза на компе

автор: Peter Mortensen

8 ответов

пакетный гибрид/WSH может вызывать ShellExecute для отображения диалога высот UAC.

автор: Anders

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

runas /user:Administrator «cmdName parameters»

в моем случае, это был

runas /user:Administator «cmd.exe /C %CD%installer.cmd %CD%»

обратите внимание, что вы должны использовать кавычки, иначе команда runas сожрет параметр switch в cmd.

также обратите внимание, что административная оболочка (cmd.exe) запускается в C:WindowsSystem32 папка. Это не то, что я хотел, но было достаточно легко пройти по текущему пути к моему установщику, и ссылаться на него, используя абсолютный путь.

внимание: включить учетную запись администратора

использование runas таким образом требует, чтобы учетная запись администратора была включена, что не является значением по умолчанию для Windows 7 или Vista. Однако,здесь это отличный учебник о том, как включить его, тремя различными способами:

Я сам включил его, открыв Администрирование, Локальная Политика Безопасности, затем перейдя к местные ПолитикиПараметры Безопасности и меняем значение Учетные Записи: Состояние Учетной Записи Администратора политика включена, что ни один из трех способов, показанных в ссылке.

еще более простой способ:

C:> net user Administrator /active:yes
автор: jpaugh

Нажмите кнопку «Пуск». В поле поиска введите «cmd» и нажмите клавишу Ctrl + Shift + Enter

автор: slashdottir

для демонстрации: self-elevating.bat «путь с пробелами» arg2 3 4 «Еще один длинный аргумент»

и это еще одна версия, которая не требует создания временного файла.

автор: Amr Ali

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

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

Читайте также:
Продолжите фразу выбрав правильный ответ неправильная запись в программе это

автор: Kate Gregory

Я нашел это. Просто поставьте все это перед своим кодом, и он отлично работает.

REM —> Check for permissions >nul 2>%SYSTEMROOT%system32cacls.exe» «%SYSTEMROOT%system32configsystem» REM —> If error flag set, we do not have admin. if ‘%errorlevel%’ NEQ ‘0’ ( echo Requesting administrative privileges. goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^(«Shell.Application»^) > «%temp%getadmin.vbs» echo UAC.ShellExecute «%~s0», «», «», «runas», 1 >> «%temp%getadmin.vbs» «%temp%getadmin.vbs» exit /B :gotAdmin if exist «%temp%getadmin.vbs» ( del «%temp%getadmin.vbs» ) pushd «%CD%» CD /D «%~dp0» :—————————————
автор: Kapanther

простой трюк трубы, || , С некоторых .vbs используется в верхней части вашей партии. Он выйдет из regular и перезапустится как администратор.

кроме del /Q темп.vbs, когда он закончит использовать его.

автор: strance

обзор C:windowsSystem32 и щелкните правой кнопкой мыши на cmd.exe и запуск от имени администратора. Работал на меня в Windows 7.

Если вы пытаетесь запустить сценарий с повышенными привилегиями, вы можете сделать то же самое для файла сценария или использовать запуск планировщика как другой пользовательский параметр для запуска сценария.

Источник: askdev.ru

Запуск cmd.exe от имени SYSTEM

Иногда требуется запустить какой-либо процесс или скрипт от имени системной учетной записи. Сделать это можно из cmd.exe, а вот чтобы запустить cmd.exe под SYSTEM, можно воспользоваться вот таким не сложным батничком:

1: sc create RunAsSystemSvc binpath= «cmd /K start» type= own type= interact
2: sc start RunAsSystemSvc
3: sc delete RunAsSystemSvc

Обратите внимание на пробелы в параметрах. Кроме этого, выполнение строки 2 выдаст ошибку, но это нормально.

Под Windows Server 2003 данный батник работает без проблем. А вот под Windows 7 есть нюансы. Во первых, его необходимо запускать с повышенными привелегиями (Run as administrator). Кроме этого, после запуска появится предложение переключить экран на просмотр собщения от окна:

image

Необходимо нажать View the message, и экран будет переключен на окно cmd, запущенного под учетной записью SYSTEM. После выполнения всех действий необходимо выйти из консоли cmd (команда exit), а затем нажать кнопку Return Now.

Источник: freemanru.wordpress.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru