В Windows можно запускать программы, скрипты (.bat, .cmd, .vbs, .ps1), исполняемые файлы (.exe) или установочные пакеты (.msi, .cab) от имени другого пользователя с помощью функции RunAs. Это позволяет, например, выполнять задачи с правами администратора в сессии обычного пользователя или загружать приложение с настройками из профиля другого пользователя. В статье рассмотрим все способы запуска программ от имени другого пользователя, настройку и устранение проблем.
Проверка службы вторичного входа
Функция RunAs зависит от службы Вторичный вход в систему (Secondary Logon, seclogon). Если служба отключена, запуск программ от другого пользователя невозможен. Проверьте состояние службы через PowerShell:
Get-Service seclogon
Убедитесь, что служба запущена (статус Running). Если служба остановлена, включите её:
Start-Service seclogon
Запуск программы через проводник Windows
Самый простой способ — использовать контекстное меню в Проводнике Windows (File Explorer):
1. Найдите исполняемый файл или ярлык программы.
2. Удерживая клавишу Shift, щелкните правой кнопкой мыши.
3. Выберите Запуск от имени другого пользователя (Run as different user).
4. В окне Безопасность Windows (Windows Security) введите имя и пароль пользователя.
Для пользователей Active Directory укажите имя в формате:
— UserName@DomainName.com (userPrincipalName).
— DomainName\UserName (samAccountName).
Для локального пользователя используйте формат .\localusername.
Примечание: RunAs не работает для учетных записей без пароля.
Проверьте в Диспетчере задач (Task Manager), что процесс запущен под указанным пользователем (вкладка Подробности).
Запуск с помощью команды runas
Утилита runas.exe позволяет запускать программы от имени другого пользователя через командную строку или окно Выполнить (Win+R). Примеры:
1. Запуск Блокнота от имени администратора:
runas /user:administrator "C:\Windows\notepad.exe"
2. Для имени пользователя с пробелами используйте кавычки:
runas /user:"user test" notepad.exe
3. Запуск Панели управления:
runas /user:admin control
4. Открытие текстового файла от доменного пользователя:
runas /user:corp\server_admin "C:\Windows\notepad.exe C:\tmp\2871997x64.txt"
Введите пароль в появившемся окне.
Если имя или пароль неверны, появится ошибка:
RUNAS ERROR: Unable to run — yourcommand
1326: The user name or password is incorrect.
Для запуска с компьютера, не входящего в домен Active Directory, используйте параметр /netonly (при условии, что DNS-сервер резолвит домен):
runas /netonly /user:contoso\aaivanov cmd.exe
Для ускорения запуска без загрузки профиля пользователя добавьте параметр /noprofile (может повлиять на программы, зависящие от профиля):
runas /noprofile /user:admin notepad.exe
Сохранение пароля в Credential Manager
Чтобы не вводить пароль каждый раз, используйте параметр /savecred:
runas /user:admin /savecred "C:\Windows\notepad.exe"
Пароль сохраняется в Диспетчере учетных данных (Credential Manager).
При следующем запуске с /savecred пароль подставится автоматически.
Для просмотра сохраненных паролей:
RunDll32.exe keymgr.dll,KRShowKeyMgr
Важно: использование /savecred небезопасно, так как сохраненные пароли могут быть использованы для запуска других команд или даже смены пароля. Рекомендуется избегать сохранения паролей, особенно для административных учетных записей. В редакциях Windows Home параметр /savecred не поддерживается.
Запуск через PowerShell
В PowerShell используйте командлет Start-Process для запуска программ от другого пользователя:
1. Запросите учетные данные:
$Cred = Get-Credential
2. Запустите процесс:
Start-Process -FilePath "powershell.exe" -Credential $Cred
3. Для интерактивного ввода учетных данных:
— Запуск с правами администратора:
Start-Process -FilePath "powershell.exe" -Verb RunAs
— Запуск от другого пользователя:
Start-Process -FilePath "powershell.exe" -Verb RunAsUser
4. Для запуска в привилегированном режиме (обход UAC):
Start-Process powershell -Credential softcomputers\admin2 -ArgumentList '-noprofile -command &{Start-Process "cmd.exe" -verb runas}'
Альтернативно используйте утилиту ShelExec:
ShelExec /Verb:runas cmd.exe
Запуск MMC-оснасток
Для запуска оснасток MMC, таких как Пользователи и компьютеры Active Directory (dsa.msc), от имени другого пользователя:
runas.exe /user:softcomputers\kbuldogov "cmd /c start mmc %SystemRoot%\system32\dsa.msc"
Создание ярлыка для RunAs
Создайте ярлык для запуска программы от другого пользователя:
1. Щелкните правой кнопкой на рабочем столе -> Создать -> Ярлык.
2. В поле Укажите расположение объекта введите, например:
runas /user:softcomputers\kbuldogov "C:\Windows\notepad.exe"
3. Укажите имя ярлыка и завершите создание.
При запуске ярлыка будет запрошен пароль. С параметром /savecred пароль сохраняется после первого ввода, но это небезопасно.
Пункт «Запуск от имени» отсутствует в проводнике
Если в контекстном меню Проводника отсутствует пункт Запуск от имени другого пользователя, проверьте параметры реестра:
1. HideRunAsVerb (REG_DWORD) в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer:
— 0: показать пункт.
— 1: скрыть пункт.
2. EnableSecureCredentialPrompting (REG_DWORD) в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\CredUI:
— 0: показать пункт.
— 1: скрыть пункт.
Измените значения на 0:
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" -Name HideRunAsVerb -Value 0
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\CredUI" -Name EnableSecureCredentialPrompting -Value 0
В домене настройте через Групповые политики (GPO):
1. Откройте редактор GPO (gpedit.msc).
2. Перейдите в Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface).
3. Убедитесь, что политика Запрашивать достоверный путь для входа в учетную запись (Require trusted path for credential entry) отключена или не задана.
Добавление «Запуск от имени» в меню Пуск
По умолчанию в меню Пуск Windows 10/11 отсутствует опция RunAs. Для её включения:
1. Откройте редактор GPO (gpedit.msc).
2. Перейдите в Конфигурация пользователя -> Административные шаблоны -> Меню Пуск и панель задач (User Configuration -> Administrative Templates -> Start Menu and Taskbar).
3. Включите политику Показывать команду «Запуск от имени другого пользователя» при запуске (Show «Run as different user» command on Start).
Альтернативно настройте реестр:
New-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name ShowRunasDifferentuserinStart -Value 1 -PropertyType DWORD -Force
Обновите политики:
gpupdate /force
Теперь в меню Пуск появится пункт Дополнительно -> Запуск от имени другого пользователя.
Запуск UWP-приложений
Для приложений Universal Windows Platform (UWP) из Microsoft Store пункт RunAs в контекстном меню недоступен. Запустите их через runas.exe:
1. Выведите список UWP-приложений:
Get-AppxPackage | Select-Object Name
2. Найдите нужное приложение, например, Microsoft Teams:
Get-AppxPackage | Where-Object {$_.Name -like "*team*"} | Select-Object Name
3. Запустите приложение, например, Microsoft Teams Chat:
runas /user:user1 "explorer.exe MicrosoftTeams:"
Запуск программ от имени другого пользователя в Windows возможен через Проводник, runas.exe, PowerShell, ярлыки или меню Пуск. Убедитесь, что служба Вторичный вход в систему активна, настройте реестр или GPO для отображения опции RunAs и избегайте использования /savecred для безопасности. Эти методы подходят для административных задач и работы с профилями пользователей.