例外が発生します。当たり前ですがw
クライアントPCやメンバサーバのネットワーク(TCP/IP)の設定で、DNSサーバのアドレスをドメインコントローラのIPアドレスにしてないと Domain オブジェクトを取得できないようです。
通常、ドメインのメンバであるクライアントPCやメンバサーバは、DNSサーバのアドレスってドメインコントローラのIPアドレスになっているはずなので問題ないと思いますが。
前回、ドメインを取得する DirectoryAccess クラスの GetDomain メソッドの内部実装について書きましたが、取得できないと次のような例外が発生します。
Domain.GetComputerDomain メソッドの場合の例外とメッセージの例
ActiveDirectoryObjectNotFoundException
ローカル コンピューターがドメインに参加していないか、ドメインが接続不可能です。
Domain.GetCurrentDomain メソッドの場合の例外とメッセージの例
ActiveDirectoryOperationException
現在のセキュリティ コンテキストは、Active Directory ドメインまたはフォレストに関連付けられていません。
Domain.GetDomain メソッドの場合の例外とメッセージの例
ActiveDirectoryOperationException
現在のセキュリティ コンテキストは、Active Directory ドメインまたはフォレストに関連付けられていません。
や、
ActiveDirectoryServerDownException
サーバーは使用可能ではありません。 名前: "virtual.proceed.local"
なお、DirectoryAccess クラスの GetDomain メソッドの呼出し側はこんな感じです。
VB
Using domain = DirectoryAccess.GetDomain() 'ドメインを取得
'処理
End Using
C#
using (var domain = DirectoryAccess.GetDomain()) //ドメインを取得
{
'処理
}
DirectoryAccess.GetDomain メソッドは Domain クラス(System.DirectoryServices.ActiveDirectory 名前空間)のインスタンスを返します。
Domain クラスは IDisposable インターフェイスを実装した ActiveDirectoryPartition クラスを継承しています。