管理者権限の必要な複数のアプリケーションをバッチで起動したい!... そんなことがよくある。今までは、DOS スクリプトでバッチファイルを作成し、これを管理者権限を与えたショートカットで実行していた。
尚、ショートカットには、[詳細設定]に "管理者として実行" というオプションがある。
そして今、マシンを入れ替え、マルチモニタの増築ついでに、バッチファイルをランチャーに埋め込みたい!... とふと思ってしまう。すると、バッチファイルにどうやって管理者権限を与えるか?という問題に出くわす。Linux なら、この手の問題で悩むことがあまりないのだけど...
おっと!PowerShell がありがたいオプションを持っていた。Start-Process スレッドで、"-verb runas" を指定すればいい。
しかし、これだけでは、PowerShell のウィンドウが開いて鬱陶しい。
さらに、ありがたいオプションがあった。"-WindowStyle Hidden" を指定すればいい。
例えば、こんな感じでバッチファイルを仕込んでおく...
powershell start-process hogehoge.bat -WindowStyle Hidden -verb runas
しか~し...
これでもほんの一瞬だけ PowerShell のウィンドウが開きやがる。なんとも中途半端な仕様である。この現象が気になるかどうかは人それぞれであろうが、おいらは気になって眠れそうにない。
ん~... どうやら外部の言語系で黙らせるしかなさそうだ。そして、何を使うか悩んでいると、Win 10 には、VBScript が標準装備されていた。中身がこんな感じの hogehoge.vbs ファイルを作成し、こいつをランチャーに埋め込んで実行することに...
CreateObject("WScript.Shell").Run "powershell start-process -WindowStyle Hidden hogehoge.bat -verb runas", 0
末尾の ",0" がおまじない。例えば、おいらが愛用している Rainmeter であれば、こんな感じで埋め込む。
...
[HOGEHOGE_EXECUTE]
Meter=xxx
LeftMouseUpAction =!execute ["hogehoge.vbs"]
...
ん~... 2段階で実行するのも...
PowerShell は、パワフルなヤツでいろんなことができそうだけど、なんとも中途半端な存在に映ってしまう今日このごろであった...
2019-07-14
登録:
コメントの投稿 (Atom)
1 コメント:
さっそく、つっこまれた!
管理者権限を与えたショートカットを、そのまま埋め込めばいいのでは、と。
例えば、こんな感じで...
[HOGEHOGE_EXECUTE]
Meter=xxx
LeftMouseUpAction =!execute ["hogehoge.lnk"]
...
なぜか?これでは管理者権限がうまく伝わらない。
コメントを投稿