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

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

目次

Blog 利用状況

書庫

日記カテゴリ

ADネタ

Active Directory 絡みってどちらかというと開発系ってよりインフラ系のような気もしますが、そんなことは気にせずにと。

Active Directory 絡みのアプリを作る時は、まぁ何といっても System.DirectoryServices アセンブリを参照する必要がありますね。

このアセンブリには 2つの名前空間があります。

1つは System.DirectoryServices 名前空間。ここには Active Directory 内のデータ(ユーザ、グループ、コンピュータなどのオブジェクト)をカプセル化する DirectoryEntry クラスや、クエリを実行する DirectorySearcher クラスなどがあります。

もう 1つは System.DirectoryServices.ActiveDirectory 名前空間。ここにはドメインやサイトなどを表すクラスがあって、これらの管理タスクを自動化するために使用されます。

今日はドメイン・サイト関連のネタを書くことにします。

まずはお約束でドメインとサイトの図。(クリックすると新しいウィンドウで拡大図が表示されます。)

Domain Site

さっき「管理タスクを自動化するために使用される」と書きましたが、管理タスクってのは管理ツールにある次の 3つです。(管理者じゃないとなかなか触る機会がないと思いますが・・・)

・ActiveDirectory ユーザーとコンピュータ
・ActiveDirectory サイトとサービス
・ActiveDirectory ドメインと信頼関係

今回は静的なプロパティやメソッドを提供する DirectoryAccess クラスをクラスライブラリとして作ってみました。(Windows アプリ用)

プライベートフィールド

Private Shared _pcName, _domainName, _ldapRoot As String    'PC名, ドメイン名, ルートのLDAPパス
Private Shared _domLogon, _isDC As Boolean    'ドメインにログオンしているかどうか, ドメインコントローラかどうか


パブリック プロパティ

Public Shared ReadOnly Property DomainName As String    ‘ActiveDirectoryドメイン名を取得
  Get
    If _pcName Is Nothing Then
      Call SetData()    'データを設定
    End If
    Return _domainName
  End Get
End Property

Public Shared ReadOnly Property IsDomainController As Boolean    ‘ドメインコントローラかどうかを取得
  Get
    If _pcName Is Nothing Then
      Call SetData()    'データを設定
    End If
    Return _isDC
  End Get
End Property

Public Shared ReadOnly Property IsLogonDomain As Boolean    ‘ドメインにログオンしているかどうかを取得
  Get
    If _pcName Is Nothing Then
      Call SetData()    'データを設定
    End If
    Return _domLogon
  End Get
End Property

Public Shared ReadOnly Property LdapRootPath As String    ‘ドメインのルートのLDAPパスを取得
  Get
    If _pcName Is Nothing Then
      Call SetData()    'データを設定
    End If
    Return _ldapRoot
  End Get
End Property


パブリック メソッド

Public Shared Function GetDomain() As Domain    ‘ドメインを取得
  Dim context As New DirectoryContext(DirectoryContextType.Domain)
  Return Domain.GetDomain(context)
End Function

Public Shared Function PathToCn(ldapPath As String) As String  ‘指定したLDAPパスの名前(オブジェクト名)を取得
  If ldapPath Is Nothing Then
    Throw New ArgumentNullException("ldapPath")
  End If

  Dim spos = ldapPath.IndexOf("="c) + 1
  If spos = 0 Then
    Return ldapPath
  End If

  Dim epos = ldapPath.IndexOf(","c)
  If epos > 0 Then
    Return ldapPath.Substring(spos, epos - spos)
  Else
    Return ldapPath.Substring(spos)
  End If
End Function


プライベート メソッド

Private Shared Sub SetData()    ‘データを設定
  _pcName = Environment.MachineName
  _domLogon = (String.Compare(_pcName, Environment.UserDomainName, True) <> 0)
  If _domLogon Then
    Call SetDomainInfo()    'ドメイン関連情報を設定
  Else
    _domainName = String.Empty
    _ldapRoot = String.Format("WinNT://{0}", _pcName)
   End If
End Sub

Private Shared Sub SetDomainInfo()    ‘ドメイン関連情報を設定
  Try
    Using domain = GetDomain()    'ドメインを取得
      Dim dcName As String
      _domainName = domain.Name
      _ldapRoot = String.Format("LDAP://DC={0}", _domainName.Replace(".", ",DC="))

      For Each dc As DomainController In domain.DomainControllers
        dcName = dc.Name.Substring(0, dc.Name.IndexOf("."c))
        If String.Compare(dcName, _pcName, True) = 0 Then
          _isDC = True
          Return
        End If
      Next
    End Using

  Catch ex As Exception
    ‘例外処理
  End Try
