Windows Vistaは管理者権限を要求するファイルの実行を制限するための新しいセキュリティ機能を持っています。たとえ管理者ユーザーであっても(レジストリキーHKEY_LOCAL_MACHINEやC:\Windowsへの書き込みなど)管理操作をともなう実行処理のたびにプロンプトが表示されます。これはユーザーアカウント制御(UAC)と呼ばれます。
デフォルト設定ではAutoItスクリプトは標準ユーザー権限で実行されますがスクリプト作成者はスクリプトに実行時に完全な管理者権限が必要かどうかAutoItに通知するためのオプション"タグ"を付けることが可能です。
スクリプト実行時に管理者権限を必要とするようにするには#requireadmin命令を次のようにスクリプト冒頭に書き込みます。
; このスクリプトは完全な管理者権限を必要とする
#requireadmin
MsgBox(0, "Info", "This script has admin rights! ")
スクリプト実行時にAutoItは完全な管理者権限が既に与えられているかどうかを調べます。もし与えられていない場合、オペレーティングシステムはユーザーが許可を与えるために"UAC プロンプト"に示すプロンプトを表示します。ユーザーによる許可が得られなかった場合スクリプトは終了します。
管理者権限を必要とするプログラムを実行した際にVistaが表示するプロンプトを下に示します。表示されるプロンプトの種類はユーザーが"標準ユーザー"か"管理者ユーザー"かによって異なります(管理者であっても管理操作をおこなうためには昇格許可を得る必要があることに注意してください)。注意:示してあるプロンプトはAutoItのデジタル署名バージョンでのものです。全てのリリースバージョンは署名されていますがベータバージョンはされてません。ベータバージョンでは下の"コンパイル済みスクリプト"に示す警告が表示されます。
標準ユーザープロンプト
権限を昇格させてスクリプト実行を継続するためには標準ユーザーはユーザー名を選択しパスワードを入力しなければなりません。
管理者ユーザープロンプト
既にユーザーが管理者で昇格だけが必要な場合、ユーザーはcontinueをクリックするだけでパスワードはいりません。
コンパイル済みスクリプト(とAutoItのベータバージョン)はデジタル署名されておらず、次に示すより深刻にみえる警告が表示されます。
処理を継続するためにユーザーはAllowをクリックしなければなりません(標準ユーザーの場合さらにパスワードを入力しなければなりません)。
あなたが自分のAuthenticode署名を持っている場合はコンパイル済みスクリプトに署名した方がいいでしょう。
重要: AutoItであろうとコンパイル済みスクリプトであろうと、署名されているかどうかに関わらず信頼できる開発元からのスクリプトのみ実行してください!
署名されたコードであっても悪意のあるものがあります!