それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

タスクスケジューラで UACが必要なアプリ(Powertoys)を常駐化

タスクスケジューラで UACが必要なアプリを常駐化

PowerToys でキーボードのりマップを行うとUACが必要になるんですよ。

しかし、起動時にUACで起動するのが面倒くさいとわかります。

UACが必要なAppを自動承認して自動化したい。

どうせ常駐アプリケーションなんだし、Task Listに入るだけなので、起動さえさせてしまえばなんとかなる。

タスクスケジューラでもできる。

方法はいくつかあると思うが、タスクスケジューラのタスクを作成し、条件は起動時、起動はUACの特権で使うのが確実じゃないかと思うんですね。

タスクスケジューラでタスクを作成

トリガをユーザーログイン時に

自分自身がログインしたときに起動するようにします。 f:id:takuya_1st:20220126130124p:plain

UACのPrivilegesで起動させます。

f:id:takuya_1st:20220126130134p:plain

常駐アプリケーションなので終了チェックを無視

タスクスケジューラは「タスク実行」する機構なので、あまりに長時間に亘り起動しているとトラブル発生と解釈されて強制終了するようになっている。なのでこれをオフにする。

f:id:takuya_1st:20220126130147p:plain

終了しないタスクトレイ(Task List)のアプリなので

常駐アプリケーションを呼び出すだけなので、起動したら終了しないので、終了チェックをしないでいいと思います。

PowerToysは終了しないので、終了チェックができずに、「正常終了」と判断されません。

起動するだけのアプリを作る。

ただし、気になるようだったら、常駐アプリケーションを起動するプログラムを使って正常終了にしたほうがいいかもしれませんね

起動するだけのEXEをC#で作ってもいいのですが、Cmd.exeとStartコマンドで同じようなことができるので、そっちを使います。

cmd.exe /C "start "" "C:\Program Files\PowerToys\PowerToys.exe""

コマンド設定例

f:id:takuya_1st:20220126130158p:plain

PowerToysはこれでなんとかなる?

PowerToys はこれでなんとかなりそう。使い始めてまだ3日目ですが、特に問題なく常駐している。

Windowsは用語が難しいですね。。。

タスクスケジューラに登録するのは、タスクですし。

常駐アプリケーションはタスクトレイにあって、task list で見れるし、

実行中プログラムの一覧は、タスクマネージャーで、実行中プログラムはタスクだし、

Windowsのタスクという用語は不安定ですね。

参考資料

管理者権限が必要な常駐アプリはタスクスケジューラでスタートアップさせる