Запуск от имени администратора windows 10 runas

Как в Windows запустить программу от имени другого пользователя с помощью контекстного меню и утилиты runas. Создаем ярлык runas для запуска программ с правами

Любой пользователь Windows может запустить в своей сессии программу от имени другого пользователя с помощью Run As. Благодаря этому вы можете выполнить скрипт (.bat, .cmd, .vbs, .ps1), запустить исполняемый .exe файл или установку приложения (.msi, .cab) с полномочиями другого пользователя.

Например, вы можете использовать RunAs для установки программ или запуска программ/скриптов/MMC оснасток с правами администратора непосредственно в сессии обычного непривилегированного пользователя. Также через RunAs вы можете запустить приложение, настроенное в профиле другого пользователя (приложение загрузится с настройки из профиля другого пользователя).

За возможность запуска программ от имени другого пользователя в Windows отвечает служба Вторичный вход в систему (Secondary Log-on). Если эта служба остановлена, тогда все описанные методы runas работать не будут. Вы можете проверить, что служба запущена с помощью следующей команды PowerShell:

Get-Service seclogon

windows - служба вторичного входа в систему нужна для запуска от имени

В Windows есть несколько способов запустить программу или процесс от имени другого пользователя.

Содержание:

  • Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)
  • Команда Runas: запуск программ от имени из командной строки
  • Использование RunAs в PowerShell
  • Запуск программ от имени другого пользователя без ввода пароля
  • Ярлык с запуском программы от имени другого пользователя
  • В проводнике Windows отсутствует пункт “Запуск от имени другого пользователя”
  • Как добавить пункт “Запуск от имени” для программ в меню Пуск?

Запуск программы от имени другого пользователя из Проводника Windows (File Explorer)

Самый простой способ запустить программу из-под другого пользователя – воспользоваться графическим интерфейсом Проводника Windows (File Explorer). Просто найдите нужно приложение (или ярлык), зажмите клавишу Shift и щелкните по нему правой кнопкой мыши. Выберите пункт контекстного меню «Запуск от имени другого пользователя» (Run as different user).

Примечание. Если пункт меню «Запуск от имени другого пользователя» отсутствует, см. следующий раздел.

Запуск от имени другого пользователя - конекстное меню

В появившемся окне Windows Security нужно указать имя и пароль пользователя, под чьей учетной записью нужно запустить программу и нажать кнопку ОК.

Примечание.

  • Если нужно запустить программу от имени пользователя Active Directory, нужно указать его имя в формате userPrincipalName (
    [email protected]
    ) или samAccountName (
    DomainNameUserName
    );
  • Если ваш компьютер добавлен в домен AD, то для запуска программы от имени локальной учетной записи пользователя ее имя нужно указать в формате:
    .localusername
    .

runas different user

Важно. Вы можете запустить программу от имени другого пользователя только, если для него задан пароль. Использовать Runas для пользователя с пустым паролем не получится.

Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.

диспетчер задач windows видит, что процесс запущен от имени другого пользователя

Команда Runas: запуск программ от имени из командной строки

В Windows есть консольная утилита runas.exe, которую можно использовать для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.

Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи administrator выполните команду:

runas /user:administrator “C:Windowscmd.exe”

Совет. Если имя пользователя содержит пробелы, его нужно взять в кавычки:

runas /user:”user test” notepad.exe

runas /user:admin

В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.

Введите пароль для admin

Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени
CompNameusername
:

cmd.exe заголовок запущено от другого имени

Можно, например, открыть панель управления под другим пользователем:

runas /user:admin control

Если нужно запустить программу от имени доменного пользователя, нужно использовать формат имени
[email protected]
или
DomainNameUserName
.

Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя server_admin домена CORP, используйте команду:

runas /user:corpserver_admin “C:Windowsnotepad.exe C:tmp2871997x64.txt”

команда runas в windows под доменным пользователем

Введите пароль для corpserver_admin:
Попытка запуска C:Windowsnotepad.exe C:tmp2871997x64.txt от имени пользователя "corpserver_admin" ...

Если указали несуществующее имя пользователя или неверный пароль, появится ошибка:

RUNAS ERROR: Unable to run - yourcommand
1326: The user name or password is incorrect.

Или

RUNAS ERROR: Unable to acquire user password

Иногда нужно запустить программу от имени доменного пользователя с компьютера, который не добавлен в домен AD. В этом случае нужно использовать такую команду (при условии, что в сетевых настройках вашего компьютера указан DNS сервер, который может отрезолвить этот домен):

runas /netonly /user:contosoaaivanov cmd.exe

Если для запуска программы от другого пользователя не нужно загружать его профиль, используйте параметр /noprofile. При этом приложение запускается намного быстрее, но может вызвать некорректную работу программ, которые хранят данные в профиле пользователя.

Использование RunAs в PowerShell

Если вам нужно запускать программы/процессы от имени другого пользователя из PowerShell, вы можете использовать командлет Start-Process (управление процессами с помощью PowerShell). Сначала нужно запросить учетную запись и пароль пользователя:

$Cred = (Get-Credential)

Для запуска процесса от имени другого пользователя можно использовать:

Start-Process -FilePath "powershell.exe" -Credential $Cred

