2010-03-15 3 views
1

그래서, WMI는 Administrators 그룹의 구성원을 얻을 수있는 원격 시스템을 조회 Win32_GroupUser 클래스를 (C#)를 쿼리에서 얻은 문자열을 구문 분석에 실패 문자열로. 목록 (보안을 위해 변경된 이름)입니다. 도메인 사용자 joeblowjanedoe은 실제로 해당 시스템의 로컬 관리자입니다.생성자 ManagementObject (문자열 경로)

\\MACHINE_NAME\root\cimv2:Win32_UserAccount.Domain="MACHINE_NAME",Name="localadmin" 
\\MACHINE_NAME\root\cimv2:Win32_Group.Domain="OUR_DOMAIN",Name="Domain Admins" 
\\MACHINE_NAME\root\cimv2:Win32_UserAccount.Domain="OUR_DOMAIN",Name="joeblow" 
\\MACHINE_NAME\root\cimv2:Win32_UserAccount.Domain="OUR_DOMAIN",Name="janedoe" 

나는 루프로 위의 결과를 가로 지른다. 그 안에, 내가 다음을 수행하십시오

ManagementObject isInThisUser = new ManagementObject(memberString); 

내가 그래서 각 구성원 개체에서 도메인 이름 등록 정보를 추출 할 수있는 그렇게.

\\MACHINE_NAME\localadmin 
\\OUR_DOMAIN\Domain Admins 
\\OUR_DOMAIN\joeblow 
\\OUR_DOMAIN\janedoe 

을하지만, 여기에 일어나는 내용은 다음과 같습니다 : 완벽한 세상에서는, 나는 최종 결과 문자열의 folowing 목록을 가져올 것이라고 생성자를 사용하여 만든 ManagementObject 객체가 을 이리와! 도메인, 이름, 캡션, 모두, 모두 null! 첫 번째 (로컬 관리자)를 제외하고. 그 중 하나의 경우 생성자는 광고 된대로 작동합니다.

왜 이런 일이 발생합니까? 사용자가 쿼리를 작성하는 것이 도메인 관리자가 아니기 때문입니까?

답변

0

음을 (.. 그것은 는 대상 컴퓨터의 로컬 관리자가하지만 사실, OUR_DOMAIN\janedoe이다),이 나를 위해 작동합니다 associator의 Win32_GroupUser에서 PartComponent를 선택 후 나는

string path = obj.Properties["PartComponent"].Value.ToString(); 
ManagementObject mo=new ManagementObject(path); 

을하고 미주리 포함 모든 속성이 채워집니다. 어떻게 memberString 변수를 채울 수 있습니까?