Любой пользователь Windows может запустить в своей сессии программу от имени другого пользователя с помощью Run As. Благодаря этому вы можете выполнить скрипт (.bat, .cmd, .vbs, .ps1), запустить исполняемый .exe файл или установку приложения (.msi, .cab) с полномочиями другого пользователя.
Например, вы можете использовать RunAs для установки программ или запуска программ/скриптов/MMC оснасток с правами администратора непосредственно в сессии обычного непривилегированного пользователя. Также через RunAs вы можете запустить приложение, настроенное в профиле другого пользователя (приложение загрузится с настройки из профиля другого пользователя).
За возможность запуска программ от имени другого пользователя в Windows отвечает служба Вторичный вход в систему (Secondary Log-on). Если эта служба остановлена, тогда все описанные методы runas работать не будут. Вы можете проверить, что служба запущена с помощью следующей команды PowerShell:
Get-Service seclogon
В 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 (
DomainName\UserName
); - Если ваш компьютер добавлен в домен AD, то для запуска программы от имени локальной учетной записи пользователя ее имя нужно указать в формате:
.\localusername
.
Важно. Вы можете запустить программу от имени другого пользователя только, если для него задан пароль. Использовать Runas для пользователя с пустым паролем не получится.
Откройте Диспетчер задач и убедитесь, что приложение запущенно под указанным пользователем.
Команда Runas: запуск программ от имени из командной строки
В Windows есть консольная утилита runas.exe, которую можно использовать для запуска приложений от имени другого пользователя из командной строки. Также команда runas позволяет сохранить пароль пользователя в Windows Credential Manager, чтобы его не приходилось набирать каждый раз.
Откройте командную строку (или окно Выполнить, нажав сочетание клавиш Win+R). Для запуска Блокнота с правами учетной записи administrator выполните команду:
runas /user:administrator “C:\Windows\cmd.exe”
Совет. Если имя пользователя содержит пробелы, его нужно взять в кавычки:
runas /user:”user test” notepad.exe
В отрывшемся окне появится приглашение «Введите пароль для admin», где нужно набрать пароль и нажать Enter.
Должно открыться ваше приложение. В моем случае это cmd. В заголовке окна указано Запущено от имени
CompName\username
:
Можно, например, открыть панель управления под другим пользователем:
runas /user:admin control
Если нужно запустить программу от имени доменного пользователя, нужно использовать формат имени
UserName@DomainName
или
DomainName\UserName
.
Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя server_admin домена CORP, используйте команду:
runas /user:corp\server_admin “C:\Windows\notepad.exe C:\tmp\2871997x64.txt”
Введите пароль для corp\server_admin: Попытка запуска C:\Windows\notepad.exe C:\tmp\2871997x64.txt от имени пользователя "corp\server_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:contoso\aaivanov 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
Если вам нужно запустить программу через runas от имени другого администратора в привилегированном режиме (по умолчанию UAC запускает программу в not-elevated пользовательском контексте), можно использовать такую команду PowerShell:
Start-Process powershell -Credential winitpro\admin2 -ArgumentList '-noprofile -command &{Start-Process "cmd.exe" -verb runas}'
Или стороннюю утилиту ShelExec:
ShelExec /Verb:runas cmd.exe
Запуск программ от имени другого пользователя без ввода пароля
Вы можете сохранить пароль пользователя, который вы вводите. Для этого используется параметр /savecred.
runas /user:admin /savecred “C:\Windows\notepad.exe”
После указания пароля он сохранится в диспетчере паролей Windows.
При следующем запуске команды runas под этим же пользователем с ключом
/savecred
Windows автоматически получит сохраненный пароль из Credential Manager, и не будет запрашивать его повторно.
Чтобы вывести список всех пользователей, для которых сохранены пароли, используется команда:
RunDll32.exe keymgr.dll,KRShowKeyMgr
Однако использование параметра /savecred не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой команды под данными привилегиями, или даже сменить чужой пароль. Кроме того, сохраненные пароли из Credential Manager можно легко украсть, поэтом лучше запретить использование сохраненных паролей (а тем более нельзя сохранять пароль привилегированной административной учетной записи).
Примечание. Кроме того, ключ /savecred не работает в Home редакциях Windows.
Вы можете использовать команду RunAs для запуска mmc оснасток от имени другого пользователя. К примеру, если под другим пользователем нужно запустить оснастку Active Directory Users and Computers из набора инструментов администрирования RSAT, можно воспользоваться такой командой.
runas.exe /user:winitpro\kbuldogov "cmd /c start mmc %SystemRoot%\system32\dsa.msc"
Аналогичным образом можно запустить любую другую оснастку (главное знать ее имя).
Ярлык с запуском программы от имени другого пользователя
Вы можете создать на рабочем столе ярлык для запуска программы от имени другого пользователя. Просто создайте новый ярлык, в окне с адресом объекта которого укажите команду
runas
с нужными параметрами:
runas /user:winitpro\kbuldogov “C:\Windows\notepad.exe”
При запуске такого ярлыка будет запрашиваться пароль пользователя.
Если в ярлыке runas добавить параметр
/savecred
, то пароль будет запрошен только один раз. После этого пароль будет сохранен в Credential Manager и автоматически подставляться при запуске ярлыка от имени другого пользователя без запроса пароля.
Такие ярлыки довольно часто используются для запуска программ, которые требуют прав администратора для запуска. Однако есть более безопасные способы запуска программы без прав администратора, или отключения запроса UAC для определенного приложения.
В проводнике Windows отсутствует пункт “Запуск от имени другого пользователя”
Если в контекстном меню проводника Windows отсутствует пункт Запуск от имени другого пользователя (Run as different user), нужно проверить настройки двух параметров реестра Windows.
В Windows вы можете скрыть или показать в проводнике пункт меню RunAs с помощью двух параметров реестра:
- Параметр 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 не отображается пункт Run as different user, проверьте значения этих параметров реестра и измените их на 0. В доменной среде вы можете распространить значения этих параметров реестра на компьютеры с помощью Group Policy Preferences.
Второму параметру реестра соответствует отдельная опция GPO.
Этой опции GPO соответствует параметр EnableSecureCredentialPrompting в ветке реестра HKLM\ Software\Microsoft\Windows\CurrentVersion\Policies\CredUI. Откройте редактор локальных групповых политик (gpedit.msc) и убедитесь, что в разделе Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Пользовательский интерфейс учетных данных (Computer Configuration -> Administrative Templates -> Windows Components -> Credential User Interface) отключена (Не задана) политика Запрашивать достоверный путь для входа в учетную запись (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_USER\Software\Policies\Microsoft\Windows\Explorer ключ типа DWORD с именем ShowRunasDifferentuserinStart и значением 1.
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 '*team*'} |select Name
Найдите имя нужного приложения в списке. Например, для запуска встроенного клиента Microsoft Teams Chat от другого пользователя, выполните:
runas /user:user1 "explorer.exe MicrosoftTeams:"
Обычная команда RunAs, проще говоря запуск от имени другого пользователя. Очень удобно когда есть доменная среда, но не очень удобно запускать каждый раз одно и тоже для работы.
Поэтому для автоматизации процесса, можно создать себе ярлык для запуска приложений, прописав в него команду RunAs.
Самый простой ярлык для запуска командной строки выглядит так:
C:\Windows\System32\runas.exe /user:domain\admin /savecred «C:\Windows\System32\cmd.exe» |
Любое приложение можно запустить именно так, но если приложение по умолчанию требует запуск от имени администратора, то команду необходимо изменить. К примеру, запустим командой выше оснастку dsa.msc.
И в итоге получаем ошибку:
ОШИБКА RUNAS: Не удается запустить — C:\Windows\system32\dsa.msc 193: C:\Windows\system32\dsa.msc не является приложением Win32. |
Пользователи и компьютеры Active Directory (dsa.msc) запускается от имени другого пользователя в командной строке следующим образом:
C:\Windows\System32\runas.exe /savecred /env /user:domain\admin «CMD /C start /B C:\Windows\system32\dsa.msc» |
Теперь ошибки 193 при запуске от имени не будет.
Windows 10, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP
Запуск программы требующий права администратора под учетной записью обычного пользователя
- 12.04.2016
- 112 638
- 15
- 09.02.2020
- 23
- 18
- 5
- Содержание статьи
- Выдача прав на директорию с программой
- Запуск программы под учетной записью админстратора с учетной записи обычного пользователя
- Комментарии к статье ( 15 шт )
- Добавить комментарий
В любом предприятии, в котором компьютеры/программное обеспечение обслуживают адекватные люди, обычные пользователи компьютеров не имеют никаких админских прав за ними, что значительно снижает риск удаления важных файлов системы, установку непонятного программного обеспечения и прочих чудес. Однако, некоторые программы упорно не желают работать без прав администратора — и что же делать, если желания давать права администратора компьютера пользователю нет, а необходимость запустить приложение — есть?
В статье пойдет речь о том, как предоставить обычному пользователю возможность запустить приложение, и не выдавать ему права администратора на компьютере. Речь пойдет о двух способах — более-менее безопасном (Выдача прав на папку с программой), и менее безопасном (способ с использованием программы RunAs).
Выдача прав на директорию с программой
Часто, права администратора требуются программе для проведения каких-либо операций с файлами в своей папке — например некой Programm‘e нужно записывать данные в свой файл конфигурации в папку, куда она установлена (допустим этот каталог «C:\Program Files (x86)\Programma«). Можно попробовать выдать нужным пользователям полные права на эту папку. Делается это следующим образом:
- Правой кнопкой нажимаете на папке, открываете Свойства
- В Свойствах нужно открыть вкладку Безопасность.
- В зависимости от настроек компьютера там может отображаться либо «Добавить«, либо «Изменить«. В первом случае нужно нажать кнопку «Добавить«, во втором — «Изменить«, после чего скорее всего потребуется ввести данные учетной записи администратора. После этого появится окно с кнопкой «Добавить«, которую и нужно будет нажать.
- После нажатия кнопки «Добавить» добавляем всех нужных пользователей. Для проверки правильность ввода имени пользователя можно воспользоваться кнопкой «Проверить имена«.
- Затем выдаем полные права добавленному пользователю — для этого нужно поставить галочку в поле «Разрешения для….«, пункт «Полные права«.
Запуск программы под учетной записью админстратора с учетной записи обычного пользователя
Для этой цели сгодится программа RunAs, которая идет в составе Windows. Для удобства её использования проще всего будет создать cmd файл, в который следует поместить следующее:
C:\WINDOWS\system32\runas.exe /user:<ДОМЕН ПОЛЬЗОВАТЕЛЯ>\<ПОЛЬЗОВАТЕЛЬ> /SAVECRED <ПУТЬ К ПРОГРАММЕ>
Вместо Домена пользователя и Пользователя вводим данные учетной записи пользователя, который обладает правами администратора в домене, или на компьютере (в таком случае, вместо Домена пользователя следует писать имя компьютера). Вместо Путь к программе соответственно пишем путь к нужному exe файлу.
Сохраняем этот файл, и запускаем. Если все прошло верно, то при первом запуске bat файла, будет запрошен пароль для указанного пользователя, однако уже при повторном запуске никакого запроса пароля не потребуется — для этого используется параметр /SAVECRED. Однако, в таком случае, программа будет запущена не от имени пользователя, который запустил данный файл, а от имени пользователя, чьи данные были указаны параметром /user, что является весьма сомнительным методом, с точки зрения безопасности.
Introduction
Runas is a command-line utility built into Windows that allows a user to execute a program with the security permissions of another user account on the same computer. This can come in handy when you need to perform tasks that require administrative privileges but your user account doesn’t have them.
The syntax for the Runas command is as follows:
runas [/profile] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserName Program
In this article, we will be discussing Runas with password and provide code examples to illustrate how this feature can be used to execute programs with different user credentials.
Runas with Password
By default, when you execute a program using the Runas command, you will be prompted to enter the password for the user account you specified. However, if you want to avoid having to enter the password every time you run the command, you can specify the password in the command line using the following syntax:
runas /user:UserName PasswordHere Program
Of course, this is not very secure, as anyone with access to your command history or script file would be able to see the password in plain text. A better approach would be to store the password in an encrypted file and then reference that file in the command.
Here’s an example of how to use Runas with password:
runas /user:Administrator /savecred "cmd.exe"
In this example, we are executing the command prompt as the Administrator user and saving the credentials, so we won’t have to enter the password the next time we run the command.
Code Examples
Let’s take a look at a few code examples that demonstrate how to use the Runas command with password:
Example 1: PowerShell Script
Here’s how to use the Runas command with password in a PowerShell script:
$UserName = "Administrator" $Password = ConvertTo-SecureString "MyPassword" -AsPlainText -Force $Credential = New-Object System.Management.Automation.PSCredential($UserName,$Password) Start-Process -FilePath "cmd.exe" -Credential $Credential
In this example, we are creating a PowerShell credential object that contains the username and password for the Administrator account. We then use this object to launch the command prompt as an Administrator.
Example 2: Batch File
Here’s how to use the Runas command with password in a batch file:
echo MyPassword|runas /user:Administrator "cmd.exe"
In this example, we are echoing the password to the command prompt and piping it to the Runas command, which will execute the command prompt as the Administrator user with the specified password.
Example 3: C# Code
Here’s how to use the Runas command with password in a C# program:
string userName = "Administrator"; string password = "MyPassword"; string program = "cmd.exe"; ProcessStartInfo startInfo = new ProcessStartInfo(program); startInfo.UserName = userName; SecureString securePassword = new SecureString(); foreach (char c in password) { securePassword.AppendChar(c); } startInfo.Password = securePassword; startInfo.UseShellExecute = false; Process.Start(startInfo);
In this example, we create a ProcessStartInfo object that contains the program’s path, username, password, and other properties. We then start a new process using this object, which will execute the program as the specified user with the specified password.
Conclusion
In conclusion, the Runas command with password is a powerful tool that can come in handy when you need to perform tasks with elevated security privileges. While it’s important to use this command with caution (as storing passwords in plain text is not secure), it can be extremely useful in certain situations. By using the examples provided in this article, you’ll be able to execute programs with different user credentials quickly and easily.
In this article, we discussed the Runas command with password and provided code examples to demonstrate how it can be used to execute programs with different user credentials.
The Runas command is a built-in utility in Windows that allows a user to execute a program with the security permissions of another user account on the same computer. This can come in handy when you need to perform tasks that require administrative privileges but your user account doesn’t have them.
By default, when you execute a program using the Runas command, you will be prompted to enter the password for the user account you specified. However, for convenience, you can specify the password in the command line. While this may make it easier to use, it’s not very secure. Anyone with access to your command history or script file would be able to see the password in plain text.
A better approach is to store the password in an encrypted file and then reference that file in the command. This can be done using PowerShell, batch files, or C# code. In the PowerShell script example, we created a PowerShell credential object that contains the username and password for the Administrator account and then used this object to launch the command prompt as an Administrator. In the batch file example, we echoed the password to the command prompt and piped it to the Runas command, which executed the command prompt as the Administrator user with the specified password. In the C# code example, we created a ProcessStartInfo object that contains the program’s path, username, password, and other properties and then started a new process using this object, which executed the program as the specified user with the specified password.
While Runas with password can be a useful tool, it’s important to use it with caution and ensure that any stored passwords are encrypted and secured. This will help ensure that sensitive user credentials are not compromised.
In conclusion, the Runas command with password is a useful utility that can be used to execute programs with different user credentials. We hope that the examples provided in this article have been helpful and that you can use them to get started with the Runas command. Remember to stay vigilant and secure any stored passwords to avoid security vulnerabilities.
Popular questions
-
What is the Runas command and how is it used?
Answer: The Runas command is a built-in utility in Windows that allows a user to execute a program with the security permissions of another user account on the same computer. It’s used when you need to perform tasks that require administrative privileges but your user account doesn’t have them. -
Why is it important to secure passwords used with the Runas command?
Answer: It’s important to secure passwords used with the Runas command to prevent unauthorized users from accessing sensitive information. Passwords should be encrypted and stored in a secure location to minimize the risk of compromise. -
How can you use Runas with Password in a PowerShell script?
Answer: In a PowerShell script, you can use the «New-Object System.Management.Automation.PSCredential» command to create a PowerShell credential object that contains the username and password for the Administrator account. You can then use this object to launch the command prompt as an Administrator. -
How can you use Runas with Password in a batch file?
Answer: In a batch file, you can use the «echo MyPassword|runas /user:Administrator» command to execute the command prompt as the Administrator user with the specified password. The «echo» command is used to output the password to the command prompt and the «runas» command is used to launch the program with elevated security privileges. -
How can you use Runas with Password in a C# program?
Answer: In a C# program, you can create a «ProcessStartInfo» object that contains the program’s path, username, password, and other properties and then start a new process using this object, which executes the program as the specified user with the specified password. The «SecureString» class is used to store and encrypt the password before passing it to the «ProcessStartInfo» object.
Tag
SecureAuthentication
Запуск программ, требующих повышенных привилегий
Задача: есть пользователь с ограниченными правами. Но ему позарез нужно приложение, которое для запуска требует повышенных привилегий. Добавлять пользователя в группу «Администраторы» или сообщать ему пароль админа не вариант.
Решение: используя утилиту runas, изменить в свойствах ярлыка объект запуска. (на примере командной строки)
1. Свойства ярлыка, вкладка «Ярлык».
2. Строчка «Объект». %windir%\system32\cmd.exe
3. Добавляем runas. C:\Windows\System32\runas.exe /user:Administrator /savecred %windir%\system32\cmd.exe
4. Теперь при запуске будет запрошен пароль администратора, но только один раз. Дальнейший запуск будет происходить без запроса пароля.
Пояснения:
/user — задает пользователя, от имени которого будет производиться запуск
/savecred — сохраняет пароль (хз где) так, что его надо вводить только один раз
Удалить пароль можно так:
1. В командной строке запускаем control userpasswords2.
2. Вкладка «Дополнительно». Кнопка «Управление паролями».
3. Раздел «Учетные данные Windows», «Удаление из хранилища».
Ограничения!
По слухам работает только на «продвинутых» версия ОС — от Professional.