Либо можно запросить учетную запись и пароль интерактивно через Windows Security:

# "Run as Administrator"
Start-Process -FilePath "powershell.exe" -Verb RunAs
# Run as от другого пользователя
Start-Process -FilePath "powershell.exe" -Verb RunAsUser

powershell запуск процесса от другого пользователя start-process

Если вам нужно запустить программу через runas от имени другого администратора в привилегированном режиме (по умолчанию UAC запускает программу в not-elevated пользовательском контексте), можно использовать такую команду PowerShell:

Start-Process powershell -Credential winitproadmin2 -ArgumentList '-noprofile -command &{Start-Process "cmd.exe" -verb runas}'

Или стороннюю утилиту ShelExec:

ShelExec /Verb:runas cmd.exe

Запуск программ от имени другого пользователя без ввода пароля

Вы можете сохранить пароль пользователя, который вы вводите. Для этого используется параметр /savecred.

runas /user:admin /savecred “C:Windowsnotepad.exe”

После указания пароля он сохранится в диспетчере паролей Windows.

сохраненные паролья runas в windows в диспетчере учетных данных

При следующем запуске команды runas под этим же пользователем с ключом
/savecred
Windows автоматически получит сохраненный пароль из Credential Manager, и не будет запрашивать его повторно.

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

RunDll32.exe keymgr.dll,KRShowKeyMgr

runas /user:admin /savecred - сохранние пароля в менеджере паролей

Однако использование параметра /savecred не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой команды под данными привилегиями, или даже сменить чужой пароль. Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).

Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.

Вы можете использовать команду RunAs для запуска mmc оснасток от имени другого пользователя. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.

runas.exe /user:winitprokbuldogov "cmd /c start mmc %SystemRoot%system32dsa.msc"

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

Ярлык с запуском программы от имени другого пользователя

Вы можете создать на рабочем столе ярлык для запуска программы от имени другого пользователя. Просто создайте новый ярлык, в окне с адресом объекта которого укажите команду
runas
с нужными параметрами:

runas /user:winitprokbuldogov  “C:Windowsnotepad.exe”

ялык рабочего стола для запуска программы от имени в windows

При запуске такого ярлыка будет запрашиваться пароль пользователя.

Если в ярлыке runas добавить параметр
/savecred
, то пароль будет запрошен только один раз. После этого пароль будет сохранен в Credential Manager и автоматически подставляться при запуске ярлыка от имени другого пользователя без запроса пароля.

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

В проводнике Windows отсутствует пункт “Запуск от имени другого пользователя”

Если в контекстном меню проводника Windows отсутствует пункт Запуск от имени другого пользователя (Run as different user), нужно проверить настройки двух параметров реестра Windows.

В Windows вы можете скрыть или показать в проводнике пункт меню RunAs с помощью двух параметров реестра:

  • Параметр HideRunAsVerb (тип REG_DWORD) в ветке реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorer (1 – скрыть пункт runas, 0 – показать)
  • Параметр EnableSecureCredentialPrompting (REG_DWORD) в HKLM SoftwareMicrosoftWindowsCurrentVersionPoliciesCredUI (1 – скрыть, 0 – показать)

Если в Windows не отображается пункт Run as different user, проверьте значения этих параметров реестра и измените их на 0. В доменной среде вы можете распространить значения этих параметров реестра на компьютеры с помощью Group Policy Preferences.

Второму параметру реестра соответствует отдельная опция GPO.

Этой опции GPO соответствует параметр EnableSecureCredentialPrompting в ветке реестра HKLM SoftwareMicrosoftWindowsCurrentVersionPoliciesCredUI. Откройте редактор локальных групповых политик (gpedit.msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry).

Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry) - политика

Как добавить пункт “Запуск от имени” для программ в меню Пуск?

По-умолчанию в Windows 10 у элементов меню Пуск (начального экрана) отсутствует возможность запуска приложений от имени другого пользователя. Чтобы добавить в контекстное меню пункт “Запуск от имени другого пользователя”, нужно включить политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show “Run as different user” command onStart) в разделе редактора групповых политик (консоль
gpedit.msc
) Конфигурация пользователя ->Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates -> Start Menu and Taskbar).

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

Либо, если редактор gpedit.msc отсутствует, создать в ветке реестра HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsExplorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.
New-ItemProperty -Path "HKCU:SoftwarePoliciesMicrosoftWindowsCurrentVersionExplorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force

ShowRunasDifferentuserinStart - реестр

Осталось обновить групповые политики (gpupdate /force) и убедиться, что у программ в меню Пуск появится новое контекстное меню Дополнительно -> Запуск от имени другого пользователя.

windows 11 run as different uzer в стартовом меню пуск

Пункт “запуск от имени” отсутствует у Universal Windows Platform (UWP) приложения из Microsoft Store. Вы можете запустить UWP приложение от другого пользователя из командной строки с помощью runas.exe.

Выведите список приложений Microsoft Store на компьютере с помощью PowerShell:

Get-AppxPackage|select Name

Можно найти конкретное приложение

Get-AppxPackage|where {$_.Name -like '*team*'} |select Name

