簡易インストーラ代わりに、Batファイルで\Program Filesとその他にコピーするBatファイルを作成することになりました。
OSは、Windows10。
前述のとおり、\Program Filesにコピーするのですが、ここでちょっと厄介なことが。
Explorerを使って手動でコピーするとわかります。
\Program Files内への操作には、管理者権限が必要と言われます。
つまり、Batファイルで\Program Files内へのコピーを実行するためには、Batファイルを管理者権限で起動する必要があるのです。
当然、Batファイルを選択して右クリックすると表示される「管理者として実行」から起動すれば事足ります。
ですが、使う人のことを考えて、余分な操作をしないようにとのご要望。
そこで今回もGoogle先生にお伺いをたてました。
Bat処理でPowerShellを使ってあげれば解決できるとのお答え。
なるほど。
手順は次のとおり。
openfiles > nul
を実行し、ErrorだったらPowerShellを使って自Batを起動します。
こうすることで、権限の昇格を実現できました。
openfiles > nul
if not %errorlevel% == 0(
echo 管理者権限を取得します。
PoweSHell start-process start-process %~0 -Verb runas
exit
)
echo 管理者権限です。
pause
exit
こんな感じ。