AutoIt и Windows Vista/7

AutoIt и Windows Vista/7

Windows Vista приносит новые механизмы безопасности, чтобы ограничить выполнение файлов, требующих прав администратора. Даже администратор будет получать запрос на разрешение, когда файл пытается выполнить какие-нибудь администраторские операции (такие, как, например, запись в раздел реестра HKEY_LOCAL_MACHINE или запись в каталог C:\Windows). Этот механизм называется Контроль учётных записей пользователей (англ. User Account Control, UAC).

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

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

; Этот скрипт требует наличия полных прав администратора
#RequireAdmin

MsgBox(0, "Инфо", "У этого скрипта есть права администратора! ")


При запуске такого скрипта, AutoIt проверяет, есть ли у него права администратора и, если нет, он вызывает стандартный запрос операционной системы на повышение прав доступа. Если разрешение от пользователя не получено - скрипт завершает свою работу.


Запрос UAC

Запросы, которые Windows 7 показывает при запуске программ, требующих прав администратора, показаны ниже. Тип запроса зависит от того, какому пользователю он выводится (обычному или администратору). Примечание: все релизы AutoIt имеют цифровую подпись, однако бета-версии могут её не иметь. В этом случае запрос выглядит так же, как и для скомпилированного скрипта.


Запрос обычному пользователю

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


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

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


Скомпилированные скрипты

Скомпилированные скрипты (и, возможно, бета-версии AutoIt) не имеют цифровой подписи. В этом случае, запрос UAC выглядит "посерьёзнее":

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

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


Очень важно: имеет цифровую подпись AutoIt или скомпилированный скрипт, или нет, необходимо запускать скрипты ТОЛЬКО от источников, которым вы можете доверять!

Даже подписанный код может быть опасным!