Как открыть установщик с правами администратора

Как открыть установщик от имени администратора

Добрый день! Уважаемые читатели и гости одного из популярных ИТ-порталов для системных администраторов Pyatilistnik.org. В прошлый раз мы обсуждали инструменты и методы подключения к удаленному рабочему столу Windows. В сегодняшнем посте я хочу вам это показать. как выйти из ситуации, когда вы являетесь администратором компьютера, но не можете установить дистрибутив и получаете ошибку » Вы должны запускать инсталлятор от имени администратора «.

Описание проблемы

Я работаю в очень крупной организации, и поэтому мы можем легко найти поставщиков для некоторых работ. Была задача модернизировать сервис Директум, вот такой вот рабочий процесс. Мы нашли поставщика, создали для него виртуальную машину и дали ему полные административные права . Через какое-то время поставщик столкнулся с проблемой, что у него нет прав на установку программ и получил ошибку:

В английской версии это выглядит так это:

Операционная система Windows 10 1909.

Наверняка многие скажут, просто щелкните правой кнопкой мыши на файл и выберите « Запуск от имени администратора ». Сказано и сделано. Как видите, в MSI-файле этого элемента просто нет.

Попробуем, удерживая клавишу Shift, выбрать » Запустить от имени другого пользователя » из меню.

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

Как исправить ошибку «Необходимо запускать установщик от имени администратора»

Самый простой и действенный метод, который по своей практика, которую я использую, заключается в запуске командной строки или PowerShell в режиме администратора. Этот метод предотвращает ограничение запуска пакетов MSI в режиме администратора. Затем, например, при запуске командной строки вам нужно перейти в каталог, где находится ваш MSI-пакет. В моем примере это папка C:\Share . Выполните команду:

Мы используем команду dir для отображения содержимого каталога.

Запустите ваш пакет MSI.

Как как видите, теперь ошибка «При установке этой программы необходимо войти в систему как администратор» не появлялась и наш дистрибутив готов к дальнейшей установке.

Устанавливаем MSI через msiexec

Есть линейный инструмент команд вроде этого msiexec, если его запустить со специальным ключом, то он сразу установит MSI пакет, даже не нужно запускать командную строку в режиме администратора, там является ключом для этого . Запустите команду в cmd, PowerShell или обычно в окне запуска.

Установить от имени администратора

У вас также есть возможность отредактировать Windows Реестр, чтобы принудительно установить «Установить как менеджер» для пакетов MSI. Для этого вы можете скачать готовый файл реестра или создать свой собственный со следующим содержимым:

[HKEY_CLASSES_ROOT\Msi.Package\shell\runas]
@=»Установить от имени администратора .»

[HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command]
@=»msiexec /i \»%1\»»

Затем запустите его и примите изменения .

Теперь, когда вы щелкните правой кнопкой мыши пакет MSI, вы увидите «Установить от имени администратора»

Источник

[Admin Synopsis] Что делать, если программе нужны права администратора, а вам нет

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

Читайте также:  Как открыть точку выдачи emex

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

Попробуем проанализировать решения, позволяющие и программе работать, и не мешать с менеджером безопасности и

Зачем нужны права?

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

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

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

Куда идет этот 7Zip?

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

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

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

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

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

Нет, вы победите. Неправильно

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

Самый простой способ работы с этим механизмом — использование переменных окружения.

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

Колл для рейза.

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

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

Редактор реестра отключен.

Это можно использовать при запуске программ с пакетными файлами или путем добавления контекстного меню через реестр. Подробнее читайте в статье Как запустить программу без прав администратора и обойти подсказку UAC?

Конкретный пример такой уродливой программы можно найти, скачав классификаторы банков 1С с сайта РБК по ссылке http:// cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдано на откуп самим пользователям, а изменить загрузку на bnk.zip нет возможности (а современная 1С это поддерживает), то нужно искать костыли. Ведь bnk.exe — это самораспаковывающийся файл, на котором почему-то написано «Требуются права администратора».

Читайте также:  Как открыть тайник игоря ведьмак 3

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

Как обычно, документация по программному обеспечению доступна на официальном сайте, вы можете скачать ее как часть Windows Evaluation and Deployment Kit. Процесс устранения проблемы прост.

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

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

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

Затем выберите из списка исправление RunAsInvoker.

Выберите нужный патч.

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

Патч, созданный для bnk.exe.

Затем просто установите базу данных, щелкнув ее правой кнопкой мыши и выбрав Установить. Теперь пользователи смогут сами загружать банковские классификаторы.

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

Хорошо, сохраняйте свои права

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

Что ж, посмотрим, что получится.

RunAs фактически запускает 7zip с правами учетной записи «Администратор», запрашивает пароль и запоминает его. Тогда тег с этой строкой запуска будет без вопросов запускать 7zip от имени администратора.

)

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

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

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

Чуть интереснее в 2k20 возможности PowerShell и его работа с паролями. Дополнительные сведения см. в разделе Защита и шифрование паролей в сценариях PowerShell.

Вкратце, PS управляет паролями с помощью специального типа данных SecureString и объекта PSCredential. Например, вы можете ввести пароль интерактивно:

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

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

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

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

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

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

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

Читайте также:  Как открыть телефонную базу

Для решения этой проблемы существует несколько сторонних решений. Остановлюсь на нескольких из них.

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

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

Главное окно программа .

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

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

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

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

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

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

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

Главное окно программы.

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

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

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

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

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

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

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

Источник

Поделиться с друзьями
Решатор