2013-10-29 67 views
3

我用下面的代碼來創建一個DNS區域:使用WMI創建活動目錄的DNS區域

ManagementClass zoneObj = new ManagementClass(session, new ManagementPath("MicrosoftDNS_Zone"), null); 
ManagementBaseObject inParams = zoneObj.GetMethodParameters("CreateZone"); 
inParams["ZoneName"] = "thedomain.com"; 
inParams["ZoneType"] = 0; 
ManagementBaseObject outParams = zoneObj.InvokeMethod("CreateZone", inParams, null); 

這將創建區域,但與類型「標準主要」創建它。我需要它創建類型「活動目錄 - 集成主」。從我所有的研究中,「0」的區域類型應該這樣做。誰能告訴我爲什麼它不會將該區域創建爲活動目錄區域?

回答

1

我想通了。任何其他人都有相同的問題,你必須添加DsIntegrated參數來告訴它使用Active Directory。下面是最終代碼:

ManagementClass zoneObj = new ManagementClass(session, new ManagementPath("MicrosoftDNS_Zone"), null); 
ManagementBaseObject inParams = zoneObj.GetMethodParameters("CreateZone"); 
inParams["ZoneName"] = "thedomain.com"; 
inParams["ZoneType"] = 0; 
inParams["DsIntegrated"] = true; //--- this is what needed to be added 
ManagementBaseObject outParams = zoneObj.InvokeMethod("CreateZone", inParams, null); 

DsIntegrated 指示區數據是否存儲在Active Directory或文件。如果爲TRUE,則數據存儲在Active Directory中;如果FALSE,數據存儲在文件中。