End Sub

実はドメインの情報を取ってくるだけなら GetDomain メソッドだけで充分です。アプリを作る上で条件が必要なのでそれ以外のプロパティやメソッドを実装しただけです。(抜粋ですが)

長くなってしまったのでドメイン情報の詳細については次回ということで。

 

おまけ

Excel で 左のセルを現在のセルにコピーする時は Ctrl + R。(Range.FillRight メソッドに相当)

投稿日時 : 2011年7月12日 12:46

コメントを追加

# ドメイン情報の表示 2011/07/13 20:28 マイナーでもいいよね??

ドメイン情報の表示

# ユーザやグループなどの情報の検索と取得 2011/07/14 17:07 マイナーでもいいよね??

ユーザやグループなどの情報の検索と取得

# クラスライブラリ側のまとめの残りの部分 2011/07/19 23:18 マイナーでもいいよね??

クラスライブラリ側のまとめの残りの部分

# leilei123 2018/08/29 16:49 leilei3915

2018829 leilei3915
http://www.michaelkorsoutletsites.us.com
http://www.pandorasoutlet.us.com
http://www.canadagooseoutletsonline.us.com
http://www.pandoracharmsfactory.us.com
http://www.coachoutletss.us.com
http://www.christianlouboutin-uk.co.uk
http://www.michaelkorshandbagssale.us.org
http://www.michaelkorsoutlets.co.uk
http://www.pandora-jewelryclearance.us.com
http://www.katespadeoutlets.org
http://www.uggoutletsuggs.us.com
http://www.katespadeoutletinc.us.com
http://www.toryburchoutlet.us
http://www.asics-runningshoes.us.com
http://www.nhljerseyscom.us.com
http://www.michaelkorsoutletonlinesite.us.com
http://www.off--whiteclothing.us.com
http://www.cheapjordansfor-sale.us.com
http://www.michaelkorsoutletblackfriday.us.com
http://www.michaelkorsoutletfactoryus.us.com
http://www.goosecanada.name
http://www.cheapuggsboots.com.co
http://www.michaelkorsoutletfactorysale.us.com
http://www.raybansunglassesdesigner.us.com
http://www.nfljerseyswholesalenike.us.com
http://www.michaelkorsoutlet-store.us.org
http://www.canadagoosejacketscoat.us.com
http://www.canadagooseoutletcanadian.us.com
http://www.pandoraoutlets.us.com
http://www.pandoracharm.us.com
http://www.michaelkorsoutletk.us.com
http://www.ralphlauren-saleclearance.org.uk
http://www.oakleysunglasseswholesalec.us.com
http://www.katespadehandbagsinc.us.com
http://www.manoloblahnik.us.org
http://www.ferragamoshoessale.us.com
http://www.longchampoutletonlinestore.us.org
http://www.redbottomsshoes.us.org
http://www.uggoutletstores.ca
http://www.coachoutletonlineoutlet.us.com
http://www.valentinooutletstore.us.com
http://www.coachfactoryoutlet.com.co
http://www.coachoutletstoreonlines.com.co
http://www.michaelkorsoutlet-clearance.in.net
http://www.canadagooseoutletshop.us.com
http://www.nikeshoesuk.co.uk
http://www.michaelkorsoutletsclearance.us.com
http://www.true-religion.us.com
http://www.katespadeonlineoutlet.us.org
http://www.christianlouboutinoutletinc.us.com

# purchase prednisone no prescription https://prednisonesnw.com/#
prednisone 20mg tablets where to buy 2021/11/13 9:42 Prednisone

purchase prednisone no prescription https://prednisonesnw.com/#
prednisone 20mg tablets where to buy

# sildenafil 20 mg tablet https://viasild24.online/
2021/12/07 19:27 Nyusjdh

sildenafil 20 mg tablet https://viasild24.online/

# baricitinib price https://baricitinibrx.com
baricitinib price
2021/12/12 16:30 Buksdldj

baricitinib price https://baricitinibrx.com
baricitinib price

# buy doxycycline for dogs https://doxycyline1st.com/
buy doxycycline online 2022/02/26 8:26 Jusidkid

buy doxycycline for dogs https://doxycyline1st.com/
buy doxycycline online

# clomid cost http://clomidus.store/ 2022/04/12 20:29 Clomids

clomid cost http://clomidus.store/

# iiYRDLDUbHUsUkSzH 2022/04/19 12:48 markus

http://imrdsoacha.gov.co/silvitra-120mg-qrms

# cheap erectile dysfunction pills https://ed-pills.xyz/
treatment of ed 2022/09/16 14:54 EdPills

