Как запустить программу от другого пользователя windows 7

Обновлено: 06.07.2024

В этой статье рассказывается, как запустить программу от имени администратора или другого пользователя Windows 7, не завершая текущий сеанс.

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

1. Чтобы запустить программу от имени администратора, щелкните правой кнопкой мыши по исполняемому файлу (с расширением .exe) и в появившемся контекстном меню выберите Запуск от имени администратора.

2. Чтобы определенная программа всегда запускалась от имени администратора, щелкните по исполняемому файлу правой кнопкой мыши и выберите пункт Создать ярлык.

3. Щелкните правой кнопкой мыши по созданному ярлыку и выберите Свойства.

4. В открывшемся окне, на вкладке Ярлык нажмите кнопку Дополнительно.

5. Установите флажок Запуск от имени администратора.

6. Нажмите OK, чтобы сохранить изменения.

Примечание. Данная программа будет запускаться от имени администратора только с помощью этого ярлыка. Двойной щелчок по исполняемому файлу или по другому ярлыку этой программы, запустит её от имени вашей учетной записи, без повышенных привилегий (если, конечно, вы вошли в Windows 7 не как администратор).

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

1. Нажмите клавишу Shift , и удерживая её, щелкните правой кнопкой мыши по исполняемому файлу.

2. В появившемся контекстном меню выберите Запуск от имени другого пользователя.

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

После нажатия кнопки OK программа запустится от имени указанного пользователя. Закончив работу с программой, просто закройте ее.

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

Пользователь, от имени которого запускаете программу, защищен паролем?

Спасибо огромное! теперь разобрался(не увидел примечание).

Нет. Пароль не введен. И еще: почему мне приходится это делать, если я сам в группе администраторов? И для моей учетки «плный» доступ. (W7)

date

03.08.2020

directory

Windows 10, Windows Server 2016

comments

комментария 42

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

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

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

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

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

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

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

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

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

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

Примечание. Если нужно указать доменного пользователя, используется один из следующий форматов имени: UserName@DomainName или DomainName\UserName .

runas different user

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

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


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

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

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

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

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

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

runas /user:administrator “C:\Windows\cmd.exe”

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

runas /user:”user test” notepad.exe

runas /user:admin

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

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

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

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

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

runas /user:admin control

Для запуска программы из-под доменного пользователя нужно использовать формат имени UserName@DomainName или DomainName\UserName . Например, чтобы с помощью блокнота открыть текстовый файл от имени пользователя домена CORP, используйте команду:

runas /user:corp\server_admin “C:\Windows\notepad.exe C:\tmp\2871997x64.txt”


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

runas /netonly /user:contoso\aaivanov cmd.exe

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

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

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

runas /user:admin /savecred “C:\Windows\notepad.exe”

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

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

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

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

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

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

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

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

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


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

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

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

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

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

runas.exe /user:DOMAINname\USER “cmd /c start \”\” mmc %SystemRoot%\system32\dsa.msc”

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

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

По-умолчанию в 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

ShowRunasDifferentuserinStart - реестр

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

В Windows Vista пользователи могли запустить программу от имени администратора, но для ее запуска от имени другого пользователя приходилось использовать командную строку или настраивать опции запуска программы в свойствах ярлыка. В Windows 7 вы можете проводить оба действия - запускать программу от имени администратора или другого пользователя.

Щелкните правой кнопкой по ярлыку, который вы хотите открыть от имени другого пользователя, держа при этом зажатой кнопку Shift
Выберите Run as another user

Для того она и Авторизация, что бы Пароль и Логин спрашивать. :)
Бантик то тут собственно зачем?
Или снимите ограничения на запуск программ в панели управления.
Или удалите пароль со своей учетной записи и программа спрашивать перестанет. Будет, что то типа Таблички.. . Где просто нужно выбрать Да или Нет.

Алиса - Это, как я понял Учетная Запись Администратора?!

runas /user:имя_пользователя "путь_к_программe"

Например запуск блокнота

runas /user:Алиса "C:\windows\system32\notepad.exe"

Тут есть проблема, он будет запрашивать пароль, так как хранение пароля в открытом виде в батнике прямая угроза безопасности, эту проблему решает - /SAVECRED. Если вы укажете его в команде RUNAS, то пароль вам будет предложено ввести только один раз. А далее всевозможные запуски любых программ от имени этого пользователя через команду RUNAS пароля запрашивать не будут.

Вот конечный пример
runas /user:Алиса /SAVECRED "C:\windows\system32\notepad.exe"
Просто сохранить в текстовом файле и затем сменить расширение на .bat

runas /savecred /user:DOMAIN\MyUser CoolProgram.exe

Вопрос конечно интересный, но вообще быть может всякое.

начиная с Windows 7, запускать программу можно просто нажавши по ней правой кнопкой мышки и там выбрать Запуск от Администратора, а можно еще сделать так, чтобы она всегда запускалась в таком режиме, если интересно то вот заметка о том как это сделать:


К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.

Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…

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

Программа может запрашивать права администратора условно в двух случаях:

  1. Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
  2. Когда программу скомпилировали со специальным флагом «Требовать права администратора».

С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:


Куда это лезет этот 7Zip?

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

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

Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:

  • asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
  • highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
  • requireAdministrator. Программа будет требовать права администратора в любом случае.

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

В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.

Простейшим вариантом работы с этим механизмом будет использование переменных среды.

Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:


Запрос повышение прав.

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

То запроса UAC не будет, как и административных прав у приложения:


Бесправный редактор реестра.

Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?

Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.

Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.

Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:


Создаем исправление приложения.

Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).

Далее необходимо в списке исправлений выбрать RunAsInvoker.


Выбираем нужный фикс.

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


Созданный фикс для bnk.exe.

После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.

Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.

Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.

Ну, посмотрим, что из этого выйдет.

Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.


)

Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.

Зато runas может быть полезен, когда сотрудник знает пароль администратора, но работает под ограниченной учетной записью (по идее так должен делать каждый системный администратор).

Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.

Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».

Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:

Затем сохранить пароль в зашифрованном виде в файл:

И теперь использовать этот файл для неинтерактивной работы:

К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:

Теперь при помощи этого ключа пароль можно зашифровать:

К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.

В свое время я использовал для решения подобных задач свой любимый AutoIt, где компилировал скрипт с командой RunAs и радовался… До тех пор, пока не узнал, что AutoIt (особенно старых версий) декомпилируется на раз-два.

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

На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.

Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.

Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).


Основное окно программы.

Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.

Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.

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

Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.

В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.

RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.

Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.


Основное окно программы.

Программа богато документирована на официальном сайте.

У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.

Мне остается только добавить, что это ПО бесплатно только для личного использования.

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


Запускаем cmd.exe прямо из редактора реестра.

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

А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.

Читайте также: