フルネームのドメインがあります(例:long-domainname.com)。このドメイン名はエイリアスshortに置き換えられます。netapi32.dll
このエイリアスは、次のようにを使用して取得できます。
[DllImport("Netapi32.dll")]
static extern int NetApiBufferFree(IntPtr Buffer);
// Returns the domain name the computer is joined to, or "" if not joined.
public static string GetJoinedDomain()
{
int result = 0;
string domain = null;
IntPtr pDomain = IntPtr.Zero;
NetJoinStatus status = NetJoinStatus.NetSetupUnknownStatus;
try
{
result = NetGetJoinInformation(null, out pDomain, out status);
if (result == ErrorSuccess &&
status == NetJoinStatus.NetSetupDomainName)
{
domain = Marshal.PtrToStringAuto(pDomain);
}
}
finally
{
if (pDomain != IntPtr.Zero) NetApiBufferFree(pDomain);
}
if (domain == null) domain = "";
return domain;
}
このメソッドはソート値を返します。しかし、System.DirectoryServices.ActiveDirectory.Domain
クラスとそのName
プロパティを使用して、 long-domainname.com値を取得します。デバッグモードでプロパティを検索したところ、短い値のフィールドまたはプロパティが見つかりませんでした。System.DirectoryServices.ActiveDirectory.Domain
クラスで可能ですか?または、他のクラスのSystem.DirectoryServices
名前空間で可能でしょうか?外部の*.dllをインポートせずに短いドメイン名の値を取得するにはどうすればよいですか?