Найдите имя нужного приложения в списке. Например, для запуска встроенного клиента Microsoft Teams Chat от другого пользователя, выполните:

runas /user:user1 "explorer.exe MicrosoftTeams:"

  • 01.11.2020
  • 10 354
  • 0
  • 2
  • 1
  • 1

RUNAS - описание команды и примеры использования

  • Содержание статьи
    • Описание
    • Синтаксис
    • Параметры
      • Примечания
    • Примеры использования
    • Справочная информация
    • Добавить комментарий

Описание

RUNAS — Запускает программы от имени другого пользователя.

Синтаксис

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:учетная_запись_пользователя program

Параметры

Параметр Описание
/profile Загружает профиль пользователя. Параметр /profile используется по умолчанию
/no profile Определяет, что профиль пользователя не надо загружать. Это позволяет загрузить приложение быстрее, но также может привести к сбоям в некоторых приложениях
/env Задает использование текущей сетевой среды вместо локальной среды пользователя
/netonly Показывает использование введенных сведений о пользователе только для удаленного доступа
/smartcard Определяет необходимость поддержки учетных данных с помощью смарт-карты
/showtrustlevels Выводит список параметров /trustlevel
/trustlevel Указывает уровень проверки подлинности, на котором необходимо выполнить приложение. Используйте параметр /showtrustlevels для просмотра доступных уровней доверия
/user:учетная_запись_пользователя Задает имя учетной записи пользователя, которая будет использована для запуска программы. Учетная запись пользователя должна быть представлена в формате пользователь@домен или доменпользователь
program Задает команду или программу, которая будет запущена с помощью учетной записи, указанной в параметре /user
/? Отображает справку в командной строке

Примечания

  • Администраторам рекомендуется использовать учетную запись с ограниченными разрешениями для выполнения повседневных задач, не связанных с администрированием, и учетную запись с более широкими правами только для выполнения отдельных административных задач. Чтобы реализовать такой подход без выхода из системы и повторного входа, войдите в систему с обычной учетной записью и используйте команду runas для запуска программ, требующих более широких прав.
  • Примеры использования команды runas см. по ссылке «».
  • Использование команды runas не ограничено административными учетными записями, хотя именно такой способ является наиболее употребительным. Любой пользователь с несколькими учетными записями может использовать runas для запуска программы, консоли MMC или компонента панели управления с другими личными данными.
  • Если необходимо использовать учетную запись администратора на своем компьютере, в качестве параметра /user: введите одно из следующих значений:/user:учетная_запись_администратора@имя_компьютера/user:имя_компьютераучетная_запись_администратора
  • Чтобы использовать данную команду в качестве администратора домена, введите одно из следующих значений параметра:/user:учетная_запись_администратора@имя_домена/user:имя_доменаучетная_запись_администратора
  • С помощью команды runas можно выполнять программы (*.exe), запускать сохраненные консоли MMC (*.msc), ярлыки программ и сохраненных консолей MMC и компоненты панели управления. Их можно запускать в качестве администратора, даже если вход в систему был произведен с учетной записью члена другой группы, например группы пользователей или опытных пользователей.
  • Можно использовать команду runas для запуска любой программы, консоли MMC или компонента панели управления. Поскольку указываются соответствующие сведения об имени пользователя и его пароле, учетная запись пользователя предоставляет возможность подключения к компьютеру, а программа, консоль MMC или компонент панели управления становятся доступными в системе для учетной записи пользователя.
  • Команда runas позволяет администрировать сервер в другом лесе (компьютер, с которого запускается программа, и сервер располагаются в разных доменах).
  • При попытке запуска программы, консоли MMC или компонента контрольной панели из сети с помощью runas выполнение может окончиться неудачей, поскольку личные сведения, использованные для подключения к сетевому ресурсу, могут отличаться от тех, что использованы при запуске программы. Личные сведения, использованные при запуске программы, могут не позволить получить доступ к тому же сетевому ресурсу.
  • Некоторые компоненты, например папка «Принтеры» и элементы рабочего стола, открываются косвенно. Эти компоненты не могут быть запущены командой runas.
  • Если выполнение команды runas заканчивается неудачей, может оказаться, что служба вторичного входа не запущена или используемая учетная запись пользователя недопустима. Чтобы проверить состояние службы вторичного входа, в компоненте «Управление компьютером» щелкните узел Службы и приложения, а затем — Службы. Чтобы проверить учетную запись пользователя, попытайтесь подключиться к соответствующему домену с помощью этой учетной записи.

Примеры использования

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

runas /user:имя_локального_компьютераadministrator cmd

После запроса введите пароль администратора.

Чтобы запустить экземпляр оснастки «Управление компьютером», используя учетную запись администратора домена companydomaindomainadmin, введите команду:

runas /user:companydomaindomainadmin "mmc %windir%system32compmgmt.msc"

После запроса введите пароль соответствующей учетной записи.

Чтобы запустить экземпляр блокнота, используя учетную запись администратора домена user в домене domain.microsoft.com, введите команду:

runas /user:user@domain.microsoft.com "notepad my_file.txt"

После запроса введите пароль соответствующей учетной записи.

Чтобы запустить экземпляр окна командной строки, сохраненную консоль MMC, компонент панели управления или программу, которая будет администрировать сервер в другом лесе, введите команду:

