スナップインの開発とPowerShellへの登録
HIRO [著] 2008/11/13 14:00

1 2 3 4 →

はじめに

 Windows PowerShellは.NET Frameworkをベースとした非常に強力なシェルです。ただし、独自のコマンドレットを作成し、Windows PowerShellを拡張できることについてあまり知られていないかと思います。今回から数回にわたり、コマンドレットの開発手法について説明します。

開発環境について

 開発環境はVisual Studio 2005以降(説明はVisual Studio 2008 Professional Edition、言語はVB.NET)を想定しています。

 Microsoft Windows SDKをダウンロードし、インストールしてください。

 また、Windows PowerShellがインストールされていることを前提としています。インストール方法は『Windows PowerShell入門(1) - 基本操作編』を参照ください。

PSスナップイン

 PowerShell用の独自コマンドレットを作成するには、.NET Frameworkを用いてPSスナップインを作成する必要があります。「PSスナップイン」とはPowerShellのプロバイダやコマンドレットを含むファイルのことで、Visual Studioでクラスライブラリとして開発を行います。

 PowerShellにはあらかじめ下記のPSスナップインが登録されており、Get-PSSnapinコマンドレットで確認できます。

PSスナップイン説明
Microsoft.PowerShell.CoreWindows PowerShell のコンポーネントを管理するコマンドレット
Microsoft.PowerShell.HostWindows PowerShell ホストで使用するコマンドレット
Microsoft.PowerShell.ManagementWindows コンポーネントの管理に使用する管理コマンドレット
Microsoft.PowerShell.SecurityWindows PowerShell のセキュリティを管理するためのコマンドレット
Microsoft.PowerShell.Utilityデータの操作に使用できるユーティリティ コマンドレット

新規プロジェクトの作成と初期設定

 はじめにVisual Studioを起動し、新しいプロジェクトの作成で、言語にVisual Basic、テンプレートにクラスライブラリを選択します。ファイル名と場所を入力して[OK]ボタンを押してください(ここではファイル名を「My.PowerShell.Cmdlets」、場所を「C:\Work」とします)。

 プロジェクトを作成すると、デフォルトで「Class1.vb」というファイルが追加されています。まずはこのファイルを削除します。

 次に、PSスナップインを開発する上で欠かせない以下のdllを参照設定に追加します。

追加するdll参照先
System.Management.Automation.dllC:\Program Files\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0
System.Configuration.Install.dllSystem.Configuration.Install.dll

 上記はWindows PowerShellおよびWindows SDKを既定通りインストールした場合です。必要に応じて適宜読み替えてください。


1 2 3 4
→
INDEX
Windows PowerShell 独自コマンドレットの開発
Page1
はじめに
開発環境について
PSスナップイン
新規プロジェクトの作成と初期設定
コマンドレットクラスの作成
スナップインクラスの作成
自作コマンドレットの実行
まとめ
プロフィール
HIRO ヒロ

HIRO's.NETのHIROです。
とある半導体工場のSEです。
VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。
最近はBlog でPowerShellについて書いています。

2008/07/07にPowerShell from Japan!!というサイトを立ち上げました。PowerShellユーザーが集まってブログを書いています。よろしかったら来てください。

HIRO's.NET Blog
HIRO's.NET - VB.NET, C#, PowerShell Tips -
PowerShell from Japan!!
PowerShell from Japan!! Wiki


注目の求人情報
コンサルタント/ベンチャーファーム
最先端金融業界向けソフトウエア設計、開発、運用についてProjectのサブリーダー、もしくはチームメンバ...
システムエンジニア/証券向け開発・運用管理
株式・投資信託等、インターネットトレーディングシステムやC/S型業務システムの企画・設計・開発・運用...
システムエンジニア/モバイルメディアをコアとする、老舗成長企業で攻めのエンジニアを募集!
自社既存メディア、また新規メディアの企画開発・保守業務 モバイルメディアの開発業務がコアとなりま...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: