マイナーでもいいよね??

殆どVB系、でも .NET じゃない VB は知らないよん

目次

Blog 利用状況

書庫

日記カテゴリ

グループのネストしているすべてのメンバーを表示する画面のWindowsアプリのコード(VB)

グループのネストしているすべてのメンバーを表示する画面の Windows アプリの VB のコードです。

'パブリックコンストラクター

Public Sub New(group As DomainGroup)

  InitializeComponent()

  Me.AddChildNode(group)   '子ノードを追加

  Me.MemberTreeView.ExpandAll()

End Sub

 

'プライベートメソッド

'子ノードを追加

Private Sub AddChildNode(group As DomainGroup)

  Dim node As New TreeNode(group.Name, group.Category, group.Category)

  Me.MemberTreeView.Nodes.Add(node)

  Dim members = DirectoryAccess.GetMembers(group)   'グループのメンバーを取得

  For Each member In members

    Me.AddChildNode(node, member)   '子ノードを追加

    member.Dispose()

  Next

End Sub

 

'子ノードを追加

Private Sub AddChildNode(node As TreeNode, member As DomainObject)

  Dim childNode = CreateNode(member)   'ノードを作成

  node.Nodes.Add(childNode)

  If member.Category = CategoryType.Group Then

    Dim subMembers = DirectoryAccess.GetMembers(DirectCast(member, DomainGroup))   'グループのメンバーを取得

    For Each subMember In subMembers

      Me.AddChildNode(childNode, subMember)   '子ノードを追加

      subMember.Dispose()

    Next

  End If

End Sub

 

'指定したメンバーのノードを作成

Private Function CreateNode(member As DomainObject) As TreeNode

  Dim displayName As String   '表示するテキスト

  Dim fontColor As Color

  Select Case member.Category

    Case CategoryType.User

      Dim user = DirectCast(member, DomainUser)

      displayName = String.Format("{0}({1}{2}:{3}/{4})",

        user, user.LastName, user.FirstName, user.DisplayPath, user.Name)

      fontColor = Color.Brown

    Case CategoryType.Group

      Dim group = DirectCast(member, DomainGroup)

      displayName = String.Format("{0}({1}:{2})", group, group.Scope, group.DisplayPath)

      fontColor = Color.Blue

    Case CategoryType.Computer

      Dim pc = DirectCast(member, Computer)

      Dim sp As String = Nothing

      If pc.OperatingSystemServicePack IsNot Nothing Then

        sp = pc.OperatingSystemServicePack.Replace("Service Pack ", " SP")

      End If

      displayName = String.Format("{0}({1}{2}:{3})", pc, pc.OperatingSystem, sp, pc.Role)

      fontColor = Color.Green

    Case Else   'CategoryType.ForeignSecurityPrincipal

      displayName = String.Format("{0}({1})", member, member.Name)

  End Select

  Return New TreeNode(displayName, member.Category, member.Category) With {.Name = member.Name, .ForeColor = fontColor}

End Function

 

コンストラクターで受け取っているグループは、呼出し元のグループリスト画面で選択されたグループです。

まず、AddChildNode(DomainGroup) メソッドで TreeView に対象グループのノードを追加してます。

次に DirectoryAccess.GetMembers メソッドを呼び出してグループのメンバーを取得し、そのメンバーに対して AddChildNode(TreeNode, DomainObject) メソッドを呼び出して ノードに子ノードを追加してます。

AddChildNode(TreeNode, DomainObject) メソッドでは、CreateNode メソッドを呼び出してメンバーのノードを作成してノードに追加してます。

メンバーがグループの場合は再帰的に呼び出してメンバーのノードを追加してます。

CreateNode メソッドでは、メンバーの種類ごとに表示するテキストとフォントの色を設定してノードを作成してます。

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

投稿日時 : 2015年2月18日 20:32

コメントを追加

# ルイヴィト指輪コピー 2017/08/19 9:16 zcvqbg@aol.jp

信用第一、良い品質
主要取扱商品 バッグ、財布、腕時計、ベルト
品質がよい 価格が低い 実物写真 品質を重視
不良品物情況、無償で交換します.
税関没収する商品は再度無料で発送します!
ご注文を期待しています!
ルイヴィト指輪コピー http://www.nawane111.com/hermes-bag.htm

# how to write an english essay p33iip 2022/09/03 16:57 Charlosmox


Whoa plenty of good knowledge! https://definitionessays.com/ homework statistics

# コピー専門店 2022/10/02 23:00 crmmwv@live.com

