仕事で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】コマンドレットの一覧を取得する
スポンサーリンク