Команда RUNAS — запуск приложения от имени другого пользователя Windows .
    Команда RunAS используется для запуска приложения под учетной записью пользователя, имя которого передается в качестве параметра командной строки. В Windows 7, и более поздних, данная команда, при стандартных настройках безопасности, не позволяет получить администраторские привилегии, как это происходит в режиме «Запустить от имени Администратора». Для запуска приложения от имени администратора потребуется выполнение некоторых настроек системы. Универсальный способ запуска приложений и командных файлов от имени администратора без запроса системы контроля учетных записей UAC с использованием стандартного Планировщика заданий описан в статье Запуск из командного файла приложений от имени Администратора без запроса UAC.
Формат командной строки RUNAS:
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:имя пользователя программа
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:имя пользователя] программа
RUNAS /trustlevel:уровень доверия программа
Параметры командной строки:
/noprofile — Не загружать профиль пользователя. Это приводит к более быстрой загрузке приложения, но может стать причиной неправильной работы некоторых приложений.
/profile — Загружать профиль пользователя. Этот параметр установлен по умолчанию.
/env — Использовать текущие параметры среды.
/netonly — Учетные данные предназначены только для удаленного доступа.
/savecred — Использовать учетные данные, сохраненные пользователем. Этот вариант не доступен в выпусках Windows 7 Домашняя или Windows 7 Начальная и будет проигнорирован.
/smartcard — Для указания учетных данных используется смарт-карта.
/user — имя пользователя должно быть в виде USER@DOMAIN или DOMAIN\USER
/showtrustlevels — Отобразить список уровней доверия, которые можно использовать в качестве аргументов параметра /trustlevel.
/trustlevel — Значение «уровень доверия» должно быть перечислено в списке уровней доверия.
программа — Командная строка для EXE. См. примеры ниже.
runas /user:mymachine\administrator cmd.exe — запустить интерпретатор команд cmd.exe от имени пользователя «administrator» компьютера «mymachine». При выполнении команды, будет запрошен пароль пользователя, от имени которого должна выполняться задача.
runas /noprofile /env /user:mydomain\admin » mmc %windir%\system32\diskmgmt.msc » — запустить консоль mmc с оснасткой «Управление дисками» от имени пользователя «admin» в домене «mydomain». Профиль пользователя не загружается, и используются текущие переменные среды. Загрузка профиля пользователя необходима только тогда, когда будет выполняться задача, которой требуются какие-либо данные из него. Если задан параметр «/env» то переменные окружения наследуются из среды текущего пользователя.
runas /savecred /user:admin@mydomain regedit.exe — запустить редактор реестра «regedit.exe» от имени пользователя «admin» домена «mydomain» с запоминанием введенного пароля. При наличии параметра «/savecred», введенный пароль запоминается в реестре в зашифрованном виде и в дальнейшем запрашиваться не будет .
runas /showtrustlevel — отобразить уровни доверия, существующие в системе. В ответ будет отображаться перечень в виде:
В системе доступны следующие уровни доверия:
0x20000 (Обычный пользователь)
Кроме значения trustlevel равного 0x20000 можно пользоваться значениями 0x10000 , соответствующему минимальному набору привилегий и 0x40000 , стандартному для данного пользователя набору. Для просмотра отличий разных уровней доверия можно воспользоваться командой Whoami , выполняя ее в сеансе командного процессора, запускаемого с каждым из уровней trustlevel
runas /trustlevel:0x20000 cmd.exe — запустить командный процессор cmd.exe с использованием уровня доверия, полученного в предыдущем примере.
runas /trustlevel:0x40000 cmd.exe — запустить командный процессор cmd.exe с использованием стандартного уровня доверия.
Примечание: в сеансе командной строки, запущенной с использованием параметра /trustlevel, список привилегий соответствующий каждому уровню доверия можно получить с использованием команды whoami /priv , а полные сведения об учетной записи — whoami /ALL
Примечание: параметр /profile несовместим с параметром /netonly .
Примечание: параметр /savecred несовместим с параметром /smartcard .
Для запуска приложений от имени администратора с использованием runas.exe необходимо изменить стандартные настройки безопасности системы:
— включить учетную запись Администратора ( по умолчанию, она отключена);
— задать пароль для пользователя Администратор ;
Для проверки наличия прав администратора использовался командный файл с именем who-admin.bat следующего содержания:
WHOAMI /PRIV | find /i «SeRemoteShutdownPrivilege»
if %ERRORLEVEL% == 0 goto admin
echo NOT have admin rights!
Принцип анализа привилегий основан на использовании команды whoami с параметром /priv . В зависимости от наличия прав администратора, командный файл выводит сообщение «NOT have admin rights!», или — «. ADMIN . » и ожидает нажатия клавиши на клавиатуре. Подробности найдете в описании команды whoami по ссылке из полного списка команд.
runas /savecred /user:Администратор C:\scripts\who-amdmin.bat — запуск от имени администратора командного файла who-amdmin.bat , находящегося в папке C:\scripts . При первом запуске будет запрошен пароль Администратора, при последующих запусках ( с параметром /savecred ) — ввод пароля не требуется.
Пароли, запоминаемые при использовании утилиты RUNAS.EXE с параметром /savecred можно изменить или удалить с помощью оснастки управления сохраненными паролями:
При наборе ключевых значений нужно соблюдать регистр символов.
RUNAS — описание команды и примеры использования
Описание
RUNAS — Запускает программы от имени другого пользователя.
Синтаксис
Параметры
Параметр | Описание |
---|---|
/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 заканчивается неудачей, может оказаться, что служба вторичного входа не запущена или используемая учетная запись пользователя недопустима. Чтобы проверить состояние службы вторичного входа, в компоненте «Управление компьютером» щелкните узел Службы и приложения, а затем — Службы. Чтобы проверить учетную запись пользователя, попытайтесь подключиться к соответствующему домену с помощью этой учетной записи.
Примеры использования
Чтобы в качестве администратора на локальном компьютере запустить экземпляр интерпретатора командной строки , введите команду:
После запроса введите пароль администратора.
Чтобы запустить экземпляр оснастки «Управление компьютером», используя учетную запись администратора домена companydomain\domainadmin, введите команду:
После запроса введите пароль соответствующей учетной записи.
Чтобы запустить экземпляр блокнота, используя учетную запись администратора домена user в домене domain.microsoft.com, введите команду:
После запроса введите пароль соответствующей учетной записи.
Чтобы запустить экземпляр окна командной строки, сохраненную консоль MMC, компонент панели управления или программу, которая будет администрировать сервер в другом лесе, введите команду:
В параметре домен\имя_пользователя должен быть указан пользователь с разрешениями, достаточными для администрирования сервера. После запроса введите пароль соответствующей учетной записи.
Рунас не работает на Windows 10
Итак, у меня есть клиент, которому нужно запускать программное обеспечение с более высокими привилегиями, но пользователь работает с ограниченной учетной записью, и я не желаю давать ему пароль по нескольким причинам.
Я искал способ запустить программу без запроса пароля администратора, и я столкнулся с runas .
Это команда, которую я использую:
runas /user:Administrator /savecred «Путь \ К \ Software.exe»
Что происходит, так это то, что он запрашивает пароль в первый раз, но ничего не происходит после ввода пароля. Программа просто не запустится, независимо от того, сколько раз я запускаю команду.
Путь правильный и учетная запись администратора в порядке, по-прежнему безрезультатно.
Я также проверил, что запущены 2 службы (не помню их имен, но они связаны с запущенными приложениями с разными привилегиями).
У вас, ребята, есть решение, чтобы это работало?
4 ответа 4
Если на вашем компьютере включен контроль учетных записей (UAC) (я надеюсь, что ответ «да»), команда «runas» не повышает ваши привилегии. т.е. он запускает приложение, но не с правами администратора.
Однако попробуйте эту команду Windows PowerShell:
Естественно, вы должны вводить эту команду в Windows PowerShell вместо командной строки.
Тем не менее, это определенно не решение вашей проблемы. Политика Microsoft состоит в том, чтобы либо не предоставлять, либо полностью отказывать в любых средствах, поощряющих использование административных привилегий. (Эта политика вступила в силу после фиаско в области безопасности в 2003 году.) Ближайшая вещь, которую Microsoft предоставляет, — набор средств для обеспечения совместимости приложений, который позволяет игнорировать манифест приложения и запускаться с ограниченными привилегиями. Это делает трюк для приложений, которые достаточно глупы, чтобы не проверять, получили ли они то, что просили в своих манифестах.
Конечно, время от времени я замечаю сторонние решения по обеспечению безопасности, которые включают то, что вы хотите. За исключением непопулярности, они быстро исчезают.
Мы обнаружили, что если профиль runas не был полностью загружен (т. Е. UID runas не был полностью зарегистрирован на компьютере ранее), он не будет работать правильно .
Использование программы для хранения учетных данных будет плохим, независимо от того, как вы на это смотрите. Если пользователь способен получить какую-либо часть сохраненных учетных данных, он может расшифровать пароль (СОВЕТ: он сможет получить к ним доступ, иначе программа не будет работать), если только программа не использует некоторый токенизацию. , Даже в том случае, если он выполняет токенизацию, можно выполнять другие команды от имени администратора, если они «передают хэш», как они говорят в поле безопасности (токены не шифруются / дешифруются, насколько я могу судить, поэтому они были специально разделены, и даже если они есть / были, пользователь может их расшифровать).
Лучше всего, поскольку вы не хотите предоставлять этому пользователю права администратора, — предоставить ему определенный доступ к файлам и папкам, которые пытается использовать программа. Требуется больше информации о программе или файлах / папках, к которым осуществляется доступ, прежде чем можно будет дать хорошую рекомендацию. Если вы предоставите им доступ с помощью вкладки « Security » в окне свойств папки, они смогут запустить программу без прав администратора. Если нет, то программа была сделана не очень хорошо. В качестве альтернативы вы можете использовать виртуальную машину или другой рабочий стол, к которому пользователь может подключиться, чтобы иметь доступ только к этому, а не к системе, над которой он работает.
Если вы хотите увидеть, какие файлы и папки использует пользователь в Windows, вы можете использовать инструмент Process Monitor . Этот инструмент перечислит безумное количество информации, которую все процессы делают на машине (вы можете фильтровать данные). Файлы, папки, потоки, сетевые события, реестр и события профилирования отслеживаются инструментом. Это от SysInternals и части Sysinternals Suite, расположенного здесь, на TechNet . Я не имею к ним никакого отношения, но я использовал их инструменты в течение многих лет.
Единственное, что я обнаружил, что, по-видимому, является причиной того, что вы описываете, — это если учетная запись администратора не имеет установленного пароля, тогда он не будет запускаться таким образом, учетная запись должна иметь пароль, и вы должны ввести его, Вы не можете просто оставить его без пароля и нажать Enter, когда он попросит.
Когда я вижу, что такое поведение выдает ошибку об ограничениях учетной записи, оно не будет отображать ошибку достаточно долго, чтобы человек мог ее прочитать, если вы работаете с ярлыка, но сохранит ошибку, если она запускается из командной строки или powershell. окно.
Конечно, также убедитесь, что учетная запись администратора включена (это не по умолчанию) и что вы (или ваш ИТ-отдел, если это компьютер компании, а не ваш компьютер) не добавили какие-либо ограничения на основе GPO или другие ограничения для администратора учетная запись в состоянии запускать вещи. (Поскольку вы сказали, что учетная запись в порядке, я сомневаюсь, что причина в вашем случае, но в том числе и в случае, если другие люди должны знать это)