手書きの手紙ありがとうございます。
数回利用しているのですが、いつも梱包が丁寧でうれしいです。
プレゼント用に購入したのですが、とても良い品でとても喜んでもらいました。
安心して利用できうれしいです。
またぜひ利用したいです。
★ルイヴィトン★ヴェルニ★クリスティMM★斜め掛けショルダーバッグ★ブロンズ(廃色)★
大満足です!
プレゼント用に購入したのですが、新品同様で驚きました。
とても喜んでもらいました。
自分用にしてもよかったかなって思うくらい良かったです。
またお世話になりたいです。
コピー専門店 https://www.bagraku.com/AppleWatch

# college paper writing i99yqs 2023/02/09 9:53 Albertosed


With thanks. Ample facts!

https://service-essay.com/ guidelines for dissertation writing

# how to write reflection essay y21hxy 2023/02/10 8:01 Albertosed


Really lots of helpful material!
https://essaywritingservicelinked.com/ how to right a college essay

# buying essay r782pj 2023/02/26 11:06 CharlesSnoff


You said it perfectly..
buy narrative essay https://quality-essays.com/ buy narrative essay online

# paper writing custom paper writing service m55wpa 2023/03/01 0:15 StevenGrelo

You stated it very well!
reddit have you used paper writing service https://service-essay.com/ best paper writing service 2018

# write my thesis statements j645de 2023/03/03 0:07 Josephbried


Nicely put, Cheers!
essay with thesis statement https://writingthesistops.com/ best thesis writing service reddit

# write analysis essay a57fas 2023/03/06 12:10 Gregorysaipt


Nicely put, Regards.
phd dissertation https://writingthesistops.com disseratation https://writingthesistops.com

# buy law essay h69puq 2023/03/06 19:40 EugeneSib

You reported it fantastically.
essays on writing by writers https://helptowriteanessay.com order cheap essay https://essaypromaster.com

# college admissions essay help n15wrx 2023/03/07 10:33 EugeneSib


You made your stand quite effectively..
writing a dissertation introduction https://essaywriting4you.com custom writing review https://helpmedomyxyzhomework.com

# how to write an admissions essay u87ygc 2023/03/07 10:43 Gregorysaipt


Kudos! A good amount of postings!
reflective essay help https://researchproposalforphd.com theses dissertations https://essaywritingservicelinked.com

# stephen king essay on writing w53wcg 2023/03/08 2:37 EugeneSib


Whoa lots of beneficial facts.
written dissertation https://custompaperwritingservices.com help writing essays https://essaypromaster.com

# writing literary essays y46tvg 2023/03/08 9:02 Gregorysaipt


Nicely put. Thanks a lot.
my writing experience essay https://writingresearchtermpaperservice.com article writing service review https://researchproposalforphd.com

# a good college essay y18ihh 2023/03/09 10:26 EugeneSib


Wonderful posts. Cheers.
help with writing dissertation https://essaywritingservicetop.com dissertation writting https://essaywriting4you.com

# nursing dissertation s561nm 2023/03/10 4:34 Gregorysaipt


Lovely facts, Cheers!
how to right a college essay https://bestmasterthesiswritingservice.com buy an essay paper https://bestmasterthesiswritingservice.com

# cheap custom essay writing services i21gvh 2023/03/11 2:16 Gregorysaipt

You actually explained that superbly.
quality custom essay https://paperwritingservicecheap.com blog writing services https://essaywritingservicehelp.com

# dissitation i734vh 2023/03/11 6:33 EugeneSib

You stated it terrifically!
hiring writer https://researchpaperwriterservices.com read college essays https://custompaperwritingservices.com

# professional essay writers for hire m43mmh 2023/03/11 23:58 Gregorysaipt


Nicely put, Cheers.
what is a dissertation https://bestonlinepaperwritingservices.com essays about yourself for college https://writeadissertation.com

# writing a how to essay q925aa 2023/03/12 12:10 EugeneSib


Wow lots of beneficial material!
writing service https://cheapessaywriteronlineservices.com help for essay writing https://essaywritingservicetop.com

# help with college essays y96jdt 2023/03/13 17:22 EugeneSib


Cheers. I appreciate this!
write my law essay https://researchpaperwriterservices.com easy steps to write an essay https://researchpaperwriterservices.com

# dessetation r231zb 2023/04/02 16:53 EugeneSib


Point certainly used!!
homework writing services https://custompaperwritingservices.com find a ghostwriter https://bestonlinepaperwritingservices.com

タイトル
名前
URL
コメント