Как запустить программу без прав администратора и обойти подсказку UAC?
При запуске многие программы требуют повышения прав, хотя на самом деле им не нужны права администратора для их нормальной работы. При запуске такой программы под учетной записью обычного пользователя (если на компьютере включен контроль учетных записей пользователей) появится приглашение UAC, и пользователю потребуется ввести пароль администратора. Чтобы обойти этот механизм, многие пользователи просто отключают UAC или предоставляют привилегии администратора пользователю на компьютере, добавляя учетную запись пользователя в локальную группу «Администраторы». Конечно, оба метода небезопасны.
Приложению могут потребоваться права администратора для изменения некоторых файлов (журналов, конфигураций и т. д.) В своей папке C:Program Files (x86)Приложение. По умолчанию пользователи не имеют прав на редактирование (запись и изменение) этого каталога. Для нормальной работы этой программы требуются права администратора. Чтобы решить эту проблему, необходимо вручную предоставить разрешение на изменение и/или запись для пользователя (или группы пользователей) в папке приложения на уровне NTFS.
Командная строка
Рекомендуем воспользоваться меню кнопки «Пуск». При этом, если на компьютере стоит Windows 10, добраться до командной строки можно просто кликнув правой кнопкой мыши «Пуск». Затем выбирается пункт «Командная строка (администратор)». Независимо от версии операционной системы вводится такая команда: net user администратор /active:yes:
Установка прав администратора для программ
Зачастую программы выполняют определённые функции только тогда, когда у вас есть права администратора. Чтобы программа всегда запускалась от имени администратора, щёлкаем правой кнопкой мыши по её ярлыку и нажимаем на «Свойства».
Далее ставим галочку возле «Выполнять эту программу от имени администратора».
Однако, такие привилегии нужны далеко не всегда и в целях безопасности мы бы не советовали включать права «Администратора» абсолютно для всех приложений.
Аналогично и с некоторыми файлами-папками – они тоже могут требовать права администратора для выполнения некоторых действий. Так, к примеру, простой пользователь не сможет удалить или переименовать папку «system», находящуюся в директории «C/Windows/».
Те же ограничения наложены и на прочие скрытые системные файлы и папки, коих для безопасности системы скрыто предостаточно. Как их отобразить и сделать собственную папку скрытой подробно описано в статье «Как открыть скрытые папки в Windows 7».
Ещё один способ включить права администратора
Заключение
Это основная инструкция того, как получить права администратора в Windows 7. Однако, лучше выставлять их для конкретной программы, чтобы какой-либо вирус не заразил файловую систему полностью. В основном обладать правами админа необходимо для утилит, работающих с системой.
Альтернативные способы сброса пароля
Для системы Windows 7 и более поздних версий существуют альтернативные способы изменения заветной комбинации. Однако данные методы являются более трудоемкими и подойдут далеко не всем пользователям, которые пытаются разобраться с вопросом, как устанавливать программы без прав администратора.
Они предполагают работу с установочным диском Windows 7 (менее трудоемкая операция) и внесение специфических правок в реестр (более сложный способ). Способы подходят для квалифицированных пользователей, которые хорошо разбираются в том, как устроена операционная система. Нет смысла использовать их при наличии простой и функциональной утилиты Offline NT Password and Registry Editor, если только в образовательных целях.
Как установить программу без прав администратора
Скачивая программы с сайтов разработчиков или других источников, вы, наверное, не раз замечали, что одни из исполняемых файлов этих программ имеют на себе характерную иконку щита, а другие нет. Что это означает? А означает это следующее: если исполняемый файл программы или её ярлык на рабочем столе отмечен этим жёлто-голубым значком, значит данная программа требует прав администратора. В связи с этим у многих пользователей возникает вопрос: а можно ли каким-то образом обойти это ограничение и установить/запустить программу в обычной учётной записи пользователя? Ответ на него будет зависеть от того, для каких целей разрабатывалась программа и с какими объектами файловой системы ей предстоит работать.
Как установить программу без прав администратора
В действительности многие из таких программ прекрасно могут работать без прав администратора, если владельцем компьютера им предоставлены соответствующие разрешения на папку Program Files и используемые ими ветки реестра. Являясь же обычным пользователем, вы можете устанавливать и запускать только те программы, которые не используют системный каталог ProgramFiles, если же вы запустите установочный файл приложения, требующего повышенных прав, то, во-первых, автоматически сработает UAC (контроль учётных записей), во-вторых, на экране появится окно с запросом пароля администратора.
Отключение админом UAC не решает проблемы, поскольку устанавливаемая программа всё равно попросит вас ввести пароль администратора. Что можно предпринять в этой ситуации? Воспользоваться функцией, или правильнее сказать, уровнем прав текущего пользователя AsInvoker, подавляющим UAC и сообщающим программе, что она может запуститься с привилегиями родительского процесса, то есть буквально с теми правами, которые имеются на данный момент у пользователя. Но «может» ещё не означает, что она действительно запустится, ведь привилегии в системе AsInvoker не повышает.
Если в файле манифеста программы чётко прописано, что запускаться/устанавливаться программа должна исключительно с правами администратора, то AsInvoker не поможет. Так, нам так и не удалось установить системный настройщик Winaero Tweaker, а если бы и удалось, мы бы всё равно не смогли им пользоваться. Теперь, когда вы приблизительно знаете, как это работает в теории, перейдём к решению поставленной задачи на практике. Всё очень просто. Создайте Блокнотом обычный текстовый файл и вставьте в него следующий код:
cmd /min /C «set __COMPAT_LAYER=RunAsInvoker && start «» «%1″»
Сохраните файл как install.cmd (имя можно дать произвольное, главное, чтобы расширение было CMD или BAT), а затем перетащите на созданный скрипт установочный файл программы, которую хотите установить без прав администратора. На секунду на экране появится окно командной строки, а затем запустится мастер-установщик приложения. Когда вы дойдёте до шага «Папка установки», вам нужно будет заменить стандартный путь C:ProgramFilesназвание-программы другим путём, ведущим к какому-нибудь каталогу в профиле пользователя. Например, вы можете создать папку Programs в расположении %userprofile% и.
В неё то и нужно устанавливать программы, поскольку на стандартную папку ProgramFiles у вас всё равно нет прав. Ярлык установленной программы на рабочем столе и в меню создан, скорее всего, не будет, поэтому вам потребуется зайти в папку с инсталлированным приложением и создать его вручную.
Теперь что касается минусов данного решения. Весьма вероятно, что установленные программы не смогут сохранять часть своих настроек, если по умолчанию они должны хранится в тех ключах реестра, которые обычный пользователь не может изменять по причине отсутствия у него прав администратора.
Использование AsInvoker в учётной записи администратора
И в завершении хотелось бы сказать пару слов о том, что AsInvoker даёт администратору. Когда вы работаете в учётной записи администратора, все программы запускаются с правами вашей учётной записи (не путайте это, пожалуйста, с запуском программ от имени администратора, то есть с повышением привилегий в рамках одной учётной записи).
А теперь предположим, что у вас есть программа, которой вы не хотите предоставлять права вашей учётной записи. Чтобы не создавать обычную учётную запись, вы можете воспользоваться функцией. Чтобы продемонстрировать разницу между запущенной обычным способом программой (в примере использовался штатный редактор реестра) и той же программой, запущенной через скрипт с прописанным в нём уровнем прав родительского процесса, мы добавили в Диспетчер задач дополнительную колонку «С повышенными правами».
В первом случае напротив процесса в этой колонке указано «Да», а во втором — нет, то есть редактор реестра запустился с пониженными привилегиями. Поскольку запущенный в таком режиме regedit утрачивает часть своих полномочий, некоторые ключи реестра окажутся недоступными для редактирования. Это же касается любой другой программы. Не имея соответствующих прав, такая программа, если она окажется небезопасной, уже не сможет перезаписать важные системные файлы и ключи реестра.
Использование Portable-версий программ
Для начала следует рассмотреть самый простой путь обхода ограничений, наложенных администратором. Сегодня существует огромный выбор портативных версий программ, которые не требуют установки для своего использования. Можно даже найти специальные подборки популярного софта Portable.
Приложения копируются на флешку или другой носитель, после чего их можно запускать на любом компьютере с правами обычного пользователя. Установки они не требуют. Пользователи, для которых компьютерная грамотность является не просто пустым звуком, знают об этой возможности. Если кому-то нужно воспользоваться популярной программой, нужно просто ввести в поисковике ее название с припиской Portable. Google и «Яндекс» выдадут большое количество страниц, где можно будет загрузить соответствующую портативную версию приложения.
Примеры скриптов PowerShell
Конечно, скрипт может выполнять по событию что угодно. Но поскольку статья в контексте устройств, я приведу конкретные примеры, чтобы придать решению законченный вид.
Управление состоянием устройства
Я уже показывал работу с модулем PNPDevice. Здесь я для разнообразия разберу отключение и включение камеры.
Выполнив Get-PNPDevice
в PowerShell от имени администратора, вы увидите список всех устройств. Ориентируясь на их классы и имена, вы легко можете вывести ИД устройства и его статус.
Get-PnpDevice | Where-Object Class -eq Camera | Format-List FriendlyName,InstanceId,Status FriendlyName : Integrated Camera InstanceId : USBVID_5986&PID_02D2&MI_007&153E4771&0&0000 Status : OK
У отключенного устройства будет статус Error. Теперь можно менять состояние устройства в зависимости от текущего статуса с помощью командлетов Enable-PNPDevice
и
Disable-PNPDevice
. Если статус OK – выключаем, иначе – включаем.
$id = «USBVID_5986&PID_02D2&MI_007&153E4771&0&0000» if ((Get-PNPDevice -InstanceId $id).Status -eq ‘OK’) < Disable-PNPDevice -InstanceId $id -Confirm:$False >else
Создание запланированного задания с триггером по событию
Пожалуй, самый простой способ — создать задание вручную, а для автоматизации — экспортировать его в XML и импортировать с schtasks
или командлетом PowerShell
Register-ScheduledTask
.
Register-ScheduledTask -Xml «C:temprunasadmin.xml» -TaskName «RunAsAdmin»
Чтобы создать задачу из консоли, придется немного разобраться с синтаксисом XPath. Ниже пример команды schtasks
, создающий в планировщике задание, которое будет выполняться от имени системы при появлении в журнале приложений события 777 от outsidethebox.
SCHTASKS /Create /TN «RunAsAdmin» /TR «powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -file C:RunAsAdmin.ps1» /SC ONEVENT /RU SYSTEM /EC Application /MO «*[System[Provider[@Name=»outsidethebox»] and (EventID=777)]]»
Что же касается PowerShell, я уже показывал создание запланированных заданий. С триггерами там все очень мутно, и создание триггера по событию требует отдельного разбора.
#Переменные $system = «NT AUTHORITYSYSTEM» #Создание задания $taskname = «RunAsAdmin» #Общие: выполнять от имени системы вне зависимости от входа $principal = New-ScheduledTaskPrincipal -UserId $system -LogonType ServiceAccount #Триггер по событию $trigger.Enabled = $true $trigger.Subscription = ‘ ‘ #Параметры: запускать при работе от батареи; запускать немедленно если пропущено $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -StartWhenAvailable #Команда… $execute = «powershell» #… и ее параметры командной строки $argument = «-ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -file ‘C:RunAsAdmin.ps1′» #Действие: «команда + параметры командной строки» $action = New-ScheduledTaskAction -Execute $execute -Argument $argument #Создать задание в планировщике Register-ScheduledTask -TaskName $taskname -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force #Для запуска от имени администратора измените $principal, а в конце команды↑ добавьте: -RunLevel Highest
В случае с произвольными событиями и источниками, заменяйте источник и событие в моих примерах или действуйте так:
Настройка запуска командной строки перед экраном входа в Windows.
— Если вы когда нибудь загружали сами Виндовс (любой), то вы должны знать, что в Биосе в настройках надо переключить на дисковод. И по умолчанию пойдет загрузка с установочного диска Windows 7.
— После этого в окне выбора языковых параметров нажмите «Далее» — щелкните «Восстановление системы» — «Далее» — «Командная строка».
— В командной строке наберите regedit и нажмите Enter. Откроется редактор реестра.
— Выделите раздел HKEY_LOCAL_MACHINE, как показано на рисунке ниже. Затем из меню Файл выберите пункт Загрузить куст.
— Перейдите на диск, где установлена Windows 7 (буква может отличаться от привычной С), и откройте файл:
— Введите произвольное имя для загружаемого раздела. В примере — 888.
— Перейдите в раздел
Затем щелкните два раза по параметру:
-CmdLine, введите cmd.exe и нажмите ОК.
-SetupType, замените 0 на 2 и нажмите ОК.
— Выделите раздел 888 в HKEY_LOCAL_MACHINE, затем из меню Файл выберите пункт Выгрузить куст.
— Извлеките установочный диск, закройте редактор реестра и командную строку, нажмите Перезагрузка в окне параметров восстановления.
Установить программное обеспечение без прав администратора
Не думайте, что вы не можете установить программу без прав администратора. По правде говоря, вы можете обнаружить, что действительно можете. Например, в случае Steam нет прав на установку, вы получите всплывающее окно с вопросом, хотите ли вы установить в качестве администратора в Windows. Однако в играх Steam и других случаях, когда вы хотите установить программное обеспечение без прав администратора, вам, возможно, придется предпринять несколько дополнительных шагов, чтобы запустить программу после загрузки. Вы просто перейдете в каталог, в котором он был установлен, щелкните правой кнопкой мыши на исполняемом файле и выберите «Свойства». Выберите вкладку «Совместимость» и установите флажок «Запускать эту программу от имени администратора».
Даже если приложения требуют пароль администратора для установки программ, Windows 10 может вызвать окно, которое может позволить вам установить его в любом случае. Если вы хотите установить программное обеспечение без прав администратора, когда программа установки спросит вас, хотите ли вы установить только для своей учетной записи или для всех пользователей, выберите «Только для меня». Это может решить проблему необходимости ввода пароля администратора для установки.