[ADSI プログラミング] Active Directory プログラミング言語の得意/苦手はなに?(Ver1.1)
こんにちは、ILM 一家のパパ(お父さん)です。
先週の休日、久し振りに、娘(実子) とデートしました。子供が行動している時間帯に、家にいることが少ないパパですから、娘サービスは欠かせないですね。
私の息子(実子)の飴誤飲の話を過去にしましたが、実はこの娘も誤飲させちゃってるんです。
私似で、香りや味覚に貪欲なのでしょうか、2歳くらいの時に芳香剤のゼリーを、ふたとシール剥がして食べちゃいましてね、芳香剤食べると口から芳香剤の香りがするんですよ、香りの持続力にビックリです。
食べ残しの芳香剤もって夜間開いているメディカルセンター連れて行きましたが、お医者さんと看護婦さんに、それはもうこっ酷く怒られた記憶が蘇ります。
成分的に害のあるような薬物が含まれてなかったので、水分を多めにとらせるだけで何ともなかったのが救いです。このような場合、無理に吐かせたりせず、誤飲したものの成分、品名がわかるものを持って、救急車か、夜間診療窓口に連絡、急行するのが鉄則のようです。お医者さんがメーカに成分確認して判断してくれます。
この貪欲な娘、すでに 2歳年上の息子の身長を抜いています。芳香剤も香るだけじゃなくて、娘の血肉になって本望でしょう。
さて、ついつい、このブログの主旨を見失いがちの私ですが、ADSI の話をしますね。
今回は Active Directoryへアクセスする場合の使用言語について、お話します。
皆さん、どのような言語でActiveDirectory を操作するプログラミングを記述されていますか?
マイクロソフトが提供している言語では以下のようなものがあります。特徴を添えてご紹介しましょう。
<VBScript>
特徴:
現行 OS に標準で搭載されている、WSH(indows Scripting Host)で動作します。
特別なランタイムを必要とせず、テキスト形式でスクリプトコードを記述できます。
スクリプトセンターサイトなど、サンプルなど公開情報が多いのも特徴です。
得意とする事:
特別な、言語製品や、言語ランタイムを必要とせず、OS 標準の機能で動作させる事ができます。つまり、初期開発コスト、展開コストが低いということになります。
また、スクリプト言語で文法、機能が簡素であり、サーバ管理者の方などプログラミングを専門にされていない方でも比較的容易にご利用いただけます。
苦手とする事:
簡素な機能がわかりやすい反面、この点が難点ともいえます。
たとえば、変数型ですが Variant型のみとなります。どのようなデータ型も一通り代入できる便利さがある半面、異なるデータ型として扱うような柔軟性はありません。制限の一部をまとめますと、以下のような点が挙げられます。
・バイナリ型値を扱うことができません。
・ API 呼び出しができません。 ( 外部機能参照は COM 呼び出しのみです )
・基本的に、 GUI を提供することができません。
<Visual Basic /Visual C#>
特徴:
.NET Framework をランタイムとして使用する、プログラミング言語です。
ADSI 相当機能を、DirtectoryServices 名前空間が提供しています。
無償ダウンロード可能な Express Edtion も提供されています。
得意とする事:
高機能な開発環境/デバッグ環境を提供しています。これらによって高度なアプリケーション開発が可能です。GUI を持つアプリケーション、Web アプリケーションの開発も可能とする汎用開発言語であり、機能も豊富です。
苦手とする事:
無償ダウンロード版もあることながら、本格的な利用は製品版が必要になります。
また、.NET Frameworkが含まれていない OS では、プログラムの実行ファイルに加え、.NET Framework の配布が必要になります。VBScript に比べ、初期開発コスト、配布コストは高くなることになります。
補足: ここでの Visual Basic は Visual Basic .NET 2002 から、現行の Visual Basic 2008 までの .NET Framework 対応製品となります。
Visual Basic 6.0 は VBScript の親和性が高い製品でございましたが、サポート提供が終了しており、入手できない過去バージョンとなります。
<Visual C++>
特徴:
高度なプログラミングが可能です。ADSI を直接使用し、C/C++ランタイムとするアプリケーション開発が可能です。(現行バージョンは .NET Framework を使用するマネージコードも生成可能ですが、.NET Framework を使用される場合、Visual C# 使用をおすすめします)
得意な事:
高機能な開発環境/デバッグ環境を提供しており、これらによって高度なアプリケーション開発が可能なのは、Visual Basic .NET/C#と同様です。
苦手な事:
Visual Basic .NET/C#と同様の要因により、VBScript に比べ、初期開発コスト、配布コストが高くなります。
また、非常に柔軟性が高い反面、変数ほか使用リソースの管理を厳密に実装する必要があり、コードボリュームは増大します。これは、開発時コスト、デバッグコストを余計に要する要因となります。
その他、PowerShell がございます。 PowerShell につきましては、別な機会に改めましてご紹介したいと考えておりますので、ご期待ください。
以上のように、言語によっては、得意、不得意があります。この特徴を踏まえて言語選択いただければ、不況の昨今にあって、開発、運用コストを削減することができます。
VBScript で可能な実装はVBScriptで、高度な実装は Visual Basic .NET/C# を用いるのが、現実的なところではないかと考えられます。
デートで娘におねだりされまくりの
~ お父さんより ~
Ver1.1: VisualBasic/PowerShell 補足追加