WindowsではデフォルトではPowershellは動作できないかと思います。
また、常時実行可能ですとセキュリティリスクが拡大するため推奨できません。
そこで一時的に許可する方法が下記の手順になります。
1.PowerShellを管理者で起動して以下のコマンドを実行します。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Unrestricted -Force
2.権限を確認します。
Get-ExecutionPolicy -list
以下のようになっていれば、今起動しているPowershellウィンドウでは.ps1ファイルが実行可能です。
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Unrestricted
CurrentUser Undefined
LocalMachine Undefined
3.必要なスクリプトを実行して、Powershellウィンドウを閉じます。
4.再度Powershellウィンドウを起動して権限を確認します。
Get-ExecutionPolicy -list
以下のように禁止になっているかと思います。
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
一時的にPowershellファイルを実行させる方法です。
スコープの種類
| Scope | 意味 |
|---|---|
| MachinePolicy | コンピュータ GPO で制御されます |
| UserPolicy | ユーザー GPO で制御されます |
| Process | 現在の PowerShell セッションにのみに適用します |
| CurrentUser | 現在のユーザーにのみ適用します |
| LocalMachine | コンピュータのすべてのユーザーに適用します(default) |
ポリシーの種類
| Policy | 意味 |
|---|---|
| AllSigned | すべてのスクリプトに、信頼された発行元によって署名されている必要があります |
| Bypass | 何もブロックされず、警告やプロンプトもありません |
| Default | 既定の実行ポリシーを設定します |
| RemoteSigned | インターネットからダウンロードされたすべてのスクリプトと構成ファイルが、信頼できる発行元によって署名されている必要があります。 (Windows Server の default) スクリプトには「ZoneID」と呼ばれる入手元のゾーンを表す情報が付加されており、インターネット等からダウンロードしたスクリプトを識別してます。 ZoneID をリセットするには、Unblock-File コマンドレットを使用します。 |
| Restricted | スクリプトの実行を許可しません (Windows Client の default) |
| Undefined | 実行ポリシーが設定されていない状態です default ポリシーが適用されます |
| Unrestricted | 全てのスクリプトが実行可能ですが、インターネットからダウンロードしたスクリプトは、実行するかどうかが確認されます |
ご参考まで