runas /netonly /user:доменимя_пользователя "команда"

В параметре доменимя_пользователя должен быть указан пользователь с разрешениями, достаточными для администрирования сервера. После запроса введите пароль соответствующей учетной записи.

Справочная информация

Как запустить программу от имени другого пользователяПо умолчанию программы в Windows запускаются от имени текущего пользователя, а при необходимости — с правами администратора. Однако, в некоторых случаях может потребоваться запуск какого-либо приложения от имени другого пользователя, с его сохраненными данными, но без входа в соответствующий аккаунт.

В этой простой инструкции подробно о том, как запустить какую-либо программу от имени другого пользователя Windows 11 или Windows 10 различными способами, если вдруг такая необходимость возникла. Также может быть полезным: запуск программ от имени администратора в Windows.

Простой запуск от имени другого пользователя

Самый простой и быстрый способ запустить программу от другого пользователя — использовать контекстное меню Windows 11/10, для этого достаточно:

  1. Удерживая клавишу Shift, нажать правой кнопкой мыши по ярлыку или исполняемому файлу программы.
  2. В контекстном меню выбрать пункт «Запуск от имени другого пользователя». Запуск от имени другого пользователя в контекстном меню
  3. Ввести имя другого пользователя и соответствующий этой учетной записи пароль. Ввод учетных данных для запуска от имени другого пользователя

На этом всё — программа будет запущена от имени выбранного пользователя, а если она содержит сохраненные данные для выбранной учетной записи, загружены будут и они.

В случае, если у вас нет ярлыка программы, а её месторасположение неизвестно, вы можете применить следующий подход: найти программу по имени через поиск в панели задач, нажать по найденному результату правой кнопкой мыши и выбрать пункт «Перейти к расположению файла», а уже затем использовать описанный ранее подход для запуска от другого пользователя.

Запуск программы или команды от имени другого пользователя в командной строке

Ещё один подход — использовать команду RUNAS в командной строке Windows. Также с помощью этой команды можно создать ярлыки для запуска приложений от других пользователей. Самый простой пример использования команды RUNAS:

  1. Откройте командную строку (сделать это можно, используя поиск в панели задач).
  2. Введите команду (если имя пользователя содержит пробелы, возьмите его в кавычки):
    runas /user:ИМЯ_пользователя "Полный путь к файлу программы и параметры запуска при необходимости"
  3. Введите пароль выбранной учетной записи пользователя, если он будет запрошен. Запуск от имени другого пользователя с помощью командной строки и RunAs

В результате программа будет запущена от имени указанного пользователя. Команда имеет и другие параметры, справку можно получить, введя runas без параметров в командной строке. Например, можно включить или отключить использование данных профиля пользователя, сохранить учетные данные с помощью параметра /savecred для того, чтобы при следующих запусках от имени выбранного пользователя ввод пароля не требовался.

Существуют и другие, иногда более функциональные решения для запуска программ или bat файлов от имени других пользователей, одно из самых известных — утилита PsExec, входящая в Microsoft Sysinternals Suite и позволяющая выполнить не только описанную задачу, но и множество других.

RUNAS — запуск программы под другой учетной записью

Описание команды RUNAS

Команда RUNAS запускает конкретные средства и программы с разрешениями, отличными от тех, которые предоставляет текущая учетная запись.

Синтаксис ключи команды RUNAS

