主婦と.NETと犬のぶろぐ

奥様 と プログラム と お犬様 の 楽しい日常

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

DirectoryEntry(System.DirectoryServices.DirectoryEntry)

DirectoryEntry や DirectorySearcher については、宇宙仮面さん のところに詳細に書いてあります。
なので、困った時の宇宙仮面さんのページに訊けばたいていの事は解ります。
なので、メモとしては宇宙仮面さんのページのリンクがはってあれば十分な気がしますが、
@Programing! - ASP.NET(C#) - さん や、om さん のとこで DirectoryEntry を使って IIS を操作してたのが面白そうだったので
VB で遊んでみました。
ちなみに、om さんがおっしゃっている ' リソースキットのIIS Metabase Explorer ' なるもの達は、以下の URLからダウンロードできます。
http://www.microsoft.com/downloads/details.aspx?familyid=56fc92ee-a71a-4c73-b628-ade629c89499&displaylang=en

ついでに、ふじこを自分のコンピューターのユーザーに追加して、
Power Users グループに所属させ、速効削除する、という意味のないコードも書いてみました。

■参考文献
DirectoryEntry クラス
System.DirectoryServices の使用
アクティブディレクトリ (ADSI)(宇宙仮面さん)
IIS を再起動する(@Programing! - ASP.NET(C#) - さん)
om's System:IIS(om さん)

■実行画像
ユーザーの追加 Fujiko
DirectortyEntry Fujiko

Public Class DirectoryEntryTest
    Private Sub DirectoryEntryTest_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' IIS 再起動
        Me.DirectoryEntry1.Path = "IIS://localhost/W3svc/1"
        Me.DirectoryEntry1.Invoke("stop")
        Me.DirectoryEntry1.Invoke("start")
        ' IIS に新しく仮想ディレクトリを追加する
        Me.DirectoryEntry1.Path = "IIS://localhost/w3svc/1/ROOT"
        Using testDir As DirectoryServices.DirectoryEntry = _
            Me.DirectoryEntry1.Children.Add("iis_test", "IIsWebVirtualDir")
            testDir.Properties("Path")(0) = "D:\iis_test"
            testDir.Properties("DefaultDoc")(0) = "index.html"
            testDir.CommitChanges()
        End Using
        ' ローカルコンピュータにユーザーを追加する
        Me.DirectoryEntry1.Path = "WinNT://" + System.Environment.MachineName + ",computer"
        Using fujiko As DirectoryServices.DirectoryEntry = _
            Me.DirectoryEntry1.Children.Add("Fujiko", "user")
            fujiko.Properties("Description").Add("これはテストのふじこです")
            fujiko.Invoke("SetPassword", "eden123")
            fujiko.CommitChanges()
            ' Group 参加
            Dim groupEntry As DirectoryServices.DirectoryEntry = _
            Me.DirectoryEntry1.Children.Find("Power Users")
            groupEntry.Invoke("Add", fujiko.Path)
            groupEntry.CommitChanges()
            ' ユーザーの削除
            groupEntry.Invoke("Remove", fujiko.Path) ' Group から脱退
            Me.DirectoryEntry1.Children.Remove(fujiko) ' Computer から脱退
        End Using
    End Sub
End Class

投稿日時 : 2007年1月11日 14:51

Feedback

# re: DirectortyEntry(System.DirectoryServices.DirectoryEntry) 2007/01/11 16:07 シャノン

なんと。
LDAPしか使えないと思ってたら、こんな面白そうな使い方があったのか…。

# re: DirectortyEntry(System.DirectoryServices.DirectoryEntry) 2007/01/11 18:39 なおこ(・∀・)

>> シャノンさん
LDAP でも遊んでみたかったのですが、おうちの環境が許してくれませんでした...orz

# It's genuinely very complicated in this active life to listen news on TV, thus I simply use web for that reason, and take the newest news. 2019/05/03 20:10 It's genuinely very complicated in this active lif

It's genuinely very complicated in this active life to
listen news on TV, thus I simply use web for that reason, and take the newest
news.

# An intriguing discussion is definitely worth comment. I think that you need to publish more on this issue, it might not be a taboo matter but typically folks don't discuss such issues. To the next! Best wishes!! 2019/05/14 11:49 An intriguing discussion is definitely worth comme

An intriguing discussion is definitely worth comment. I
think that you need to publish more on this issue, it might not be a taboo matter but typically folks don't discuss such issues.
To the next! Best wishes!!

# You ought to be a part of a contest for one of the most useful blogs online. I most certainly will highly recommend this website! 2019/05/15 5:08 You ought to be a part of a contest for one of the

You ought to be a part of a contest for one of the most useful
blogs online. I most certainly will highly
recommend this website!

タイトル  
名前  
Url
コメント