Powershellのps1ファイルを実行する方法

コンピュータ

Powersehllをはじめるにあたり

WindowsのコマンドラインインターフェースであるPowershellはコマンドレットと言われる命令をテキストファイルに記述したスクリプトファイルを実行することが出来ます。
Powershellはその名に含まれる通りシェルであり、そのシェルで実行されるスクリプトはシェルスクリプトであるわけです。bashと.shとかcmd.exeと.batとかと一緒のはずですが、個人的にはMicrosoft Excelで言うところのマクロのような代物だと思います。ExcelのマクロはExcelを操作しますがPowershellはWindowsを操作します。従来からあるシェルスクリプトが基本テキストを操作するところPowersehllがオブジェクトを操作するところが大きな違いだと言えます。
標準のコマンドレット以外に.NET Frameworkライブラリを利用することが出来ますので、かなり高度な操作を行うことが出来ます。「出来ることが多い=習得が難しい」の式に当てはまるのが難点ですが、全てを理解しなくともかなりパワフルで便利な道具として使えます。
お使いのパソコンのOSがWindows系であれば、とりあえず習得しておいて損は無いと思います。

Powersehllのデフォルト状態ではスクリプトファイルを即実行することが出来ないようセキュリティがなされています。Powershellを始めるに当たり、そのセキュリティを解除する設定変更が必要になります。

起動から実行ポリシーの変更

Powershellを管理者として起動(Windows10)

  1. [Winキー]を押す
  2. [Powershellのフォルダ]を選択
  3. [Powershell]で右クリック
  4. [その他]→[管理者として実行]をクリック

実行ポリシーの確認

Powershell上で以下のコマンドを実行

Get-ExecutionPolicy

結果の意味は以下の通り。

Restricted
実行不可[デフォルト]
AllSigned
著名付きスクリプトのみ実行可
RemoteSigned
実行可※
Unrestricted
実行可※

※RemoteSignedはインターネットからダウンロードしたps1ファイルや他のPCにあるps1ファイル等の実行は著名付きスクリプトのみ実行可。
※Unrestrictedは全てのps1スクリプトが実行可。

実行ポリシーの変更

スクリプトを実行可に変更

Set-ExecutionPolicy RemoteSigned

スクリプトを実行不可に変更

Set-ExecutionPolicy Restricted

最後に

当サイトで配布しているバッチスクリプトはpowershellの実行ポリシーの変更を行いpowershellスクリプトとして実行している物もあります。セキュリティ的に行儀の悪い行為ではありますがダブルクリック一発で起動するため利便性優先ということでご理解ください。
配布しているスクリプトファイルは平文のテキストファイルですので内容はメモ帳などで普通に読めます。気になる方はファイルの内容をご確認ください。

コメント