runas [{/profile|/noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:учетная_запись_пользователя program

  • Описание команды RUNAS/profile — Загружает профиль пользователя. Параметр /profile используется по умолчанию.
  • /no profile — Определяет, что профиль пользователя не надо загружать. Это позволяет загрузить приложение быстрее, но также может привести к сбоям в некоторых приложениях.
  • /env — Задает использование текущей сетевой среды вместо локальной среды пользователя.
  • /netonly — Показывает использование введенных сведений о пользователе только для удаленного доступа.
  • /smartcard — Определяет необходимость поддержки учетных данных с помощью смарт-карты.
  • /showtrustlevels — Выводит список параметров /trustlevel.
  • /trustlevel — Указывает уровень проверки подлинности, на котором необходимо выполнить приложение. Используйте параметр /showtrustlevels для просмотра доступных уровней доверия.
  • /user:учетная_запись_пользователя — Задает имя учетной записи пользователя, которая будет использована для запуска программы. Учетная запись пользователя должна быть представлена в формате пользователь@домен или доменпользователь.
  • program — Задает команду или программу, которая будет запущена с помощью учетной записи, указанной в параметре /user.
  • /? — Отображает справку в командной строке.

Примеры команды RUNAS

  • Чтобы в качестве администратора на локальном компьютере запустить экземпляр интерпретатора командной строки , введите команду: runas /user:имя_локального_компьютераadministrator cmd
  • Чтобы запустить экземпляр оснастки «Управление компьютером», используя учетную запись администратора домена companydomaindomainadmin, введите команду: runas /user:companydomaindomainadmin «mmc %windir%system32compmgmt.msc»
  • Чтобы запустить экземпляр блокнота, используя учетную запись администратора домена user в домене domain.microsoft.com, введите команду: runas /user:Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
    «notepad my_file.txt»
  • Чтобы запустить экземпляр окна командной строки, сохраненную консоль MMC, компонент панели управления или программу, которая будет администрировать сервер в другом лесе, введите команду: runas /netonly /user:доменимя_пользователя «команда». В параметре доменимя_пользователя должен быть указан пользователь с разрешениями, достаточными для администрирования сервера. После запроса введите пароль соответствующей учетной записи.

Видео — Работа с утилитой RUNAS

I have this line inside my BAT file:

"Example1Server.exe"

I would like to execute this in Administrator mode. How to modify the bat code to run this as admin?

Is this correct? Do I need to put the quotes?

runas /user:Administrator invis.vbs Example1Server.exe

asked Jul 25, 2011 at 2:51

karikari's user avatar

karikarikarikari

6,53715 gold badges62 silver badges79 bronze badges

2

The other answer requires that you enter the Administrator account password. Also, running under an account in the Administrator Group is not the same as run as administrator see: UAC on Wikipedia

Windows 7 Instructions

In order to run as an Administrator, create a shortcut for the batch file.

  1. Right click the batch file and click copy
  2. Navigate to where you want the shortcut
  3. Right click the background of the directory
  4. Select Paste Shortcut

Then you can set the shortcut to run as administrator:

  1. Right click the shortcut
  2. Choose Properties
  3. In the Shortcut tab, click Advanced
  4. Select the checkbox «Run as administrator»
  5. Click OK, OK

Now when you double click the shortcut it will prompt you for UAC confirmation and then Run as administrator (which as I said above is different than running under an account in the Administrator Group)

Check the screenshot below

Screenshot

Note:
When you do so to Run As Administrator, the current directory (path) will not be same as the bat file. This can cause some problems in many cases that the bat file refer to relative files beside it. For example, in my Windows 7 the cur dir will be SYSTEM32 instead of bat file location!
To workaround it, you should use

cd "%~dp0"

or better

pushd "%~dp0"

to ensure cur dir is at the same path where the bat file is.

Danny Beckett's user avatar

Danny Beckett

20.1k23 gold badges106 silver badges134 bronze badges

answered Dec 11, 2012 at 0:08

Ed Greaves's user avatar

Ed GreavesEd Greaves

4,7472 gold badges21 silver badges19 bronze badges

11

You use runas to launch a program as a specific user:

runas /user:Administrator Example1Server.exe

answered Jul 25, 2011 at 2:54

Kerrek SB's user avatar

Kerrek SBKerrek SB

457k91 gold badges866 silver badges1074 bronze badges

7

Just add this to the top of your bat file:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%getadmin.vbs" del "%temp%getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%getadmin.vbs" && "%temp%getadmin.vbs" && exit /B )

It will elevate to admin and also stay in the correct directory. Tested on Windows 10.

answered Sep 26, 2018 at 12:24

Sire's user avatar

SireSire

4,0324 gold badges38 silver badges73 bronze badges

9

If you can use a third party utility, here is an elevate command line utility.

The source and binaries are available on GitHub.

This is the usage description:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog

answered Mar 17, 2013 at 14:14

aphoria's user avatar

aphoriaaphoria

19.5k7 gold badges63 silver badges73 bronze badges

1

You can use nircmd.exe’s elevate command

NirCmd Command Reference — elevate

elevate [Program] {Command-Line Parameters}

For Windows Vista/7/2008 only: Run a program with administrator rights. When the [Program] contains one or more space characters, you must put it in quotes.

Examples:

elevate notepad.exe 
elevate notepad.exe C:WindowsSystem32DriversetcHOSTS 
elevate "c:program filesmy softwareabc.exe"

PS: I use it on win 10 and it works

answered May 16, 2017 at 12:25

Dheeraj Bhaskar's user avatar

Dheeraj BhaskarDheeraj Bhaskar

18.4k9 gold badges63 silver badges66 bronze badges

go get github.com/mattn/sudo

Then

sudo Example1Server.exe

answered Jun 30, 2017 at 9:26

mattn's user avatar

mattnmattn

7,49329 silver badges54 bronze badges

convert your batch file into .exe with this tool: http://www.battoexeconverter.com/ then you can run it as administrator

answered Apr 5, 2013 at 14:56

xxedxx's user avatar

xxedxxxxedxx

671 silver badge1 bronze badge

3

  1. My experimenting indicates that the runas command must include the admin user’s domain (at least it does in my organization’s environmental setup):

    runas /user:AdminDomainAdminUserName ExampleScript.bat
    

    If you don’t already know the admin user’s domain, run an instance of Command Prompt as the admin user, and enter the following command:

    echo %userdomain%
    
  2. The answers provided by both Kerrek SB and Ed Greaves will execute the target file under the admin user but, if the file is a Command script (.bat file) or VB script (.vbs file) which attempts to operate on the normal-login user’s environment (such as changing registry entries), you may not get the desired results because the environment under which the script actually runs will be that of the admin user, not the normal-login user! For example, if the file is a script that operates on the registry’s HKEY_CURRENT_USER hive, the affected “current-user” will be the admin user, not the normal-login user.

answered May 29, 2019 at 15:47

pstraton's user avatar

pstratonpstraton

1,02014 silver badges9 bronze badges

When you use the /savecred argument, it asks for the password once, and than never asks for it again. Even if you put it onto another program, it will not ask for the password. Example for your question:

runas /user:Administrator /savecred Example1Server.exe

answered Jul 28, 2017 at 21:16

Anonymous's user avatar

AnonymousAnonymous

7314 gold badges15 silver badges35 bronze badges

0

I Tested @Sire’s answer on Windows 11, and it works like a charm. It’s worth mentioning that using cmd /k — as @Sire has used — will keep the Administrator CMD open after it finishes running. Using cmd /c instead will close the window when it’s over with the batch file.

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%getadmin.vbs" del "%temp%getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/c cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%getadmin.vbs" && "%temp%getadmin.vbs" && exit /B )

answered Feb 10, 2022 at 12:17

Achilles's user avatar

AchillesAchilles

1,5441 gold badge28 silver badges35 bronze badges

1

I found there is possible to use powershell. The powershell will show the default Windows UAC Dialog.

powershell Start -File Example1Server.exe -Verb RunAs

For execute BAT file with admin rights, the content of the BAT file can look as this:

@echo off
if "%1"=="runas" (
  cd %~dp0
  echo Hello from admin mode
  pause
) else (
  powershell Start -File "cmd '/K %~f0 runas'" -Verb RunAs
)

where:

  • %1 First input argument assigned to BAT file.
  • %~f0 expands to full path to the executed BAT file
  • %~dp0 expands to full directory path from where the BAT file is executed
  • cmd -C <commands> Execute command in terminal and close

answered Nov 1, 2021 at 8:25

Martin Vyskočil's user avatar

Use the complete physical drivepath to your Target batch file in the shortcut Properties.

This does not work in Windows 10 if you use subst drives like I tried to do at first…

answered Dec 9, 2018 at 9:51

Samiamias's user avatar

I have this line inside my BAT file:

"Example1Server.exe"

I would like to execute this in Administrator mode. How to modify the bat code to run this as admin?

Is this correct? Do I need to put the quotes?

runas /user:Administrator invis.vbs Example1Server.exe

asked Jul 25, 2011 at 2:51

karikari's user avatar

karikarikarikari

6,53715 gold badges62 silver badges79 bronze badges

2

The other answer requires that you enter the Administrator account password. Also, running under an account in the Administrator Group is not the same as run as administrator see: UAC on Wikipedia

Windows 7 Instructions

In order to run as an Administrator, create a shortcut for the batch file.

  1. Right click the batch file and click copy
  2. Navigate to where you want the shortcut
  3. Right click the background of the directory
  4. Select Paste Shortcut

Then you can set the shortcut to run as administrator:

  1. Right click the shortcut
  2. Choose Properties
  3. In the Shortcut tab, click Advanced
  4. Select the checkbox «Run as administrator»
  5. Click OK, OK

Now when you double click the shortcut it will prompt you for UAC confirmation and then Run as administrator (which as I said above is different than running under an account in the Administrator Group)

Check the screenshot below

Screenshot

Note:
When you do so to Run As Administrator, the current directory (path) will not be same as the bat file. This can cause some problems in many cases that the bat file refer to relative files beside it. For example, in my Windows 7 the cur dir will be SYSTEM32 instead of bat file location!
To workaround it, you should use

cd "%~dp0"

or better

pushd "%~dp0"

to ensure cur dir is at the same path where the bat file is.

Danny Beckett's user avatar

Danny Beckett

20.1k23 gold badges106 silver badges134 bronze badges

answered Dec 11, 2012 at 0:08

Ed Greaves's user avatar

Ed GreavesEd Greaves

4,7472 gold badges21 silver badges19 bronze badges

11

You use runas to launch a program as a specific user:

runas /user:Administrator Example1Server.exe

answered Jul 25, 2011 at 2:54

Kerrek SB's user avatar

Kerrek SBKerrek SB

457k91 gold badges866 silver badges1074 bronze badges

7

Just add this to the top of your bat file:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%getadmin.vbs" del "%temp%getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%getadmin.vbs" && "%temp%getadmin.vbs" && exit /B )

It will elevate to admin and also stay in the correct directory. Tested on Windows 10.

answered Sep 26, 2018 at 12:24

Sire's user avatar

SireSire

4,0324 gold badges38 silver badges73 bronze badges

9

If you can use a third party utility, here is an elevate command line utility.

The source and binaries are available on GitHub.

This is the usage description:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog

answered Mar 17, 2013 at 14:14

aphoria's user avatar

aphoriaaphoria

19.5k7 gold badges63 silver badges73 bronze badges

1

You can use nircmd.exe’s elevate command

NirCmd Command Reference — elevate

elevate [Program] {Command-Line Parameters}

For Windows Vista/7/2008 only: Run a program with administrator rights. When the [Program] contains one or more space characters, you must put it in quotes.

Examples:

elevate notepad.exe 
elevate notepad.exe C:WindowsSystem32DriversetcHOSTS 
elevate "c:program filesmy softwareabc.exe"

PS: I use it on win 10 and it works

answered May 16, 2017 at 12:25

Dheeraj Bhaskar's user avatar

Dheeraj BhaskarDheeraj Bhaskar

18.4k9 gold badges63 silver badges66 bronze badges

go get github.com/mattn/sudo

Then

sudo Example1Server.exe

answered Jun 30, 2017 at 9:26

mattn's user avatar

mattnmattn

7,49329 silver badges54 bronze badges

convert your batch file into .exe with this tool: http://www.battoexeconverter.com/ then you can run it as administrator

answered Apr 5, 2013 at 14:56

xxedxx's user avatar

xxedxxxxedxx

671 silver badge1 bronze badge

3

  1. My experimenting indicates that the runas command must include the admin user’s domain (at least it does in my organization’s environmental setup):

    runas /user:AdminDomainAdminUserName ExampleScript.bat
    

    If you don’t already know the admin user’s domain, run an instance of Command Prompt as the admin user, and enter the following command:

    echo %userdomain%
    
  2. The answers provided by both Kerrek SB and Ed Greaves will execute the target file under the admin user but, if the file is a Command script (.bat file) or VB script (.vbs file) which attempts to operate on the normal-login user’s environment (such as changing registry entries), you may not get the desired results because the environment under which the script actually runs will be that of the admin user, not the normal-login user! For example, if the file is a script that operates on the registry’s HKEY_CURRENT_USER hive, the affected “current-user” will be the admin user, not the normal-login user.

answered May 29, 2019 at 15:47

pstraton's user avatar

pstratonpstraton

1,02014 silver badges9 bronze badges

When you use the /savecred argument, it asks for the password once, and than never asks for it again. Even if you put it onto another program, it will not ask for the password. Example for your question:

runas /user:Administrator /savecred Example1Server.exe

answered Jul 28, 2017 at 21:16

Anonymous's user avatar

AnonymousAnonymous

7314 gold badges15 silver badges35 bronze badges

0

I Tested @Sire’s answer on Windows 11, and it works like a charm. It’s worth mentioning that using cmd /k — as @Sire has used — will keep the Administrator CMD open after it finishes running. Using cmd /c instead will close the window when it’s over with the batch file.

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%getadmin.vbs" del "%temp%getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/c cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%getadmin.vbs" && "%temp%getadmin.vbs" && exit /B )

answered Feb 10, 2022 at 12:17

Achilles's user avatar

AchillesAchilles

1,5441 gold badge28 silver badges35 bronze badges

1

I found there is possible to use powershell. The powershell will show the default Windows UAC Dialog.

powershell Start -File Example1Server.exe -Verb RunAs

For execute BAT file with admin rights, the content of the BAT file can look as this:

@echo off
if "%1"=="runas" (
  cd %~dp0
  echo Hello from admin mode
  pause
) else (
  powershell Start -File "cmd '/K %~f0 runas'" -Verb RunAs
)

where:

  • %1 First input argument assigned to BAT file.
  • %~f0 expands to full path to the executed BAT file
  • %~dp0 expands to full directory path from where the BAT file is executed
  • cmd -C <commands> Execute command in terminal and close

answered Nov 1, 2021 at 8:25

Martin Vyskočil's user avatar

Use the complete physical drivepath to your Target batch file in the shortcut Properties.

This does not work in Windows 10 if you use subst drives like I tried to do at first…

answered Dec 9, 2018 at 9:51

Samiamias's user avatar

Стандартные пользователи не могут запускать программу с правами администратора. Все программы, работающие на компьютере с Windows, должны иметь доступ к административным привилегиям, и, к сожалению, стандартные пользователи не имеют прав администратора по умолчанию. Могут быть случаи, когда обычному пользователю могут часто требоваться права администратора. В этом случае необходима постоянная установка, позволяющая обычным пользователям запускать программу с правами администратора.

Когда стандартным пользователям нужны права администратора?

Когда вы являетесь стандартным пользователем Windows, вам потребуются права администратора для выполнения многих основных задач, таких как установка нового программного обеспечения, доступ к реестру или групповой политике и т. д. Поэтому, если вы хотите запустить несколько программ в Windows, права администратора должны не быть необходимым; однако, если вы собираетесь использовать свой компьютер для задач администратора, вам могут не понадобиться права администратора.

Как разрешить обычным пользователям запускать программу с правами администратора

В настройках безопасности на ПК с Windows часто по умолчанию включены права администратора. Это имеет смысл, поскольку большинству обычных пользователей не нужны права администратора. Однако многие обычные пользователи Windows столкнутся с этой проблемой, поскольку приведенные ниже шаги покажут вам, как решить эту проблему.

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

  1. Используйте параметр «Запуск от имени администратора»
  2. Используйте планировщик заданий
  3. Используйте ярлык Каждый из этих методов подробно описан ниже.

Используйте тот, который лучше всего соответствует вашим потребностям.

1]Используйте параметр «Запуск от имени администратора»

Как разрешить обычным пользователям запускать программу с правами администратора

Если у вас есть программа, которую вам нужно запустить с правами администратора, вы можете использовать опцию «Запуск от имени администратора». Для этого щелкните правой кнопкой мыши значок программы и выберите «Запуск от имени администратора». Затем вам будет предложено ввести пароль администратора. Как только вы это сделаете, программа будет работать с администратором.

Хотя это самый простой способ, он также означает, что пользователям необходимо знать PIN-код или пароль учетной записи администратора. В большинстве случаев это не будет идеальным, если администратор не сможет достаточно доверять пользователям, чтобы они не злоупотребляли им.

2]Используйте планировщик заданий

