Quantcast
Channel: アル中ハイマーの独り言
Viewing all articles
Browse latest Browse all 653

パワフルなヤツを黙らせよ!

$
0
0
管理者権限の必要な複数のアプリケーションをバッチで起動したい!... そんなことがよくある。今までは、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 は、パワフルなヤツでいろんなことができそうだけど、なんとも中途半端な存在に映ってしまう今日このごろであった...

Viewing all articles
Browse latest Browse all 653

Trending Articles