概要

自分で作った特定の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 を実行 –> 実行できた!

キャプチャ.PNG

参考にしたウェブページ

https://technet.microsoft.com/ja-jp/library/ee176961.aspx
(実行ポリシーの種類について調べた)