Active Directory ドメイン サービスが Windows サーバーにインストールされているかどうかを確認しようとしています。
それらがサーバー マネージャーに表示されることはわかっていますが、C# コードを使用して役割がサーバーにインストールされているかどうかをプログラムで取得できますか?
Active Directory ドメイン サービスが Windows サーバーにインストールされているかどうかを確認しようとしています。
それらがサーバー マネージャーに表示されることはわかっていますが、C# コードを使用して役割がサーバーにインストールされているかどうかをプログラムで取得できますか?
サーバーがドメイン コントローラーであるかどうかを確認するには、ドメイン内のドメイン コントローラーを列挙し、現在使用しているサーバーのホスト名を調べて、それらのいずれかに一致するかどうかを確認します。ドメイン コントローラのリストを取得するには:
var domainControllers = new List<string>();
var domain = Domain.GetCurrentDomain();
foreach (var dc in domain.DomainControllers)
{
domainControllers.Add(dc.Name);
}
string whoami = Dns.GetHostname();
必要なエラー処理を必ず追加してください (これをワークグループ コンピューターで実行すると、エラーが発生します)。
編集: DCPROMO を検出する別の方法 (DCPROMO なしでドメイン サービスをインストールすることが可能であり、それは悪いことであるため):
1) DCPROMO が処理を行ったときに作成されるデバッグ ログを解析 (およびその存在を確認) します。c:\windows\debug\dcpromo.log にあるはずです
2) この DSQUERY コマンドは高速で、DCPROMO が実行されたすべてのサーバーを表示します。
dsquery * "cn=Sites,cn=Configuration,dc=MyDomain,dc=com" -Filter "(cn=NTDS Settings)" -attr distinguishedName whenCreated
Processを使用して起動した場合、問題はコマンドライン出力から取得されます。これを行う方法に取り組んでおり、クエリで AD フィルタリングをしばらく行っていないため、テストしたら更新します。