Настройте запуск задачи от имени администратора для стандартных учетных записей.

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

  • Во-первых, пользователь должен открыть планировщик заданий, перейдя в меню «Пуск» и выполнив поиск «Планировщик заданий».
  • В планировщике заданий пользователь должен щелкнуть «Создать задание» на правой панели.
  • Откроется новое окно под названием «Создать задачу». Здесь назовите задачу и задайте ее запуск независимо от того, вошел ли пользователь в систему или нет. Им также следует установить флажок «Выполнять с наивысшими привилегиями».
  • Нажмите «Изменить пользователя или группу» и выберите учетную запись пользователя, для которой вы хотите запустить задачу.
  • На вкладке «Триггеры» пользователь должен нажать «Создать» и настроить выполнение задачи в определенное время или с определенным интервалом.
  • Обязательно заполните остальные данные, чтобы задача выполнялась должным образом.

Он должен быть создан пользователями-администраторами и позволять нам работать в стандартной учетной записи пользователя.

3]Используйте ярлык

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

Как разрешить обычным пользователям запускать программу с правами администратора

Выполните следующие действия, чтобы настроить ярлык с помощью команды RunAs. Он позволяет запускать что угодно с привилегиями другой учетной записи. Это лазейка, так как параметр /savecred может сохранить пароль при первом запуске. Опубликуйте это, это ничего не подскажет.

  • Нажмите клавишу Windows + R в учетной записи администратора, чтобы открыть диалоговое окно «Выполнить».
  • Откройте меню «Пуск» и найдите программу, для которой вы хотите создать ярлык.
  • Щелкните правой кнопкой мыши программу и выберите Создать ярлык.
  • Щелкните правой кнопкой мыши только что созданный ярлык и выберите «Свойства».
  • На вкладке «Ярлык» найдите поле «Цель» и добавьте следующее в начало расположения исполняемого файла.

