次の方法で共有


Windows PowerShell プログラマー ガイド

このプログラマ ガイドは、システム管理者向けのコマンド ライン管理環境の提供に関心がある開発者を対象としています。 Windows PowerShell では、.NET オブジェクトを公開する管理コマンドを簡単に作成できる一方で、Windows PowerShell でほとんどの作業を行うことができます。

従来のコマンド開発では、パラメーター パーサー、パラメーター バインダー、フィルター、および各コマンドによって公開されるその他すべての機能を記述する必要があります。 Windows PowerShell には、コマンドを簡単に記述できるようにするための次のものが用意されています。

  • 独自のパーサーとコマンド パラメーターを自動的にバインドするためのメカニズムを備えた強力な Windows PowerShell ランタイム (実行エンジン)。

  • コマンド ライン インタープリター (CLI) を使用してコマンド結果を書式設定および表示するためのユーティリティ。

  • 保存されたデータに簡単にアクセスできる高レベルの機能 (Windows PowerShell プロバイダーを通じて) のサポート。

    .NET オブジェクトは、管理者に完全なコマンド ライン エクスペリエンスを提供する豊富なコマンドまたは一連のコマンドで表すことができます。

    次のセクションでは、Windows PowerShell の主要な概念と用語について説明します。 開発を開始する前に、これらの概念と用語を理解しておいてください。

Windows PowerShell について

Windows PowerShell では、開発中に使用できるいくつかの種類のコマンドが定義されています。 これらのコマンドには、関数、フィルター、スクリプト、エイリアス、実行可能ファイル (アプリケーション) が含まれます。 このガイドで説明する主なコマンドの種類は、"コマンドレット" と呼ばれる単純な小さなコマンドです。 Windows PowerShell は一連のコマンドレットを提供し、環境に合わせてコマンドレットのカスタマイズを完全にサポートします。 Windows PowerShell ランタイムは、パイプラインを使用して、コマンドレットと同様にすべてのコマンドの種類を処理します。

Windows PowerShell では、コマンドに加えて、特定のコマンドレット セットを使用できるようにする、カスタマイズ可能なさまざまな Windows PowerShell プロバイダーがサポートされています。 シェルは Windows PowerShell で提供されるホスト アプリケーション (powershell.exe) 内で動作しますが、特定の要件を満たすために開発できるカスタム ホスト アプリケーションから同様にアクセスできます。 詳細については、「Windows PowerShell のしくみ」を参照してください。

Windows PowerShell コマンドレット

コマンドレットは、Windows PowerShell 環境で使用される軽量のコマンドです。 Windows PowerShell ランタイムは、コマンド ラインで提供されるオートメーション スクリプトのコンテキスト内でこれらのコマンドレットを呼び出します。また、Windows PowerShell ランタイムは、Windows PowerShell API を介してプログラムによってこれらのコマンドレットを呼び出します。

コマンドレットの詳細については、「Windows PowerShell コマンドレットの作成」を参照してください。

Windows PowerShell プロバイダー

管理タスクを実行する際に、ユーザーはデータ ストア (ファイル システム、Windows レジストリ、証明書ストアなど) に格納されているデータを調べる必要がある場合があります。 これらの操作を容易にするために、Windows PowerShell では、Windows レジストリなどの特定のデータ ストアへのアクセスに使用できる Windows PowerShell プロバイダーと呼ばれるモジュールが定義されています。 各プロバイダーは、関連するコマンドレットのセットをサポートして、ストア内のデータの対称ビューをユーザーに提供します。

Windows PowerShell には、いくつかの既定の Windows PowerShell プロバイダーが用意されています。 たとえば、レジストリ プロバイダーは、Windows レジストリのナビゲーションと操作をサポートします。 レジストリ キーは項目として表され、レジストリ値はプロパティとして扱われます。

ユーザーがアクセスする必要があるデータ ストアを公開する場合は、「Windows PowerShell プロバイダーの作成 に関する説明に従って、独自の Windows PowerShell プロバイダーを作成することが必要になる場合があります。 Windows PowerShell プロバイダーの詳細については、「Windows PowerShell の動作」を参照してください。

ホスト アプリケーション

Windows PowerShell には、既定のホスト アプリケーション powershell.exeが含まれています。これは、ユーザーと対話し、コンソール ウィンドウを使用して Windows PowerShell ランタイムをホストするコンソール アプリケーションです。

