Некоторые программы при запуске могут требовать повышения прав до администратора (значок щита у иконки), однако на самом деле для их нормальной работы права администратора не требуется (например, вы можете вручную предоставить необходимые NTFS разрешения пользователям на каталог программы в Program Files и ее ветки реестра). Если на компьютере включен контроль учетных записей (User Account Control), то при запуске такой программы из-под непривилегированного пользователя появится запрос UAC и Windows потребует от пользователя ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Оба эти способа не рекомендуется широкого использовать, т.к. вы снижаете безопасность и защиту Windows. В этой статье мы рассмотрим, как запустить программу, которая требует права администратора, от имени простого пользователя и подавить запрос повышения привилегий UAC.
Содержание:
- Предоставить пользователю права на запуск программы
- Запуск программы, требующей права администратора, от обычного пользователя
- Запуск программы в режиме RunAsInvoker из командной строки
- Включить режим RunAsInvoker в манифесте exe файла программы
- Запуск программы с сохраненным паролем администратора
Предоставить пользователю права на запуск программы
Программа может запрашивать права администратора при запуске, если:
- Программе нужно получить доступ на системный каталог или файл, на отсутствуют NTFS разрешения для непривилегированных пользователей;
- Если программа собрана со специальным флагом, которые требует повышения прав при запуске (requireAdministrator).
В первом случае для решения проблемы администратору достаточно предоставить RW или Full Control разрешения на каталог программы или необходимый системных каталог. Например, программа хранит свои файлы (логи, файлы конфигурации и т.д.) в собственной папке в C:\Program Files (x86)\SomeApp) или каком-то системном каталоге. Для корректной работы программы пользователю нужны права записи в эти файлы. По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора.
Чтобы разрешить запуск программы под непривилегированным пользователем администратора достаточно вручную предоставить пользователю (или встроенной группе Users) права на изменение/запись на файл/каталог на уровне файловой системы NTFS.
Чтобы найти список файлов, папок и ключей реестра, к которым обращается программа, воспользуйтесь утилитой Process Monitor (https://learn.microsoft.com/en-us/sysinternals/downloads/procmon). Включите фильтр по имени процесса программы и найдите все ресурсы, при доступе к которым появляется Access Denied. Предоставьте необходимые права на папки/файлы/ветки реестра.
Примечание. В рекомендациях Microsoft для разработчиков указано, что не рекомендуется хранить изменяющиеся данных приложения в каталоге C:\Program Files неверна. Правильнее хранить данные приложения в профиле пользователя. Но это уже вопрос о лени и некомпетентности разработчиков программ.
Запуск программы, требующей права администратора, от обычного пользователя
Ранее мы уже описывали, как можно с помощью параметра RunAsInvoker отключить запрос UAC для конкретной программы. Однако этот метод недостаточно гибкий.
Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном UAC (4,3 или 2 уровень ползунка UAC).
Для примера возьмем утилиту редактирования реестра — regedit.exe (она находится в каталоге C:\windows\). Обратите внимание на щит UAC у иконки. Данный значок означает, что для запуска этой программы будет запрошено повышение привилегий через UAC.
Если запустить
regedit.exe
, то перед вами появится окно User Account Contol с запросом пароля пользователя с правами администратора на этом компьютере (
Do you want to allow this app to make changes to your device?
). Если не указать пароль и не подтвердить повышение привилегии, приложение не запустится.
Попробуем обойти запрос UAC для этой программы. Создайте на рабочем столе файл run-as-non-admin.bat со следующим текстом:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
Теперь для принудительного запуска приложения без прав администратора и подавлением запроса UAC, просто перетащите нужный exe файл на этот bat файл на рабочем столе.
Редактор реестра должен запуститься без появления запроса UAC и без ввода пароля администратора. Откройте диспетчер процессов, добавьте столбец Elevated и убедитесь, что в Windows запушен непривилегированный процесс regedit (запущен с правами пользователя).
Попробуйте отредактировать любой параметр в ветке HKEY_LOCAL_MACHINE. Как вы видите доступ на редактирование реестра в этой ветке запрещен (у данного пользователя нет прав на запись в системные ветки реестра). Но вы можете добавлять и редактировать ключи в собственной ветке реестра пользователя — HKEY_CURRENT_USER.
Аналогичным образом через bat файл можно запускать и конкретное приложение, достаточно указать путь к исполняемому файлу.
run-app-as-non-admin.bat
Set ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
Также можно добавить контекстное меню, которое добавляет у всех приложений возможность запуска без повышения прав. Для этого создайте файл runasuser.reg файл, скопируйте в него следующий код, сохраните и импортируйте его в реестр двойным щелчком по reg файлу (понадобятся права администратора).
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker] @="Run as user without UAC elevation" [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command] @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
После этого для запуска любого приложения без прав админа достаточно выбрать пункт “Run as user without UAC elevation” в контекстном меню проводника Windows File Explorer.
Еще раз напомню, что использование программы в режиме RUNASINVOKER не запускает приложение с правами администратора. Параметр AsInvoker подавляет запрос UAC и указывает программе, что она должна запуститься с правами текущего пользователя и не запрашивать повышение привилегий. Если программе действительно нужны повышенные права для редактирования системных параметров или файлов, она не будет работать или повторно запросит права администратора.
Запуск программы в режиме RunAsInvoker из командной строки
Переменная окружения __COMPAT_LAYER позволяет устанавливать различные уровни совместимости для приложений (вкладка Совместимость в свойствах exe файла). С помощью этой переменной можно указать настройки совместимости, с которыми нужно запускать программу. Например, для запуска приложения в режиме совместимости с Windows 7 и разрешением 640×480, установите:
set __COMPAT_LAYER=Win7RTM 640x480
Из интересных нам опций переменной __COMPAT_LAYER можно выделить следующие параметры:
- RunAsInvoker — запуск приложения с привилегиями родительского процесса без запроса UAC;
- RunAsHighest — запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется, если у пользователя есть права администратора);
- RunAsAdmin — запустить приложение с правами администратора (запрос AUC появляется всегда).
Следующие команды включат режим RUNASINVOKER для текущего процесса и запускает указанную программу:
set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"
Включить режим RunAsInvoker в манифесте exe файла программы
Как мы уже говорили выше, Windows показывает значок щита UAC у программ, которые требуют повышенных привилегий для запуска. Это требование разработчики задают при разработке в специальной секции программы — манифесте.
Вы можете отредактировать манифест исполняемого exe файла программы и отключить требование запускать программу в привилегированном режиме.
Для редактирования манифеста программы можно использовать бесплатную утилиту Resource Hacker. Откройте исполняемый файл программы в Resource Hacker.
В дереве слева перейдите в раздел Manifest и откройте манифест программы. Обратите внимание на строки:
<requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges>
Именно благодаря опции requireAdministrator Windows всегда запускает эту программу с правами администратора.
Измените requireAdministrator на asInvoker и сохраните изменения в exe файле.
Обратите внимание, что теперь у иконки программы пропал щит UAC и вы можете запустить ее без запроса прав администратора с привилегиями текущего пользователя.
Если исполняемый файл программы подписан цифровой подпись (сертификатом Code Signing), то после модификации exe файла, он может перестать запускаться или выдавать предупреждение.
В этом случае можно заставить программу использовать внешний файл манифеста. Создайте в каталоге с ехе файлом текстовый файл
app.exe.manifest
(например Autologon.exe.manifest) и скопируйте в него код манифеста из Resource Hacker. Измените requireAdministrator на asInvoker. Сохраните файл.
Чтобы Windows при запуске приложений всегда пробовала использовать внешний файл манифеста, включите специальный параметр реестра:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f
Перезагрузите Windows и убедитесь, что программа использует внешний файл манифеста, и запускается без прав администратора.
Запуск программы с сохраненным паролем администратора
Если способы запуска программы через режим RunAsInvoker не работают для вашего устаревшего приложения, можно попробовать запускать такие программы в сессии пользователя с помощью сохраненного пароля администратора. Этот способ мы целенаправленно оставили последним, т.к. это наименее безопасный способ запуска программ без предоставления прав локального администратора пользователю.
Создайте на рабочем столе новый ярлык для запуска программы. Укажите имя компьютера, имя локального администратора и полный путь к исполняемому файлу программы.
Например:
runas /user:wks-1122h2\root /savecred "C:\CorpApp\myapp.exe"
Запустите ярлык под пользователем. При первом запуске откроется командная строка, в которой нужно будет указать пароль администратора.
Утилита RunAs при запуске с параметром /SAVECRED сохраняет имя пользователя и пароль в диспетчере паролей Windows (Credentials Manager).
При следующем запуске ярлыка утилита runas автоматически получит сохраненный пароль из Credentials Manager и использует его для запуска программы от имени указанного локального администратора (пароль не запрашивается повторно при каждом запуске).
Вы можете вывести список пользователей с сохраненными паролями в Credential Manager с помощью команды:
RunDll32.exe keymgr.dll,KRShowKeyMgr
В Windows 11 при запуске такого ярлыка появляется ошибка:
RUNAS ERROR: Unable to run - C:\CorpApp\myapp.exe 740: The requested operation requires elevation.
Чтобы исправить ошибку, отредактируйте команду в свойствах ярлыка. Замените ее на:
C:\Windows\System32\runas /profile /user:WKS-1122H2\root /savecred "cmd.exe /C C:\CorpApp\myapp.exe"
Как мы указывали выше, использование параметра
/savecred
не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой программы или команды под данными привилегиями, или даже сменить пароль пользователя с правами администратора. Кроме того, сохраненные пароли из Credential Manager можно получить в открытом виде с помощью утилит типа Mimikatz, лучше <запретить использование сохраненных паролей.
В Windows можно заблокировать возможность сохранения паролей в Credential Manager с помощью параметра групповой политики Network access: Do not allow storage of passwords and credentials for network authentication (Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options).
Преодолеть недостаток использования сохраненного пароля через runas позволяют несколько сторонних утилит. Например, AdmiLink, RunAsRob, RunAsSpc. Эти программы позволяют сохранить пароль администратора в зашифрованном виде и безопасно запустить программу с правами администратора. Эти утилиты проверяют при запуске путь и контрольную сумму исполняемого файла и не позволят запустить произвольную программу.
Распространённый совет по решению проблем с запуском или работой какой-либо программы или игры — попробовать запустить её от имени Администратора, часто предполагается, что пользователь уже знает, как это сделать, но это не всегда верно для начинающих.
В этой инструкции подробно о том, как запустить любую игру или программу как Администратор в Windows 10 различными способами.
- Запуск игр и программ как Администратор
- Видео инструкция
- PsExec и NirCmd
Способы запуска программы как Администратор
Учитывайте, что для возможности выполнения описанных далее шагов, ваша учётная запись должна иметь соответствующие права администратора в системе или, при их отсутствии, вам потребуется ввести пароль такой учётной записи. Также будьте осторожнее с запуском малоизвестных вам программ от администратора (так как тем самым вы им даёте права на почти любые изменения в системе), предварительно проверьте такую программу на вирусы онлайн.
В Windows 10 возможны разные методы запуска программ и игр от имени Администратора, по порядку рассмотрим их все.
- Если ярлык программы или её исполняемый EXE файл находятся в известной вам папке или на рабочем столе Windows 10, просто нажмите по такому ярлыку правой кнопкой мыши и выберите пункт «Запуск от имени Администратора».
- Для запуска программы от имени администратора из меню Пуск, нажмите по значку такой программы правой кнопкой мыши, выберите пункт «Дополнительно» и нажмите по пункту «Запуск от имени Администратора».
- Один из самых простых способов запуска ПО с повышенными правами — использование поиска в панели задач: набираем в поиске название программы и, если она была найдена, нажимаем по результату правой кнопкой мыши и выбираем пункт контекстного меню «Запуск от имени администратора». Для некоторых программ (например, командной строки) такой пункт будет отображаться в панели справа от результата поиска.
- Если значок программы, которую нужно запустить от администратора находится только в панели задач, способов прямого запуска из этого расположения я предложить не могу, но знайте, что эти ярлыки фактически находятся в папке (просто вставьте этот путь в адресную строку проводника и нажмите Enter)
%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
и уже оттуда запускать их от администратора можно первым способом.
- И ещё один вариант: запустите командную строку от имени Администратора, в ней введите путь к нужной программе и нажмите Enter — программа также запустится от имени администратора.
Как сделать, чтобы программа или игра всегда запускалась с повышенными правами
Если вы не хотите каждый раз проделывать описываемые действия и требуется, чтобы выбранная программа или игра всегда запускалась от имени администратора, вы можете сделать следующее:
- Нажмите правой кнопкой мыши по ярлыку или значку (исполняемому файлу) и откройте пункт «Свойства».
- Откройте вкладку «Совместимость» и отметьте пункт «Запускать эту программу от имени администратора», затем примените настройки.
И ещё один момент: значки некоторых программ имеют изображение щита в правом нижнем углу — такие программы всегда запускаются с правами администратора: это необходимое условие для их работы, заданное разработчиками.
Видео инструкция
Запуск программ с правами администратора и не только с помощью PsExec или NirCmd
Для опытных пользователей (а скорее даже не для них, а для администраторов), понимающих стоящие перед ними задачи и готовых разобраться, может оказаться полезной утилита PsExec, доступная в составе PsTools на Microsoft Sysinternals — https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Обычно её используют для запуска инструментов на удаленной машине, но можно применить и на локальном компьютере.
Например, с помощью psexec, мы можем запустить программу от имени администратора (в том числе из bat-файла) без запроса контролей учётных записей следующим образом (первый вариант для запуска от имени Администратора программы, не требующей повышения прав по умолчанию, второй — для программ, которым это требуется, например, regedit):
psexec -u Администратор -p password путь_к_program.exe psexec -u Администратор -p password "cmd.exe" /c start путь_к_программе_с_запросом_uac
Это лишь примеры, не рекомендую такое применение. Для работы приведённой команды встроенная учётная запись администратора локального компьютера должна быть активна и иметь пароль (в команде — password), иначе потребуются дополнительные настройки локальной политики безопасности. Существуют и иные варианты реализации необходимых действий в psexec, включая запуск программ от имени системного аккаунта и не только. Ещё одна утилита командной строки с иными возможностями, но также позволяющая выполнить запуск приложения с повышенными правами — NirSoft NirCmd.
Как разрешить обычному пользователю запускать программу от имени Администратора без ввода пароля
Несмотря на то, что мало кто следует этому подходу на домашних компьютерах, но самое разумное в семье — не давать всем пользователям Windows прав администратора, а создавать для них отдельные учетные записи с правами простого пользователя. Однако, в некоторых случаях это может вызвать проблемы: например, если какая-то нужная этому пользователю игра или программа требует наличия прав администратора.
В этой инструкции подробно о том, как сделать так, чтобы обычный пользователь Windows 11/10 мог запускать нужные программы с правами администратора, но не знал пароля и не имел таких прав в системе в целом. На близкую тему: Как установить программу без прав администратора.
Разрешение простым пользователям запуска программ от имени Администратора с помощью RunAs Tool
Возможно, самый простой и интуитивно понятный метод — использовать бесплатную стороннюю утилиту RunAsTool, скачать которую можно с официального сайта разработчика.
Шаги при использовании для простой задачи обеспечения возможности запуска программы, требующей прав администратора в обычном аккаунте, будут следующими:
- Запустите RunAs Tool — удобнее будет запускать прямо в учетной записи обычного пользователя.
- При первом запуске вас попросят выбрать администратора и ввести его пароль, сделайте это.
- Перетащите файлы программы или программ, которые нужно запускать от имени администратора в учетной записи обычного пользователя, задайте нужные параметры запуска.
- Нажмите правой кнопкой мыши по добавленной программе и выберите пункт «Создать ярлык» — на рабочем столе будет создан ярлык для запуска этой программы: она будет запускаться с настроенными вами правами, но не будет требовать пароль администратора.
При следующем запуске RunAs Tool она откроется в режиме просмотра добавленных программ и не запросит пароля, при этом запускать программы, ранее добавленные в список можно прямое из окна утилиты, просто дважды нажав по ним. Если требуется отредактировать список программ, в меню «Файл» выберите пункт «Запуск режима редактирования» и снова введите пароль администратора.
Помимо графического интерфейса, программа поддерживает и режим командной строки, но в данном материале этот подход рассматриваться не будет, при необходимости информацию о командах можно найти на официальном сайте программы.
Использование встроенных средств системы
Если вы не хотите прибегать к сторонним программам есть встроенные средства — утилиту RunAs для запуска от имени другого пользователя.
Суть способа сводится к следующему:
- Создайте ярлык (как это сделать), в котором в поле «Объект» следует прописать
runas /profile /user:ИМЯ_КОМПЬЮТЕРА\ИМЯ_ПОЛЬЗОВАТЕЛЯ /savecred "cmd.exe /k ПУТЬ_К_ФАЙЛУ_ПРОГРАММЫ"
Указывать следует имя пользователя с правами администратора, а посмотреть эти данные можно с помощью команды whoami в командной строке, запущенной от имени администратора (учитывайте, имя пользователя в учетной записи Майкрософт может отличаться от отображаемого в системе, поэтому лучше посмотреть в командной строке). Путь к программе не должен содержать пробелов.
- Запустите этот ярлык в учетной записи простого пользователя. При первом запуске будет запрошен пароль администратора, при последующих — запуск будет производиться без его ввода.
Ранее можно было выполнять запуск программы командой напрямую:
runas /profile /user:ИМЯ_КОМПЬЮТЕРА\ИМЯ_ПОЛЬЗОВАТЕЛЯ /savecred "ПУТЬ_К_ФАЙЛУ_ПРОГРАММЫ"
В последних версиях Windows это не срабатывает, поэтому приходится использовать вариант с запуском cmd.exe с помощью runas, а уже из cmd — выполнение запуска нужного исполняемого файла.
[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет
Время на прочтение7 мин
Количество просмотров214K
(с) Вася Ложкин.
К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.
Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…
Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.
Ну, и зачем тебе права?
Программа может запрашивать права администратора условно в двух случаях:
- Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
- Когда программу скомпилировали со специальным флагом «Требовать права администратора».
С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:
Куда это лезет этот 7Zip?
И по результатам исследования выдаем права пользователю на нужный каталог или ветку реестра.
Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.
Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:
- asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
- highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
- requireAdministrator. Программа будет требовать права администратора в любом случае.
Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.
Нет, не будет тебе прав
В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.
Простейшим вариантом работы с этим механизмом будет использование переменных среды.
Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:
Запрос повышение прав.
Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:
set __COMPAT_LAYER=RUNASINVOKER
То запроса UAC не будет, как и административных прав у приложения:
Бесправный редактор реестра.
Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?
С конкретным примером такой неприятной программы можно столкнуться при загрузке классификаторов банков из 1С с сайта РБК по ссылке http://cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдается на откуп самим пользователям и нет возможности поменять загрузку на bnk.zip (а современные 1С это поддерживают), то приходится придумывать костыли. Ведь bnk.exe — самораспаковывающийся архив, в котором зачем-то прописано «Требовать права администратора».
Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.
Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.
Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:
Создаем исправление приложения.
Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).
Далее необходимо в списке исправлений выбрать RunAsInvoker.
Выбираем нужный фикс.
Все остальное оставляем по умолчанию, сохраняем базу данных. Должно получиться примерно так:
Созданный фикс для bnk.exe.
После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.
Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.
Ну ладно, держи права
Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.
Ну, посмотрим, что из этого выйдет.
Команда:
runas /savecred /user:Администратор "C:\Program Files\7-Zip\7zFM.exe"
Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.
)
Вводим пароль.
Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.
Зато runas может быть полезен, когда сотрудник знает пароль администратора, но работает под ограниченной учетной записью (по идее так должен делать каждый системный администратор).
Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.
Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».
Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:
$Cred = Get-Credential
Затем сохранить пароль в зашифрованном виде в файл:
$Cred.Password | ConvertFrom-SecureString | Set-Content c:\pass.txt
И теперь использовать этот файл для неинтерактивной работы:
$username = "Domain\Администратор"
$pass = Get-Content C:\pass.txt | ConvertTo-SecureString
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass
К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:
$AESKey = New-Object Byte[] 32
[Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey)
$AESKey | out-file C:\password_aes.key
Теперь при помощи этого ключа пароль можно зашифровать:
$Cred.Password| ConvertFrom-SecureString -Key (get-content C:\password_aes.key
)| Set-Content C:\pass.txt
И расшифровать:
$pass = Get-Content C:\pass.txt | ConvertTo-SecureString -Key (get-content C:\password_aes.key)
К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.
В свое время я использовал для решения подобных задач свой любимый AutoIt, где компилировал скрипт с командой RunAs и радовался… До тех пор, пока не узнал, что AutoIt (особенно старых версий) декомпилируется на раз-два.
Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.
На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.
Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.
Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).
Основное окно программы.
Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.
Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.
На первый взгляд все выглядит безопасно, но, к сожалению, код программ закрыт, и насколько можно доверять разработчику — вопрос.
Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.
В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.
RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.
Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.
Основное окно программы.
Программа богато документирована на официальном сайте.
У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.
Мне остается только добавить, что это ПО бесплатно только для личного использования.
Но учтите, что из программы, запущенной под административными правами, можно натворить бед. Например, запустить привилегированную командную консоль через диалог Файл — Открыть.
Запускаем cmd.exe прямо из редактора реестра.
Немного защититься помогут политики запрета контекстного меню и прочих диспетчеров задач, часть из которых может настроить AdmiLink. Но в любом случае следует быть осторожным.
А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.
Как обойти забытый пароль администратора в Windows 10/8/7
Пароль администратора Windows может защитить ваш компьютер от несанкционированного доступа. Если вы хотите внести изменения в системные настройки или установить/удалить/обновить программное обеспечение, вам потребуется ввести пароль администратора в Windows. Что делать, если вы забыли пароль администратора? Чтобы успешно обойти пароль администратора в Windows 10/8/7, вы можете сделать так, как показано в следующих абзацах. Эта статья покажет вам 4 простых способа обойти пароль администратора Windows 10/8/7. Просто читайте и следуйте.
- Часть 1. Обход забытого пароля администратора Windows
- Часть 2: 3 других способа обойти пароль администратора
- Часть 3. Часто задаваемые вопросы об обходе пароля администратора
Если вы столкнулись с забытым паролем администратора и утерянным паролем для входа в Windows, вы можете использовать imyPass сброс пароля Windows решить проблему. Программное обеспечение для сброса пароля Windows может найти и удалить пароль Windows без потери данных. Все ваши исходные файлы и настройки в безопасности.
Просто следуйте инструкциям на экране, чтобы взломать пароль администратора Windows. Интуитивно понятный интерфейс и простые в использовании опции удобны для новичков. Кроме того, вы можете создать новую учетную запись администратора Windows, чтобы снова получить права администратора для работы в Windows. Одним словом, вы можете удалить пароль администратора, не зная его, на всех компьютерах с Windows.
4 000 000+ загрузок
Сбросьте и удалите исходный пароль администратора Windows.
Запишите диск восстановления пароля администратора Windows на CD/DVD или загрузочный USB-накопитель.
Создайте новую учетную запись Windows с вероятностью успеха 100%.
Обход пароля администратора в Windows 10/8.1/8/7/XP/Vista без потери данных.
Поддержка широкого спектра настольных компьютеров и ноутбуков, включая Dell, IBM, Sony, HP, Lenovo, ASUS, Acer, Toshiba и т. д.
Шаг 1Бесплатно скачайте, установите и запустите imyPass Windows Password Reset на обычном компьютере с Windows. Завершите процесс настройки. Нажмите Записать CD/DVD или же Записать USB на основе вашего плана покупки. Таким образом, вам нужно вставить чистый CD/DVD или USB в этот обычный компьютер. После процесса записи диска с обходом пароля нажмите ХОРОШО а затем выньте сгоревший диск.
Шаг 2Перейдите к компьютеру, заблокированному паролем администратора. Нажимать F12 или же ESC на клавиатуре. Вы войдете в Меню загрузки. Выделите вставленный USB-накопитель или CD/DVD с помощью клавиши со стрелкой вверх/вниз. Затем нажмите Войти на клавиатуре, чтобы двигаться дальше. Сохранить изменения и выйти Меню загрузки. Ваш компьютер немедленно перезагрузится.
Шаг 3Запустите imyPass Windows Password Reset после перезагрузки. Выберите текущую операционную систему Windows и учетную запись пользователя, которую вы используете. Нажмите Сброс пароля с последующим Да подтвердить. После сброса пароля администратора извлеките диск или дисковод. Позже вы можете перезагрузить компьютер, чтобы получить доступ к правам администратора без ввода пароля.
Шаг 4После обхода пароля администратора компьютера вы можете создать новую учетную запись и пароль администратора Windows. Нажмите Добавить пользователя и введите имя пользователя и пароль администратора. Нажмите ХОРОШО с последующим Перезагрузить чтобы войти в ваш заблокированный компьютер с новой учетной записью.
Часть 2: 3 других способа обойти пароль администратора
Если вы хотите внести изменения в свой компьютер Windows без ввода пароля, также можно использовать следующие инструменты обхода пароля администратора Windows. Вы можете избавиться от старого пароля администратора в Windows 10 и более ранних версиях.
Способ 1: обойти пароль администратора с помощью диска сброса пароля Windows
Если вы создали диск сброса винды ранее вы можете обойти и изменить предыдущий пароль администратора на ПК с Windows.
Шаг 1Перезагрузите Windows. Введите что-нибудь в поле пароля. Затем нажмите Войти на вашей клавиатуре. Шаг 2Вы можете увидеть Сброс пароля ссылку под полем пароля. Нажмите на нее, чтобы получить Мастер сброса пароля. Шаг 3Вставьте диск или диск сброса пароля администратора в свой компьютер. Шаг 4в Сбросить пароль учетной записи пользователя экран, введите и подтвердите новый пароль администратора. Другая информация об учетной записи администратора останется неизменной. Шаг 5Нажмите Следующий и следуйте его мастеру, чтобы обойти забытый пароль администратора Windows.
Способ 2: разблокировать пароль администратора, ответив на контрольные вопросы
Если вы потеряете или забудете пароль администратора Windows 10, вы можете использовать контрольные вопросы, чтобы решить проблему. Этот метод работает для людей, которые ранее задавали контрольные вопросы. Если да, вы можете следовать этому руководству по разблокировке пароля администратора Windows 10.
Шаг 1Включите заблокированный компьютер с Windows. Выберите учетную запись администратора на экране входа. Шаг 2Введите неверный пароль в нужном месте. Нажмите OK, когда вам будет предложено ввести неверный пароль администратора. Шаг 3Нажмите на Сброс пароля ссылка для доступа к трем контрольным вопросам. Шаг 4Дайте правильные ответы на секретные вопросы. Затем нажмите Представлять на рассмотрение для сброса нового пароля администратора в Windows 10. Старый пароль администратора Windows 10 удален.
Способ 3: сброс пароля администратора с помощью командной строки
Командная строка может быть вашим бесплатным инструментом сброса пароля администратора Windows 10. Учетная запись администратора Windows по умолчанию не имеет защиты паролем. Если вы ранее включали встроенную учетную запись администратора, вы можете обойти пароль администратора в Windows 7 с помощью CMD.
Шаг 1Включите компьютер с Windows. Нажимать F8 на клавиатуре несколько раз. Не останавливайтесь, пока не увидите Расширенные параметры загрузки экран. Шаг 2Используйте клавиши со стрелками вверх и вниз, чтобы выбрать Безопасный режим с командной строкой вариант. Шаг 3нажмите Войти ключ, чтобы двигаться дальше. Теперь вы можете загрузиться в командную строку с правами администратора. Шаг 4Тип чистый пользователь во всплывающем черном диалоговом окне. Нажимать Войти для запуска команды. Шаг 5Вы можете увидеть все учетные записи Windows в белом интерфейсе. Найдите учетную запись администратора, которую вы хотите сбросить. Шаг 6Тип чистый пользователь adminaccount adminpassword. Замените adminaccount и adminpassword данными вашей новой учетной записи администратора. Нажмите Enter, чтобы изменить и сбросить пароль администратора в Windows 7.
Часть 3. Часто задаваемые вопросы об обходе пароля администратора
Как обойти пароль администратора в Windows, не вводя его?
Если вы не хотите вводить пароль администратора, вы можете отключить его с помощью Панель управления. Убедитесь, что вы единственный пользователь этого компьютера с Windows. Перейти к винде Начинать меню и открыть Панель управления. Перейдите к Учетные записи пользователей. Выбирать Семейная безопасность с последующим Учетные записи пользователей. Выбирать Удалить пароль. Укажите исходный пароль администратора Windows 7. Наконец, нажмите Удалить пароль чтобы завершить процесс обхода пароля администратора.
Как обойти пароль администратора с учетной записью суперадминистратора?
Выключите и снова включите заблокированный компьютер с Windows. На стартовом экране Windows нажмите кнопку Сдвиг клавишу на клавиатуре пять раз. После активации учетной записи суперадминистратора щелкните учетную запись и перейдите в панель управления Windows. Теперь вы можете изменить пароль администратора и перезагрузить компьютер.
Как обойти пароль администратора на Mac?
Если вы знаете пароль, вы можете развернуть Яблоко список и выбрать Системные настройки. Нажмите Пользователи и группы. Выберите свое имя пользователя Mac. Нажмите Изменить пароль и следуйте инструкциям, чтобы завершить процесс.
Вывод
Вот как обойти пароль администратора в Windows 10/8/7. Вы можете использовать imyPass для сброса пароля Windows, CMD, диск для сброса пароля и контрольные вопросы для успешного удаления пароля Windows. Можно удалить старый пароль администратора и создать новый на любом компьютере с Windows. Пожалуйста, дайте нам знать, если у вас есть какие-либо предложения или вопросы.
Подробнее Чтение
- Как обойти пароль экрана входа в Windows 10 [2025 New]
- Забыли пароль администратора в Windows 10 Pro? Исправьте сейчас
- Учебное пособие по 5 способам получения прав администратора Windows 10