runas /user:имя_компьютераимя_пользователя /savecred

  • Окончательный путь должен выглядеть так

runas /user:ИМЯ_ПКАдминистратор /savecred <Путь>Program.exe

  • Измените имя компьютера и имя пользователя соответственно.

Сохрани это. При этом вам будет предложено ввести учетные данные администратора один раз, и после того, как они будут введены, они будут сохранены в диспетчере учетных данных Windows, и их не нужно будет вводить снова. Приложение каждый раз будет запускаться с повышенными правами.

Теперь обычный пользователь сможет запустить программу с правами администратора, дважды щелкнув ярлык. Хотя это должно нормально работать с учетной записью Microsoft, лучше всего использовать для этого учетную запись локального администратора.

Что такое Runas Command?

Это команда для открытия любой программы с другой учетной записью пользователя. При использовании с параметром /savecred он указывает, сохранял ли ранее этот пользователь учетные данные. Следовательно, он также может запускать программу с учетной записью администратора.

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

Чтобы запустить программу от имени администратора в Windows 11/10:

  • Правая иконка программы или ярлык приложения
  • Откройте окно «Свойства».
  • Перейдите на вкладку «Совместимость».
  • Здесь выберите «Запустить эту программу от имени администратора».
  • Щелкните Применить > ОК. Это применит настройку только к текущему пользователю.
  • Но если вы хотите применить параметр «Всегда запускать от имени администратора» ко всем пользователям, нажмите «Изменить параметр для всех пользователей».
  • Это откроет другое диалоговое окно. Снова установите флажок «Выполнить эту программу от имени администратора».
  • Нажмите Применить/ОК.

