概要
自分で作った特定のPowerShellスクリプトだけを、いつでも実行できるようにしたい。
しかしWindows の既定の設定だと、PowerShellスクリプトの実行は制限されており、実行することはできない。
かといって、制限をまるごと解除したくはないし、都度解除したり戻したりするのもめんどくさい。
なので、バッチファイルの中に以下のように記述することで、そのバッチファイルを実行したときだけは特定のPowerShell スクリプト(例:sample.ps1)が実行されるようにした。
powershell -ExecutionPolicy RemoteSigned -File sample.ps1
詳細
動機/経緯
自分で作った特定のPowerShellスクリプトだけを、いつでも実行できるようにしたい。
しかしWindows の既定の設定だと、PowerShellのスクリプトは制限されており、実行することはできない。
かといって、制限をまるごと解除したくはないし、都度解除したり戻したりするのもめんどくさい。
なので、どうすればいいか調べて試してみた。
環境
- OS: Windows 7 Pro with SP1
- PowerShell のVer.: 2.0
用意
実行したいPowerShell スクリプトを用意(ファイル名は sample.ps1 ってことにする)
バッチファイルとして以下の内容のものを作成(ファイル名はsample.bat ってことにする)
pushd %~dp0
powershell -ExecutionPolicy RemoteSigned -File sample.ps1
使ってみる
sample.bat とsample.ps1 を同じフォルダー内に置く。
sample.bat を実行 –> 実行できた!
参考にしたウェブページ
https://technet.microsoft.com/ja-jp/library/ee176961.aspx
(実行ポリシーの種類について調べた)