管理者なしでバッチ ファイル経由でスクリプトを実行すると、パラメーターが渡されますが、管理者としてスクリプトを実行すると、パラメーターは渡されません。
リンクからコマンドを試しましたが、成功しませんでした:
条件付きで管理者としてプログラムを開く
管理者としてバッチ ファイル経由でスクリプトを実行するコマンド:
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File "D:\z_Batchs e Scripts\Batchs\Normaliza_LUFS\ArqsNorms_LUFS_pass.ps1' '%_vLUF%' -Verb RunAs}"
%_vLUF%
渡されるパラメータです。
エラーメッセージ:
No line:1 character:4
+ & {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolic ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
パラメータを受け取るための PowerShell スクリプトのコマンド:
Param(
[decimal]$env:_vLUF
)
バッチ ファイル内のコマンドか PowerShell スクリプト内のコマンドのどちらが間違っているのでしょうか?
答え1
以下のリンクの回答によると:
バッチファイル経由で管理者として PowerShell スクリプトを実行する
仕組みは次の通りです:
powershell -NoProfile -ExecutionPolicy Bypass -Command "Start-Process -Verb RunAs powershell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File \"D:\z_Batchs e Scripts\Batchs\Normaliza_LUFS\ArqsNorms_LUFS_pass.ps1\" -_vLUF %_vLUF%'"