Читать дальше: RunAsTool позволяет запускать программу от имени администратора без пароля.

Как разрешить обычным пользователям запускать программу с правами администратора

All you have to do is use the runas command to run your program as Administrator (with a caveat).

runas /user:Administrator "cmdName parameters"

In my case, this was

runas /user:Administrator "cmd.exe /C %CD%installer.cmd %CD%"

Note that you must use Quotation marks, else the runas command will gobble up the switch option to cmd.

Also note that the administrative shell (cmd.exe) starts up in the C:WindowsSystem32 folder. This isn’t what I wanted, but it was easy enough to pass in the current path to my installer, and to reference it using an absolute path.

Caveat: Enable the admin account

Using runas this way requires the administrative account to be enabled, which is not the default on Windows 7 or Vista. However, here is a great tutorial on how to enable it, in three different ways:

I myself enabled it by opening Administrative Tools, Local Security Policy, then navigating to Local PoliciesSecurity Options and changing the value of the Accounts: Administrative Account Status policy to Enabled, which is none of the three ways shown in the link.

An even easier way to accomplish this:

C:> net user Administrator /active:yes

Понравилась статья? Поделить с друзьями:
  • Запуск от имени system windows 10
  • Запуск портативных программ windows в linux
  • Запуск образа диска iso в windows 10
  • Запуск пользователя по умолчанию windows 10
  • Запуск поиска обновлений в командной строке windows 10