
Любой пользователь Windows может запустить программу в своем текущем сеансе от имени другого пользователя с помощью RunAs. Это позволяет запустить сценарий (.bat, .cmd, .vbs, .ps1), исполняемый файл .exe или установить приложение (.msi, .cab) с правами другого пользователя.
Например, вы можете использовать RunAs для установки приложений или запуска оснасток MMC под учетной записью администратора в сеансе пользователя без привилегий. Также можно использовать RunAs для запуска приложения, настроенного в профиле другого пользователя (приложение будет загружать свои настройки из профиля другого пользователя).
Существует несколько способов запустить программу или процесс от имени другого пользователя в Windows.
- Как запускать приложения от имени другого пользователя из проводника файлов
- Команда RunAs: Запуск программы под другим пользователем из CMD
- Использование RunAs в PowerShell
- Как использовать RunAs без запроса пароля?
- Как создать ярлык для запуска от имени другого пользователя
- Опция “Запуск от имени другого пользователя” отсутствует в Windows
- Добавьте опцию “Запуск от имени” в меню “Пуск” в Windows 10
The Вторичный вход в систему служба (seclogon
) отвечает за возможность запуска программ от имени разных пользователей в Windows. Если эта служба остановлена, все описанные методы RunAs не будут работать. Проверить, что служба запущена, можно с помощью следующей команды PowerShell:
Get-Service seclogon
Как запускать приложения от имени другого пользователя из проводника файлов
Самый простой способ запустить приложение от имени другого пользователя – использовать графический интерфейс Windows File Explorer. Просто найдите приложение (или ярлык), которое вы хотите запустить, удерживайте кнопку Shift и щелкните на нем правой кнопкой мыши. Выберите Запустить от имени другого пользователя в контекстном меню.
В появившемся окне Безопасность Windows необходимо указать имя и пароль пользователя, под учетной записью которого вы хотите запустить приложение, и нажать кнопку OK.
- Если вы хотите запустить программу от имени пользователя Active Directory, вы должны указать его имя в поле userPrincipalName (
[email protected]
) или samAccountName (DomainName\UserName
) формат ; - Если ваш компьютер подключен к домену AD, то для запуска программы от имени локальной учетной записи пользователя укажите ее имя в следующем формате:
.\localusername
.
Откройте диспетчер задач и убедитесь, что программа запущена под указанной учетной записью пользователя.
Команда RunAs: Запуск программы от имени пользователя, отличного от CMD
Вы можете использовать встроенную в Windows runas.exe CLI-инструмент для запуска приложений от имени другого пользователя из командной строки. Сайт runas
также позволяет сохранить пароль пользователя в диспетчере учетных данных Windows, чтобы не вводить его каждый раз.
Откройте командную строку (или Выполнить окно, нажав Win+R). Чтобы запустить Notepad.exe под учетной записью администратора, выполните эту команду:
runas /user:admin "C:\Windows\notepad.exe"
runas /user:"antony jr" notepad.exe
В следующем окне появится приглашение “Введите пароль для admin”, в котором нужно ввести пароль пользователя и нажать Enter.
Ваше приложение должно запуститься. В моем случае это cmd.exe. В заголовке окна написано “запущено от имени PCName\username“:
Например, вы можете открыть панель управления под другим пользователем:
runas /user:admin control
Если вам нужно запустить программу от имени пользователя домена, используйте следующий формат имени UserName@DomainName
или DomainName\UserName
. Например, чтобы открыть текстовый файл с помощью блокнота от имени учетной записи пользователя домена, выполните команду:
runas /user:corp\server_admin "C:\Windows\system32\notepad.exe C:\ps\region.txt"
Enter the password for corp\server_admin: Attempting to start C:\Windows\system32\notepad.exe C:\ps\region.txt as user "corp\server_admin " ...
RUNAS ERROR: Unable to run - yourcommand 1326: The user name or password is incorrect.
или
RUNAS ERROR: Unable to acquire user password
Иногда вам нужно запустить программу от имени пользователя домена с компьютера, который не подключен к домену Active Directory. В этом случае необходимо использовать следующую команду (предполагается, что DNS-сервер, который может разрешить этот домен, указан в сетевых настройках вашего компьютера):
runas /netonly /user:contoso\bmorgan cmd.exe
Если вы не хотите загружать профиль пользователя при запуске программы от имени другого пользователя, используйте команду /noprofile параметр. В этом случае приложение запускается гораздо быстрее, но может вызвать некорректную работу программ, хранящих данные в профиле пользователя.
Использование RunAs в PowerShell
Если вам нужно запустить программы/процессы от имени другого пользователя из сценариев PowerShell, вы можете использовать функцию Start-Process команда Start Process. Сначала нужно получить учетные данные пользователя:
$Cred = (Get-Credential)
Чтобы запустить процесс, команду или приложение от имени другого пользователя, можно воспользоваться командой PowerShell:
Start-Process -FilePath "powershell.exe" -Credential $Cred
Или можно получить учетные данные пользователя в интерактивном режиме через приглашение Windows Security:
# Run as Administrator
Start-Process -FilePath "powershell.exe" -Verb RunAs
# Run as from another user
Start-Process -FilePath "powershell.exe" -Verb RunAsUser
Если вам нужно запустить программу от имени администратора в повышенном режиме (по умолчанию UAC запускает программу в пользовательском контексте без повышенного уровня), вы можете использовать следующую команду PowerShell:
Start-Process powershell -Credential woshub\jsmith -ArgumentList '-noprofile -command &{Start-Process "cmd.exe" -verb runas}'
Или сторонний инструмент ShelExec:
ShelExec /Verb:runas cmd.exe
Как использовать RunAs без запроса пароля?
Вы можете сохранить введенные учетные данные пользователя (с паролем).[/savecred
используется для этого.
runas /user:admin /savecred “C:\Windows\cmd.exe”
После указания пароля он будет сохранен в файле Диспетчер учетных данных Windows.
В следующий раз, когда вы запустите команду runas под тем же пользователем с параметром /savecred
, Windows автоматически использует сохраненный пароль из диспетчера учетных данных, не предлагая ввести его снова.
Чтобы отобразить список сохраненных учетных данных в диспетчере учетных данных, выполните следующую команду:
rundll32.exe keymgr.dll, KRShowKeyMgr
Однако небезопасно использовать /savecred
параметр. Пользователь, в профиле которого сохранен чужой пароль, может использовать его, чтобы выполнить любое приложение или команду под этими привилегиями или даже изменить пароль другого пользователя. Кроме того, пароли, сохраненные в диспетчере учетных данных, легко украсть, поэтому рекомендуется запретить Windows сохранять пароли (и никогда не сохранять пароли привилегированных административных учетных записей).
Вы можете использовать команду RunAs для запуска оснасток mmc от имени другого пользователя. Например, если вы хотите запустить оснастку Active Directory Users and Computers (из набора инструментов администрирования RSAT) от имени другого пользователя, вы можете использовать эту команду:
runas.exe /user:DOMAIN\USER "cmd /c start \"\" mmc %SystemRoot%\system32\dsa.msc"
Таким же образом можно запустить любую другую оснастку (если вы знаете ее название).
Как создать ярлык для запуска от имени другого пользователя
Вы можете создать ярлык на рабочем столе, который позволит запускать программу от имени другого пользователя. Просто создайте новый ярлык и укажите runas
с необходимыми параметрами в поле Расположение:
runas /user:admin “C:\Windows\notepad.exe”
При запуске такого ярлыка вам будет предложено ввести пароль пользователя.
Если вы дополнительно добавите /savecred
параметр в runas
ярлыка, то пароль будет запрашиваться только один раз. Пароль будет сохранен в Credential Manager и автоматически использован при запуске ярлыка от имени другого пользователя без запроса пароля.
Такие ярлыки довольно часто используются для запуска программ, для работы которых требуются повышенные разрешения. Однако есть и более безопасные способы запустить программу без прав администратора или отключить приглашение UAC для конкретного приложения.
Опция “Запуск от имени другого пользователя” отсутствует в Windows
Если опция “Запуск от имени другого пользователя” отсутствует в контекстном меню приложения в File Explorer, необходимо проверить значения двух параметров реестра Windows.
В Windows можно скрыть или показать пункт меню RunAs в File Explorer с помощью двух параметров реестра:
- [HideRunAsVerb параметр (REG_DWORD) в ключе реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer (1 – скрыть элемент RunAs, 0 – показать);
- EnableSecureCredentialPrompting (REG_DWORD) в разделе HKLM\ Software\Microsoft\Windows\CurrentVersion\Policies\CredUI (1 – скрыть, 0 – показать).
Если Windows не отображает опцию меню правой кнопки мыши “Запуск от имени другого пользователя”, проверьте значения этих параметров реестра и измените их на 0. В доменной среде вы можете установить эти параметры реестра на компьютеры с помощью привилегий групповой политики.
Параметр EnableSecureCredentialPrompting соответствует отдельной опции GPO. Откройте редактор локальной групповой политики (gpedit.msc
) и убедитесь, что параметр Требование доверенного пути для ввода учетных данных политика отключена (или не настроена) в Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных.
Добавьте опцию “Запустить как” в меню “Пуск” в Windows 10
По умолчанию элементы меню “Пуск” в Windows не имеют опции “Запуск от имени”. Чтобы добавить опцию “Запуск от имени другого пользователя”, включите опцию “Показывать команду “Запуск от имени другого пользователя” в “Пуске””. политика в Конфигурация пользователя -> Административные шаблоны ->Меню “Пуск” и панель задач раздел редактора локальной групповой политики (gpedit.msc
).
Или, если gpedit.msc отсутствует, создайте новый параметр DWORD с именем ShowRunasDifferentuserinStart и значение 1 под ключом реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Explorer. Для добавления параметра реестра можно использовать следующую команду PowerShell:
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\CurrentVersion\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
Обновите параметры групповой политики (gpupdate /force
) и убедитесь, что новое контекстное меню Подробнее -> Запуск от имени другого пользователя появилась для программ в меню Пуск.
Опция “Запустить от имени другого пользователя” отсутствует в контекстном меню приложений Universal Windows Platform (UWP, Microsoft Store). Вы можете запустить приложение UWP от имени другого пользователя из командной строки с помощью runas.exe.
Список приложений Microsoft Store на компьютере с помощью PowerShell:
Get-AppxPackage|select Name
Можно найти конкретное приложение:
Get-AppxPackage|where {$_.Name -like '*teams*'} |select Name
Найдите в списке название нужного приложения. Например, чтобы запустить встроенный клиент Microsoft Teams Chat от имени другого пользователя, выполните следующие действия:
runas /user:user1 "explorer.exe MicrosoftTeams:"