public Domain(string fqdn, DomainFunctionLevel domainfunctionlevel, string netbios = null) { FQDN = fqdn; NetbiosName = String.IsNullOrEmpty(netbios) ? fqdn.Split('.')[0] : netbios; DomainNC = "DC=" + fqdn.Replace(".", ",DC="); DomainFunctionLevel = domainfunctionlevel; }
/// <summary> /// Initialize information from PTF config /// </summary> /// <param name="testSite"></param> public override void Initialize(ITestSite testSite) { base.Initialize(testSite); Site.Log.Add(LogEntryKind.Debug, "Read common properties from PTF configure file."); AllowBreakEnvironment = GetBoolProperty(propertyGroup + "AllowBreakEnvironment"); DomainFunctionLevel = GetEnumProperty <DomainFunctionLevel>(propertyGroup + "DomainFunctionLevel"); DomainAdminGroup = GetProperty(propertyGroup + "DomainAdminGroup"); DomainAdministratorName = GetProperty(propertyGroup + "DomainAdministratorName", true); DomainUserPassword = GetProperty(propertyGroup + "DomainUserPassword", true); PrimaryDomainDnsName = GetProperty(propertyGroup + "PrimaryDomain.DNSName", true); PrimaryDomainNetBiosName = GetProperty(propertyGroup + "PrimaryDomain.NetBiosName" ?? (PrimaryDomainDnsName.Split('.'))[0].ToString()); PrimaryDomainSrvGUID = GetProperty(propertyGroup + "PrimaryDomain.ServerGUID", true); PrimaryDomainSID = GetProperty(propertyGroup + "PrimaryDomain.SID", true); PDCNetbiosName = GetProperty(propertyGroup + "WritableDC1.NetbiosName", true); PDCPassword = GetProperty(propertyGroup + "WritableDC1.Password", true); PDCIPAddress = GetProperty(propertyGroup + "WritableDC1.IPAddress"); PDCOSVersion = GetEnumProperty <ServerVersion>(propertyGroup + "WritableDC1.OSVersion"); PDCIsWindows = (PDCOSVersion == ServerVersion.NonWin ? false : true); SDCNetbiosName = GetProperty(propertyGroup + "WritableDC2.NetbiosName"); SDCPassword = GetProperty(propertyGroup + "WritableDC2.Password"); SDCIPAddress = GetProperty(propertyGroup + "WritableDC2.IPAddress"); SDCOSVersion = GetEnumProperty <ServerVersion>(propertyGroup + "WritableDC2.OSVersion"); SDCIsWindows = (SDCOSVersion == ServerVersion.NonWin ? false : true); RODCNetbiosName = GetProperty(propertyGroup + "RODC.NetbiosName"); RODCPassword = GetProperty(propertyGroup + "RODC.Password"); RODCIPAddress = GetProperty(propertyGroup + "RODC.IPAddress"); RODCOSVersion = GetEnumProperty <ServerVersion>(propertyGroup + "RODC.OSVersion"); RODCIsWindows = (RODCOSVersion == ServerVersion.NonWin ? false : true); ChildDomainDnsName = GetProperty(propertyGroup + "ChildDomain.DNSName"); ChildDomainNetBiosName = GetProperty(propertyGroup + "ChildDomain.NetBiosName") ?? (ChildDomainDnsName.Split('.'))[0].ToString(); CDCNetbiosName = GetProperty(propertyGroup + "CDC.NetbiosName"); CDCIPAddress = GetProperty(propertyGroup + "CDC.IPAddress"); CDCOSVersion = GetEnumProperty <ServerVersion>(propertyGroup + "CDC.OSVersion"); CDCIsWindows = (CDCOSVersion == ServerVersion.NonWin ? false : true); TrustDomainDnsName = GetProperty(propertyGroup + "TrustDomain.DNSName"); TrustDomainNetBiosName = GetProperty(propertyGroup + "TrustDomain.NetBiosName") ?? (TrustDomainDnsName.Split('.'))[0].ToString(); TDCNetbiosName = GetProperty(propertyGroup + "TDC.NetbiosName"); TDCIPAddress = GetProperty(propertyGroup + "TDC.IPAddress"); TDCOSVersion = GetEnumProperty <ServerVersion>(propertyGroup + "TDC.OSVersion"); TDCIsWindows = (TDCOSVersion == ServerVersion.NonWin ? false : true); DMNetbiosName = GetProperty(propertyGroup + "DM.NetbiosName"); DMPassword = GetProperty(propertyGroup + "DM.Password"); DMOldPassword = GetProperty(propertyGroup + "DM.OldPassword"); DMIPAddress = GetProperty(propertyGroup + "DM.IPAddress"); ENDPOINTNetbiosName = GetProperty(propertyGroup + "ENDPOINT.NetbiosName", true); ENDPOINTPassword = GetProperty(propertyGroup + "ENDPOINT.Password", true); ENDPOINTOldPassword = GetProperty(propertyGroup + "ENDPOINT.OldPassword"); ENDPOINTIPAddress = GetProperty(propertyGroup + "ENDPOINT.IPAddress"); ADLDSInstanceName = GetProperty(propertyGroup + "ADLDSInstanceName"); ADDSPortNum = GetProperty(propertyGroup + "ADDSPortNum"); ADLDSPortNum = GetProperty(propertyGroup + "ADLDSPortNum"); ADLDSSSLPortNum = GetProperty(propertyGroup + "ADLDSSSLPortNum"); LDSApplicationNC = GetProperty(propertyGroup + "LDSApplicationNC"); ClientUserName = GetProperty(propertyGroup + "ClientUserName"); ClientUserPassword = GetProperty(propertyGroup + "ClientUserPassword"); Site.Log.Add(LogEntryKind.Debug, "Read common properties from PTF configure file completed."); Site.Log.Add(LogEntryKind.Debug, "Construct common classes for domain, domain controller and endpoint."); domains = new DomainCollection(); domainControllers = new DomainControllerCollection(); Domain primaryDomain = new Domain(PrimaryDomainDnsName, PrimaryDomainNetBiosName); domains.Add(primaryDomain); DomainController pdc = new DomainController(primaryDomain, PDCNetbiosName, PDCIPAddress, (ServerVersion)PDCOSVersion); DomainController sdc = new DomainController(primaryDomain, SDCNetbiosName, SDCIPAddress, (ServerVersion)SDCOSVersion); DomainController rodc = new DomainController(primaryDomain, RODCNetbiosName, RODCIPAddress, (ServerVersion)RODCOSVersion); domainControllers.Add(pdc); domainControllers.Add(sdc); domainControllers.Add(rodc); if (string.IsNullOrEmpty(ChildDomainDnsName)) { Site.Log.Add(LogEntryKind.Warning, "ChildDomainDnsName is not configured in PTF, indicating the environment has no child domain."); } else { Domain childDomain = new Domain(ChildDomainDnsName); DomainController cdc = new DomainController(childDomain, CDCNetbiosName, CDCIPAddress, (ServerVersion)CDCOSVersion); domains.Add(childDomain); domainControllers.Add(cdc); } if (string.IsNullOrEmpty(TrustDomainDnsName)) { Site.Log.Add(LogEntryKind.Warning, "TrustDomainDnsName is not configured in PTF, indicating the environment has no trusted domain."); } else { Domain trustDomain = new Domain(TrustDomainDnsName); DomainController tdc = new DomainController(trustDomain, TDCNetbiosName, TDCIPAddress, (ServerVersion)TDCOSVersion); domains.Add(trustDomain); domainControllers.Add(tdc); } Computer endpoint = new Computer(primaryDomain, ENDPOINTNetbiosName, ENDPOINTIPAddress); domainMembers = new ComputerCollection(); domainMembers.Add(endpoint); Site.Log.Add(LogEntryKind.Debug, "Construct common classes for domain, domain controller and endpoint completed."); }