Windows Powershell でスクリプトを実行できるようにする
Windowsで複数のファイル名の変更やファイル移動、エクセルで定型作業等を行う際に便利なのがPowershellだ。そしてそのPowerShellの機能を存分に発揮させるためにはスクリプトという複数のコマンドをひとまとまりにして扱うものを使う必要がある。
しかし、Windowsでは初期設定でこのスクリプトを実行できないように設定されている。これはセキュリティの観点からだと思うが、セキュリティは気を付けるとして有効化する。
スクリプトを有効にする。
Windowsは初期設定だと、スクリプトがセキュリティの観点から禁止されている。そのため、まずは有効化する必要がある。
参考にしたのは下のサイト docs.microsoft.com
管理者権限でPowerShellを実行する
現状どのような実行ポリシーなのか確認する。
下のコマンドを実行すると 現状の実行ポリシーを取得し、優先順位で表示する
Get-ExecutionPolicy -List
私の環境では、下のような実行結果となった。 全てが Undefined となっている。つまり現状だとどのようなスクリプトも実行できない。
優先順位が高い、スコープで実行ポリシーを変更してスクリプトを実行できるようにすると、自分のスクリプトを実行する際には便利だがセキュリティの観点からは推奨できない。
管理者権限のスクリプトはWindows上のほとんどの機能、ディレクトリにアクセスできるため悪意のあるスクリプトや間違った使い方をしたら最悪Windowsが壊れる。そのため、スクリプトの実行は慎重にした方が良い。
実行ポリシーを変更
CurrentUserの実行ポリシーを Unrestricted に変更する。これに変更するローカル上のスクリプトを無制限で使用できるようになる。
コマンドは下のようなもの
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
これを実行して現状の実行ポリシーを確認するとしたのように正常に変更されているのがわかる。
下の画像では一度RemoteSigned に変更しているが、これではCドライブ以外のスクリプトを実行できなかったので再度 Unrestricted に変更している。