2014年2月10日

【PowerShell】スクリプトポリシーを設定する


仕事でPoserShellを使ってみようと思って勉強してたんですが、いきなりつまづきました。


Write-Host "Hello world"

例によって、「Hello World!」を表示させるスクリプトを書いたんですが、エラーになっちゃうんですね。


で、いろいろ調べたら、デフォルトでは安全のためにスクリプトが実行できない状態になってるんですね。

実際に確認してみると、

PS C:\work> Get-ExecutionPolicy
Restricted

Restrictedになっていました。


この実行ポリシーにはいくつか種類があるのですが、
とりあえず、テストで使うんでローカルに保存されたスクリプトのみ実行可能なRemoteSignedにしてみました。


PS C:\work> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y

Set-ExecutionPolicy RemoteSigned
とやると、実行ポリシーを変更しますか?と聞いてくるので、Yと入力してEnterです。

ちなみに、ここでPowerShellを管理者権限で実行してないとまたエラーが出ます。
私はみごとに引っかかりました。(笑)


たぶんこれでスクリプトが実行できるようになったと思うので、HelloWorldを実行してみたいと思います。

PS C:\work> .\HelloWorld.ps1
Hello world

できました。


これからいろいろ試していきたいと思います。


<関連記事>
【PowerShell】コマンドレットのヘルプを表示する
【PowerShell】コマンドレットの一覧を取得する


スポンサーリンク