パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

Powershell

PowerShellスクリプトを気軽に実行する方法

投稿日:

バッチファイルよりもVBScript、VBScriptよりもPowerShellスクリプトの方がいろいろなことができるので便利だとわかっていても、PowerShellスクリプトはデフォルトの設定では、エクスプローラ上で.ps1ファイルをダブルクリックしたところでテキストエディタで開かれるだけで実行できません。

このせいで、今までPowerShellでスクリプトを書くのをためらってきました。

PowerShellを起動させて、Get-ExecutionPolicyを実行すると、初期状態では、Restrictedとなっています。

実行ポリシーには、Restricted、AllSigned、RemoteSigned、Unrestricted、Bypassがありますが、
拡張子ps1のファイルをダブルクリックで実行させるためには、RemoteSigned、Unrestricted、Bypassのどれかに設定する必要があります。
Set-ExecutionPolicyというコマンドで変更できますが、管理者権限が必要です。
実行ポリシーがRestrictedのままで、拡張子ps1のファイルを簡単に実行するにはバッチファイルを使います。

以下の内容で、hello.ps1というファイルを作成します。

Add-Type -Assembly System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("Hello World!!")

同じフォルダに以下の内容でhello.batというファイルを作成します。

powershell -NoProfile -ExecutionPolicy Unrestricted .\hello.ps1

hello.batをダブルクリックすれば、hello.ps1を動作させることができます。

このように、PowerShellスクリプトを実行するバッチファイルを作るだけで良いので簡単です。

タスクスケジューラから実行する場合は、バッチファイルは不要です。

例えば、このように設定します。

タスクにpowershell.exe、
「C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe」
引数に
「-NoProfile -ExecutionPolicy Unrestricted C:\Temp\hello.ps1」

hello.ps1を直接指定した場合は、動作しません。
powershell.exeに引数をつけてタスクを設定する必要があります。







-Powershell

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.