過去の記事でPowerShellを右クリックから実行するような内容を書きました。
しかし、コマンドで実行できた方がが何かと便利なので、今回はPowerShellを記述したファイルをコマンドで実行する方法になります。
では、始めます。
・コマンドからの実行方法
powershellでファイルを実行するための基本的なコマンドは以下の通りです。
powershell [ファイルパス]
// 例
powershell .\test1.ps1
しかし処理内容などによっては権限やポリシーで実行できない場合があります。その場合はオプションを付けて実行します。
オプション | 内容 |
---|---|
-NoProfile | プロファイル無しで実行 |
-ExecutionPolicy Unrestricted | ポリシーの制限なしで実行 |
-verb runas | この記述の前にあるコマンドを管理者権限で実行 |
この他にもオプションは色々ありますが、オプションについての詳しい説明は参考資料に挙げているページ様を参照してください。
ひとまず「プロファイル無し、ポリシー無制限、管理者権限で実行」するには以下のように記述します。
powershell -NoProfile -ExecutionPolicy Unrestricted [ファイルパス] -verb runas
例えば実行させたいPowerShellのファイル(test1.ps1)を管理者権限で実行するためのバッチファイル(start.bat)を同階層に作る場合は以下のようになります。
・start.bat
@echo off @REM 現在のフォルダに移動 cd /d %~dp0 @REM 同階層のtest1.ps1をプロファイル無し、ポリシー無制限、管理者権限で実行 powershell -NoProfile -ExecutionPolicy Unrestricted ".\test1.ps1" -verb runas
このようにバッチファイルからPowerShellファイルを呼び出すことで、管理者権限を付与した状態で実行することができます。
以上がPowerShellを記述したファイルをコマンドで実行する方法になります。
バッチファイルから管理者権限でPowerShellが実行できてしまうため、「-verb runas」オプションの扱いには注意が必要です。
本当に必要な処理だけにつけるようにしましょう。
・参考資料