[ADSI] F# で System.DirectoryServices を使ってみる


 こんにちは、ぴろとでございます。Visual Studio 2010 がついに RTM されました!ということで、私たちの ADSI/ILM チームでも “ざわ…ざわ…” しておりました。なぜかというと、Visual Studio 2010 では新しい言語 F# が追加になっています。その準備を行っていなかったためです。せっかくリリースされた F# を本ブログで取り上げないわけにはいきません!(使命感メラメラ)

ちなみに、画面はこんな感じ。なんか青くて Coooooool なイメージです。(そういえば、MSDN も青いですね!)

 

というわけで、画面にあるように、F# sAMAccountName を取得するだけの非常に簡単なサンプルを作ってみました。

  1. //--------------------- Sample コード ------------------------   
  2. open System.DirectoryServices  
  3.  
  4. let ds = new DirectoryEntry(  
  5.     "LDAP://dc.contoso.com/CN=Administrator,CN=Users,DC=contoso,DC=com",  
  6.     "contoso\Administrator",  
  7.     "P@ssword")  
  8.  
  9. let strValue = ds.InvokeGet("sAMAccountName").ToString() 
  10. ds.Dispose()  
  11. printf "%s\n" strValue  
  12. //---------------------------------------------------------------  
//--------------------- Sample コード ------------------------ 
open System.DirectoryServices
 
let ds = new DirectoryEntry(
        "LDAP://dc.contoso.com/CN=Administrator,CN=Users,DC=contoso,DC=com",
        "contoso\Administrator",
        "P@ssword")
 
let strValue = ds.InvokeGet("sAMAccountName").ToString()
ds.Dispose()
printf "%s\n" strValue
//--------------------------------------------------------------- 



おおー、ここだけ見ると、VB とか C# とあんまり変わらないですね。空のコンソールアプリケーションを作成すると、VB C# と違ってエディタ上にコメント一行しかでていないため、「main とか、ないんだ…。」と一瞬あせりました…。

英語になってしまいますが、F# のサンプルや、ドキュメントがありますので、以下に掲載いたしました。

- 参考情報

Microsoft F# Developer Center

http://msdn.microsoft.com/ja-jp/fsharp/default(en-us).aspx

ちなみに、WMI のサンプルはすでに、Jomo Fisher さんの Blog で紹介されていました。

How to Enumerate all WMI Classes (Sharp Things)

http://blogs.msdn.com/jomo_fisher/archive/2010/05/18/how-to-enumerate-all-wmi-classes.aspx

皆様 F# をつかってみてください!それではご機嫌よう!

ぴろと@娘のオムツを替えている最中に(ry

Skip to main content