カスタマイズはサポートされていますが、Windows PowerShell 用の独自のホスト アプリケーションを作成する必要があるのはまれです。 独自のアプリケーションが必要になる場合の 1 つは、既定のホスト アプリケーションによって提供されるインターフェイスよりも豊富な GUI インターフェイスの要件がある場合です。 コマンド ラインで GUI をベースにしている場合は、カスタム アプリケーションが必要になる場合もあります。 詳細については、「Windows PowerShell ホスト アプリケーションを作成する方法」を参照してください。

Windows PowerShell ランタイム

Windows PowerShell ランタイムは、コマンド処理を実装する実行エンジンです。 これには、ホスト アプリケーションと Windows PowerShell コマンドとプロバイダーの間のインターフェイスを提供するクラスが含まれています。 Windows PowerShell ランタイムは、シェルとコマンドを実行する操作環境である現在の Windows PowerShell セッションの実行空間オブジェクトとして実装されます。 操作の詳細については、「Windows PowerShell のしくみ」を参照してください。

Windows PowerShell 言語

Windows PowerShell 言語には、コマンドを呼び出すスクリプト関数とメカニズムが用意されています。 スクリプトの詳細については、Windows PowerShell に付属している Windows PowerShell 言語リファレンスを参照してください。

拡張型システム (ETS)

Windows PowerShell では、.NET オブジェクトや XML オブジェクトなど、さまざまなオブジェクトにアクセスできます。 その結果、すべてのオブジェクト型に共通の抽象化を提示するために、シェルは拡張型システム (ETS) を使用します。 ほとんどの ETS 機能はユーザーに対して透過的ですが、スクリプトまたは .NET 開発者は次の目的で使用します。

  • 特定のオブジェクトのメンバーのサブセットを表示する。 Windows PowerShell には、いくつかの特定の種類のオブジェクトの "適合" ビューが用意されています。

  • 既存のオブジェクトへのメンバーの追加。

  • シリアル化されたオブジェクトへのアクセス。

  • カスタマイズされたオブジェクトの書き込み。

    ETS を使用すると、Windows PowerShell 言語と互換性のある柔軟な新しい "型" を作成できます。 .NET 開発者の場合は、Windows PowerShell 言語がスクリプトに適用されるのと同じセマンティクスを使用してオブジェクトを操作できます。たとえば、オブジェクトが trueに評価されるかどうかを判断します。

    ETS と Windows PowerShell でオブジェクトを使用する方法の詳細については、「Windows PowerShell オブジェクトの概念 を参照してください。

Windows PowerShell のプログラミング

Windows PowerShell では、.NET Framework を使用してコマンド、プロバイダー、およびその他のプログラム モジュールのコードを定義します。 このガイドで提供されているサンプルは、このツールで実行することがわかっていますが、Windows PowerShell 用にカスタマイズされたモジュールを作成する際に Microsoft Visual Studio を使用することに限定されません。 クラスの継承と属性の使用をサポートする任意の .NET 言語を使用できます。 場合によっては、Windows PowerShell API では、プログラミング言語がジェネリック型にアクセスできる必要があります。

プログラマーリファレンス

Windows PowerShell 用の開発時のリファレンスについては、Windows PowerShell SDK を参照してください。

Windows PowerShell の使用を開始する

Windows PowerShell シェルの使用を開始する方法の詳細については、「Windows PowerShell の概要」Windows PowerShell に付属 を参照してください。 クイック リファレンスの 3 つ折りドキュメントは、コマンドレットを使用するための入門書としても提供されています。

このガイドの内容

トピック 定義
Windows PowerShell プロバイダー を作成する方法 このセクションでは、Windows PowerShell 用の Windows PowerShell プロバイダーを構築する方法について説明します。
Windows PowerShell ホスト アプリケーション を作成する方法 このセクションでは、実行空間を操作するホスト アプリケーションを記述する方法と、独自のカスタム ホストを実装するホスト アプリケーションを記述する方法について説明します。
Windows PowerShell スナップイン を作成する方法 このセクションでは、すべてのコマンドレットとプロバイダーをアセンブリに登録するために使用されるスナップインを作成する方法と、カスタム スナップインを作成する方法について説明します。
コンソール シェル を作成する方法 このセクションでは、拡張可能ではないコンソール シェルを作成する方法について説明します。
Windows PowerShell の概念 このセクションには、開発者の観点から Windows PowerShell を理解するのに役立つ概念情報が含まれています。

こちらもご覧ください

Windows PowerShell SDK の