C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2007/11/20 01:01
実は最近まで全く使っていませんでした。
これは使わなきゃ損です。僕は損してました ^^;


プロファイルは、PowerShell の起動時に実行されるスクリプトファイルです。スナップイン、関数、変数、エイリアスの追加などに使用できます。
プロファイルは 4 種類あります。この辺の説明はこの記事では省略します。PowerShell 付属のドキュメント「Windows PowerShell™ ファースト ステップ ガイド」を参照してください。

プロファイルはスクリプトファイルですので、実行ポリシーの設定が絡んできます。実行ポリシーの既定の設定では、スクリプトファイルの実行はできません。プロファイルやそれ以外のスクリプトファイルを利用する場合は、実行ポリシーの設定を変更する必要があります。

実行ポリシーの変更は Set-ExecutionPolicy コマンドレットで行います。また、Get-ExecutionPolicy コマンドレットにて実行ポリシーの現在の設定を確認できます。
実行ポリシーに設定できる値は以下の 4 種類です。

Restricted
スクリプトファイルの実行を許可しません。

AllSigned
全てのスクリプトファイルは信頼された発行元によって署名されている必要があります。

RemoteSigned
インターネットからダウンロードしたスクリプトファイルは、信頼された発行元によって署名されている必要があります。

Unrestricted
全てのスクリプトファイルの実行を許可します。


実行ポリシーの設定変更はセキュリティの低下を意味します。上記 4 項目では、下に行くほどセキュリティが低くなっています。
PowerShell はとても強力です。もし、悪意のあるスクリプトを実行してしまった場合、大変なことになるかもしれません。実行ポリシーを変更する場合、そのことを充分承知してください。

AllSigned に設定した場合、自分で作成したスクリプトファイルにも署名を行う必要があります。また、署名後にスクリプトファイルを書き換えた場合、そのファイルに対して署名をしなおす必要があります。ちょっと面倒ではありますが、証明書が他者の手に渡らない限りは改ざんを防止できるという大きなメリットが得られます。

RemoteSigned に設定した場合、インターネットからダウンロードしたスクリプトファイル以外は、署名なしで実行できます。ただし、改ざんも検出しません。お手軽になりますが、インターネットからダウンロードしたスクリプトファイル以外には無防備です。

Unrestricted に設定した場合、全てのスクリプトファイルを署名なしで実行できます。さすがにこの設定は避けた方がいいと思います。


PowerShell にて以下のコマンドを実行すると、詳しい解説を読むことができます。実行ポリシーの変更方法や署名方法も載っています。

Help about_signing
スポンサーサイト



タグ: .NET PowerShell