こんにちは。 PowerShellのスクリプト(ps1)ファイルが何故か動いてくれないことが稀に良くあります。 その代表的な原因と対処方法を解説します。 [目次] 目次 スクリプトの実行ポリシーが有効になっていない場合ps1ファイルを実行すると以下のようなメッセージが出る場合は、スクリプトの実行ポリシーが有効になっていないと考えられます。 .\<ファイル名> : このシステムではスクリプトの実行が無効になっているため、ファイル <フルパス>
を読み込むことができません。詳細については、「about_Execution_Policies」(http Windowsでは、ps1ファイルの実行が初期設定では無効になっています。ps1ファイルの実行を許すかどうかの設定を「実行ポリシー」と呼びます。 実行ポリシーの確認実行ポリシーは、以下のコマンドレットを打てば確認できます。 Get-ExecutionPolicy 上記のエラーになった人は「Restricted」が返ってきたはずです。 実行ポリシーを変更する細かい話は一旦抜きにして、以下の方法で実行ポリシーを変更して、ps1ファイルを実行できるようにすることができます。 PowerShellを管理者として起動します。 以下のコマンドを実行します。 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 確認メッセージが表示されるので「Y」を打ってEnter これで実効ポリシーが変更されました。 試しにもう一度Getで実行ポリシーを確認してみてください。 「RemoteSigned」が返ってくればOKです。 この状態で、お目当てのps1ファイルを実行してみてください。実行できるようになっていると思います。 スクリプトがロックされている場合実行ポリシーを「RemoteSigned」に設定すると 「 Web上からダウンロードされたスクリプトが、信頼された発行元によって署名されていることを要求する 」 という状態になります。 ダウンロードしてきたps1ファイルが信頼されていないと判断されて、スクリプトにロックがかかった状態になっていることがあり、それが原因でps1が実行できないことがあります。 ロックされているかどうかは、ps1ファイルを右クリックしてプロパティで確認することができます。 Webからダウンロードしてきたサンプルファイルなどはこのような状態になることが多いです。 この場合は、「許可する」にチェックを入れてOKを押せばロックを解除できます。 詳細説明実効ポリシーを「RemoteSigned」に変更すれば実行できると説明しましたが、ポリシーは「RemoteSigned」以外にもあります。
「Scope」という単語が出てきましたが、実は実行ポリシーはScope毎に割り当てられています。 Set-ExecutionPoricyコマンドでは、規定値で「LocalMachine」がScopeになっているので、このコンピュータ全体の実行ポリシーを変更したことになります。
例えば、以下のようにコマンドを実行すれば、一時的なポリシーの変更だけでps1ファイルを実行することができます。 Write-Host “Y” | Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process 「Write-Host “Y”」を頭につけてパイプで繋げば、1行で確認メッセージに「Y:はい」を入力することができます。その後に実行したいps1ファイルを実行してあげればOKです。 こうすれば、このプロセスが破棄された後は、元の実行ポリシーに戻るので、違う環境で実行する可能性があるスクリプトを開発する場合はこの手法をオススメします。 Windows PowerShellの実行方法は?スクリプトはコマンドラインからだけでなく、Windows10のエクスプローラー上からアイコンを選択して実行することもできます。 エクスプローラーでps1ファイルを選択して、マウスの右クリックで「PowerShell で実行」を選択します。 するとPowerShellが立ち上がって、ps1ファイルが実行されます。
PowerShellの実行制限は?クライアント版 Windows1 の PowerShell は、標準設定ではスクリプト(拡張子 .ps1 のファイル)の実行が制限されています。 これは、マルウェアなどの危険なスクリプトの不用意な実行を防ぐというセキュリティ上の配慮によるものです。 スクリプトを実行するには、事前に実行ポリシーを変更する必要があります。
PowerShell 管理者権限かどうか?PowerShellが管理者権限で起動しているかどうかの見分け方
現在起動している「PowerShell」がどのアカウント権限で起動しているかは、ウィンドウ左上を見るとわかります。 管理者権限でPowerShellが起動していると、「管理者:PowerShell」と表示されます。
PowerShell 何ができるのか?PowerShell(パワーシェル)でできること
PowerShellでは複雑な命令や処理を下すことで、指定のファイルを移し替えたり、ExcelやWordを一元的に管理することができます。 反復作業など、PowerShellを使うことで業務の効率化を図ることが可能です。
|