次の理由から、WMI ではなく PowerShell を選択します。
- コマンドレットを作成すると、.NET クラスが追加されるだけです。
- PowerShell ランタイムには、組み込みのコマンド ライン解析が用意されています。
- PowerShell で管理インターフェイスを作成すると、管理者はアプリケーションの管理を他のアプリケーションやサービス (Exchange、Active Directory、SQL Server など) の管理と統合することができます。
- PowerShell 環境により、管理者はパイプラインを利用できるようになり、アプリケーションの管理タスクをより効率的に実行できるようになります。
- 見つけやすさ。PowerShell は、Get-Command、Get-Member、および Get-Help を介して、管理者が作業するための非常に検出可能な環境を提供し、アプリケーションを維持するための学習曲線を短縮します。
WMI ルートを使用する場合でも、PowerShell は WMI での作業をサポートしています (ただし、いくつかの不具合があります)。
私にとって、PowerShell は、タスク指向のインターフェイスをアプリケーションに表示するための最良の方法です。Microsoft が提供してきたサポートにより、PowerShell は企業全体でアプリケーションとサービスを管理するための一貫したインターフェイスになります。
私の日常の仕事は管理者であり、アプリケーションを管理するための学習曲線とコンテキストの切り替えがはるかに少なくなるため、PowerShell 管理 API を表面化するように協力するすべてのベンダーを推進しています。開発面では、私が使用している 1 つのオープン ソース製品用に一連の PowerShell コマンドレットを作成し (現在も作業中)、別のアプリケーション用の別のセットに取り組んでいます。