アプリケーションに Novell eDirectory を実装しました。私たちのアプリケーションは Microsoft ActiveDirectory をサポートしているので、"Novell yes/no" のような追加の構成パラメーターを防止したいと考えています。
では、コンピュータが Microsoft ActiveDirectory または Novell ネットワークに接続されているかどうかを確認する別の方法はありますか?
アプリケーションに Novell eDirectory を実装しました。私たちのアプリケーションは Microsoft ActiveDirectory をサポートしているので、"Novell yes/no" のような追加の構成パラメーターを防止したいと考えています。
では、コンピュータが Microsoft ActiveDirectory または Novell ネットワークに接続されているかどうかを確認する別の方法はありますか?
コンピューターが Windows ドメインの一部であるかどうかを知りたいのですが、Win32_NTDomain
WMI 情報を取得できます。
powerShell では、次のようになります。
Get-WmiObject Win32_NTDomain
ClientSiteName : Default-First-Site-Name
DcSiteName : Default-First-Site-Name
Description : DOM
DnsForestName : dom.fr
DomainControllerAddress : \\192.168.183.100
DomainControllerName : \\WM2008R2ENT
DomainName : DOM
Roles :
Status : OK
@ScottTxコメントによるエディションでは、 Win32_ComputerSystem
WMI クラスも使用できます
PS> (Get-WMIObject Win32_ComputerSystem).PartOfDomain
False
C# のWin32_NTDomain クラスのドキュメントによると、次の方法で取得できます。
using System;
using System.Collections.Generic;
using System.Text;
using System.Management;
namespace WMIQuery
{
class WmiQuery
{
static void Main(string[] args)
{
ManagementObjectSearcher domainInfos = new ManagementObjectSearcher("select * from WIN32_NTDomain");
foreach (ManagementObject domainInfo in domainInfos.Get())
{
Console.WriteLine("Name : {0}", domainInfo.GetPropertyValue("Name"));
Console.WriteLine("Computer/domain : {0}", domainInfo.GetPropertyValue("Caption"));
Console.WriteLine("Domain name : {0}", domainInfo.GetPropertyValue("DomainName"));
Console.WriteLine("Status : {0}", domainInfo.GetPropertyValue("Status"));
}
// Edition according to @ScottTx comment you can also use `Win32_ComputerSystem` WMI class
ManagementObjectSearcher ComputerInfos = new ManagementObjectSearcher("select * from Win32_ComputerSystem");
foreach (ManagementObject ComputerInfo in ComputerInfos.Get())
{
if ((bool)ComputerInfo.GetPropertyValue("PartOfDomain"))
Console.WriteLine("This computer is part of domain");
else
Console.WriteLine("This computer is not part of domain");
}
}
}
}
System.Management
アセンブリへの参照の追加
「Novell ネットワークに接続されている」などのステートメントは、以前よりもずっとあいまいになりました。Novell (Netware) クライアントを使用するワークステーションのユーザーが、Netware サーバー、または Linux の OES などのサービスのような NCP (Netware Core Protocol) を提供するサーバーにログインしている場合、Edirectory のネットワーク アドレス属性は、ユーザーがは現在 EDirectory (NDS) にログインしています。
バグのあるクライアントが原因で、ユーザーがログインしている場合にこの属性が存在しない場合がありますが、通常はその属性を使用できます。また、ユーザーが AD と NDS に同時にログインすることはまったく正常です。また、構成または使用中の Novell 製品によっては、ワークステーション自体も NDS に記録できます。
どのように接続していますか?LDAP経由?その場合は、Active Directory に固有の sAMAccountName を探します。AD のすべてのユーザーとグループには、その属性があります (必須です)。一方、eDirectory では、奇妙に eDirectory スキーマを拡張して追加しない限り、誰もそれを持っていません。
RootDSE には、ソース ディレクトリを示す何かが含まれている可能性があります。しかし、私はすぐに素晴らしい例を確信していません。