PowerShellの実行環境構築

森下功啓製作所 ONLINE

[2013/1/25] 実行ポリシーの変更について追記しました。


1. PowerShellって何?

PowerShellとは、Windows OSを開発しているMicrosoft社からリリースされているオブジェクト指向に対応したスクリプト言語です。 Windows環境である決まった一連の処理を実行させるために利用されています。 以前使われていた*.batによるバッチ処理に代わるものとして開発されました。 スクリプトは、*.ps1というファイルに記述して、PowerShellプロンプトから実行します。 PowerShellプロンプトはコマンドプロンプトが対応できなかったUTF8による日本語表示にも対応しています。 最近のアプリは移植性のためにUTF8が標準となりつつあることからこれからはPowerShellを利用することが望ましいでしょう。 なお、PowerShellは上位互換性があり、batファイルも実行可能です。 PowerShellには日本語対応だけでなく、VBScriptの様に変数操作ができたり.NET Frameworkの恩恵が受けられるというメリットもあります。 Visual Studioでの開発に慣れた方ならより親和性が高い言語です。

PowerShellプロンプト
図1.1 PowerShellプロンプト

2. PowerShellの実行環境を整えよう

PowerShellスクリプトを実行するには、実行環境の構築が必要です。 環境構築に関しては、 CodeZineの記事が詳しいのでそちらをご覧になってください。 Windows 7以降のOSでしたら最初からインストール済みですので特に何もしなくて結構です。 なお、拡張子の書き換えを行うことになりますので拡張子は表示させておいてください (拡張子の表示法への外部リンク: Win7, Win XP)。


3. PowerShellスクリプトを実行できるようにする

PowerShellスクリプトはセキュリティの観点からデフォルトでは実行できません。 セキュリティが低下しますが、それを受容して実行できるようにします。 設定には、コマンドプロンプトもしくはPowerShellプロンプトを起動させてコマンドを実行します。 詳細は@ITの記事を参照してください。

表3.1 コマンド
Get-ExecutionPolicy コマンド実行時のポリシーを表示する。
Set-ExecutionPolicy Unrestricted コマンド実行のポリシーを変更し、署名のないスクリプトでも実行可能にする。

スクリプトの実行に失敗した様子
図3.1 PowerShellスクリプトの実行に失敗した様子

管理者権限で実行
図3.2 PowerShellプロンプトを管理者権限で実行

スクリプトの実行条件を変更
図3.3 スクリプトの実行条件を変更
私の環境では既にUnrestrictedに設定済みでした。

4. テストスクリプトの実行

ではいよいよスクリプトを実行してみましょう。 メモ帳などのテキストエディタを開いて、「Write-Host "Hollow World"」と書いたら適当な名前を付けて保存して下さい。 保存後に、ファイルの拡張子をps1へ書き換えます。 次に、スタートメニューからPowerShellを見つけて、実行したいスクリプトのあるフォルダへショートカットを作ります。 できたショートカットを右クリックしてプロパティを開いて、作業フォルダを空欄にしてください。 その作業後にプロンプトを立ち上げます。 立ち上げ後に、".\"と打った後で先に保存したスクリプトファイル名を入力してエンターキーを押せば実行されます。 ちゃんと"Hollow World"と表示されましたでしょうか?

テストスクリプト
図4.1 テストスクリプト

スクリプト実行プロンプト
図4.2 スクリプトを実行するプロンプト(ハイライトされているショートカットがプロンプトを起動させる)
このプログラムへのショートカットを実行したいスクリプトと同じフォルダへ作ります。

作業フォルダ欄を消す
図4.3 作業フォルダ欄を消す

スクリプトの実行画面
図4.4 スクリプトの実行画面

ところで、プログラミングにはデバッグ作業が欠かせません。 よほど短いコードでもない限り、自分で書いたプログラムが一発で思ったとおりに動くなんてことは万に一つしかありません。 従ってデバッガと一緒になったIDE(統合開発環境)が必要となります。 PowerShellには標準の開発環境として、PowerShell ISE(Integrated Scripting Environment)が用意されています。 ISEを使えば、コード中に付けたデバッグで一時的に処理を止めて変数の中身を確認することが可能です。 動作も軽いため、メモ帳よりもこちらでコードの開発をした方が良いでしょう。

ISEの立ち上げ
図4.5 ISEの立ち上げ

“編集”からISEを立ち上げ
図4.6 “編集”からISEを立ち上げ

ISE画面
図4.7 ISE画面


参考文献

[1]牟田口 大介,Windows PowerShell ポケットリファレンス,技術評論社,2008/4. : コマンド類について調べる際には必須です。基本的な文法についても解説されています。一冊手元にあると良いでしょう。

inserted by FC2 system