PowerShellスクリプト自体はbatファイル作って-ExecutionPolicyで実行させれば終わり。
ただ、batを管理者権限で実行させると、スクリプト自体がデスクトップに置かれた場合にパスを取得するのが微妙に面倒くさい。
まず起動用のbat自体について。同階層にあるスクリプトを起動する場合。
powershell -ExecutionPolicy RemoteSigned -File %~dp0%スクリプト名.ps1
%~dp0% をつけて、同階層にあるスクリプトのパスを明示して実行するようにする。
PowerShell 処理の中では、実行しているスクリプトの場所は下記でとれる。
$PSScriptRoot
ネットでは $MyInvocation.MyCommand.Path を使う方法をよく見たけど、私の環境では何故か動かなかった。
まあ原因はともかく$PSScriptRootでとる方が短く済んで簡単。