cheap erectile dysfunction pills https://ed-pills.xyz/
treatment of ed

# earch our drug database. earch our drug database.
https://canadianfast.com/
Read information now. Long-Term Effects. 2023/02/19 12:53 CanadaBest

earch our drug database. earch our drug database.
https://canadianfast.com/
Read information now. Long-Term Effects.

# Best and news about drug. Learn about the side effects, dosages, and interactions.
https://canadianfast.com/
Learn about the side effects, dosages, and interactions. Comprehensive side effect and adverse reaction information. 2023/02/20 11:53 CanadaBest

Best and news about drug. Learn about the side effects, dosages, and interactions.
https://canadianfast.com/
Learn about the side effects, dosages, and interactions. Comprehensive side effect and adverse reaction information.

# my canadian drug store https://pillswithoutprescription.pro/# 2023/05/15 5:18 PillsPresc

my canadian drug store https://pillswithoutprescription.pro/#

# discount prescription drug https://pillswithoutprescription.pro/# 2023/05/16 11:34 PillsPro

discount prescription drug https://pillswithoutprescription.pro/#

# top 10 pharmacies in india https://indiapharmfd.com/# - indian pharmacies safe 2023/06/08 8:43 IndiaPharm

top 10 pharmacies in india https://indiapharmfd.com/# - indian pharmacies safe

# п»їonline apotheke 2023/09/26 13:47 Williamreomo

https://onlineapotheke.tech/# versandapotheke
online apotheke deutschland

# gГјnstige online apotheke 2023/09/26 15:48 Williamreomo

http://onlineapotheke.tech/# online apotheke deutschland
п»?online apotheke

# п»їonline apotheke 2023/09/26 23:12 Williamreomo

https://onlineapotheke.tech/# online apotheke deutschland
online apotheke deutschland

# versandapotheke deutschland 2023/09/26 23:39 Williamreomo

https://onlineapotheke.tech/# online apotheke deutschland
versandapotheke

# п»їonline apotheke 2023/09/27 3:55 Williamreomo

https://onlineapotheke.tech/# gГ?nstige online apotheke
internet apotheke

# п»їonline apotheke 2023/09/27 4:22 Williamreomo

https://onlineapotheke.tech/# online apotheke gГ?nstig
internet apotheke

# online apotheke gГјnstig 2023/09/27 10:37 Williamreomo

https://onlineapotheke.tech/# п»?online apotheke
online apotheke deutschland

# online apotheke preisvergleich 2023/09/27 12:53 Williamreomo

https://onlineapotheke.tech/# online apotheke gГ?nstig
online apotheke deutschland

# comprare farmaci online con ricetta 2023/09/27 16:44 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# acquisto farmaci con ricetta 2023/09/27 18:20 Rickeyrof

acheter sildenafil 100mg sans ordonnance

# п»їonline apotheke 2023/09/27 22:12 Terrywef

acheter sildenafil 100mg sans ordonnance

# fst dispensary 2023/10/17 13:05 Dannyhealm

They always offer alternatives and suggestions. https://mexicanpharmonline.com/# pharmacies in mexico that ship to usa

# canadian online rx 2023/10/17 23:50 Dannyhealm

They provide peace of mind with their secure international deliveries. https://mexicanpharmonline.shop/# mexico drug stores pharmacies

# canadian farmacy 2023/10/18 4:21 Dannyhealm

Trust and reliability on a global scale. http://mexicanpharmonline.shop/# mexican border pharmacies shipping to usa

# online mexican pharmacies 2023/10/18 14:49 Dannyhealm

Their online prescription system is so efficient. http://mexicanpharmonline.com/# reputable mexican pharmacies online

# valtrex price https://valtrex.auction/ where can i buy valtrex 2023/10/24 23:45 Valtrex

valtrex price https://valtrex.auction/ where can i buy valtrex

# mexican rx online 2023/11/16 22:25 DavidFap

http://mexicopharm.shop/# mexico drug stores pharmacies

# Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information. 2023/12/19 10:59 Hi to all, it's really a fastidious for me to pay

Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information.

# Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information. 2023/12/19 11:00 Hi to all, it's really a fastidious for me to pay

Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information.

# Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information. 2023/12/19 11:00 Hi to all, it's really a fastidious for me to pay

Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information.

# Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information. 2023/12/19 11:00 Hi to all, it's really a fastidious for me to pay

Hi to all, it's really a fastidious for me to pay a visit this web page, it includes helpful Information.

# gates of olympus demo free spin - https://gatesofolympus.auction/ gates of olympus slot 2024/03/27 16:29 Olympic

gates of olympus demo free spin - https://gatesofolympus.auction/ gates of olympus slot

タイトル
名前
URL
コメント