2011-05-11 4 views
4

방금 ​​응용 프로그램에서 Novell eDirectory를 구현했습니다. 우리 응용 프로그램이 Microsoft ActiveDirectory를 지원하기 때문에 "Novell yes/no"와 같은 추가 구성 매개 변수를 방지하고 싶습니다.컴퓨터가 novell eDirectory 또는 Microsoft ActiveDirectory에 연결되어 있는지 확인하는 방법은 무엇입니까?

컴퓨터가 Microsoft ActiveDirectory 또는 Novell 네트워크에 연결되어 있는지 확인할 수있는 다른 방법이 있습니까?

답변

0

어떻게 연결하나요? LDAP를 통해? 그렇다면 sAMAccountName을 찾고 Active Directory에 고유합니다. AD의 모든 사용자 및 그룹은 해당 속성을 갖습니다 (필수 항목 임). eDirectory 스키마를 이상하게 확장하여 추가하지 않는 한 eDirectory에서는 아무도 소유하지 않습니다.

RootDSE에는 소스 디렉토리가 표시됩니다. 그러나 나는 훌륭한 모범을 분명히 알지 못한다.

2

컴퓨터가 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 의견에 따라 당신은 또한 당신이 그것을 얻을 수있는 C#으로 Win32_NTDomain class documentation에 따르면 Win32_ComputerSystem WMI 클래스

PS> (Get-WMIObject Win32_ComputerSystem).PartOfDomain 
False 

을 사용할 수 있습니다 작성자 :

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 조립

+1

Win32_ComputerSystem.PartOfDomain은 true/false를 반환합니다. 어느 쪽이든 작동합니다. – ScottTx

1

에 대한 참조를 추가하면 "글쎄 Novell 네트워크에 연결되어"와 같은 문장은 예전 그 후 많은 vaguer이다. Novell (Netware) 클라이언트를 사용하는 워크 스테이션의 사용자가 Netware 서버 또는 Linux의 OES와 같은 서비스 (예 : Netware Core Protocol)를 제공하는 서버에 로그인 한 경우, Edirectory의 네트워크 주소 속성은 사용자 현재 EDirectory (NDS)에 로그인되어 있습니다.

버그가있는 클라이언트로 인해 때때로이 속성은 사용자가 로그인했지만 존재하지 않지만 일반적으로 그 속성은 사용할 수있는 속성입니다. 또한 사용자가 AD & NDS에 동시에 로그인하는 것이 일반적입니다. 또한 사용중인 구성 또는 Novell 제품에 따라 워크 스테이션 자체를 NDS에 기록 할 수도 있습니다.

관련 문제