管理者権限が必要なアプリをスタートアップで起動する場合は、タスクスケジューラで起動する必要があります。
この時、次の3点の注意が必要です。
- 管理者権限で動作させるには、「最上位の特権で実行する」にチェックする。
- 「遅延時間を指定する」を指定しないと、タスクトレイアイコンが表示されない。
- 設定を一旦エクスポートして値を書き換えないと、タスクの優先度が「通常以下」になる。
特にタスクの優先度は、GUIでは指定できないので、タスクの設定を XML形式でエクスポートし、優先度を書き換えて戻す必要があります。
Priority の箇所の値を 7 から 6 に変えると、タスクの優先度が「通常」になります。
ここでは、Priority やその他の設定がされた XMLを用意しました。
次の内容で XMLファイルを作成し、タスクスケジューラの操作メニュー - インポート で読み込んでください。
XMLファイル名と同じタスク名のタスクが登録されます。
test.xml
<?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <Triggers> <LogonTrigger> <Enabled>true</Enabled> <Delay>PT30S</Delay> </LogonTrigger> </Triggers> <Principals> <Principal id="Author"> <LogonType>InteractiveToken</LogonType> <RunLevel>HighestAvailable</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>PT0S</ExecutionTimeLimit> <Priority>6</Priority> </Settings> <Actions Context="Author"> <Exec> <Command>test</Command> </Exec> </Actions> </Task>
また、上記の XML では以下で説明する内容が設定されています。
後はご自身で、全般タブの「名前」でタスク名を変更し、トリガータブで起動するプログラムの指定をするだけでOKです。
タスクの優先度を設定しない場合は、XMLをインポートせずに以下の設定でOKです。
全般タブ:「最上位の特権で実行する」にチェックします。
ユーザーアカウント制御のダイアログが出ないようになります。
「名前」の箇所で、タスク名を変更します。
トリガータブ:「新規」を押して、次の画面の設定をします。
「タスクの開始」を “ログオン時” にします。
「遅延時間を指定する」で 30秒間 を指定します。
タスクトレイアイコンを持つアプリは遅延時間を指定して遅れて起動させないと、タスクトレイにアイコンが表示されません。
操作タブ:「新規」を押して、実行するアプリを登録します。
サンプルのXMLファイルでは、test が指定されています。
条件タブ:「コンビューターをAC竜源で使用している場合のみタスクを問始する」のチェックを外します。
チェックを外さないと、バッテリー動作時にスタートアップで起動しないようになってしまいます。
設定タブ:「タスクを停止するまでの時間」のチェックを外します。
スタートアップで起動したアプリは、通常ずっと動作させるはずなので、この設定によって停止しないようにします。
以上の設定で、管理者権限が必要なアプリをスタートアップで起動できるようになります。
参考
管理者権限が必要な常駐アプリはタスクスケジューラでスタートアップさせる
管理者権限で実行しなければいけない常駐アプリのスタートアップ設定方法 | Tanweb.net
UACが有効のまま、確認なしで、アプリを管理者権限で起動する方法 Jin/Gy-Oのブログ/ウェブリブログ
処理時間が短くなった!Windowsのタスク実行が遅い場合は「優先度」を見直しましょう | パソコンが便利で楽になるものを紹介しています
タスクスケジューラから実行したプログラムがタスクトレイに表示されない場合の対処 | 躁うつ病患者と難病患者の手記
コメント