private bool MoveADDirectoryServerProcessCSRoutine() { this._identityDSObj = this._cmdletParameters["Identity"] as ADDirectoryServer; base.SetPipelinedSessionInfo(this._identityDSObj.SessionInfo); CmdletSessionInfo cmdletSessionInfo = this.GetCmdletSessionInfo(); ADDirectoryServerFactory <ADDirectoryServer> aDDirectoryServerFactory = new ADDirectoryServerFactory <ADDirectoryServer>(); aDDirectoryServerFactory.SetCmdletSessionInfo(cmdletSessionInfo); ADObject directoryObjectFromIdentity = aDDirectoryServerFactory.GetDirectoryObjectFromIdentity(this._identityDSObj, cmdletSessionInfo.DefaultPartitionPath); string str = string.Concat("CN=Servers,", this._siteDirObj.DistinguishedName); ADObjectSearcher aDObjectSearcher = SearchUtility.BuildSearcher(cmdletSessionInfo.ADSessionInfo, str, ADSearchScope.Base); using (aDObjectSearcher) { aDObjectSearcher.Filter = ADOPathUtil.CreateFilterClause(ADOperator.Like, "objectClass", "*"); ADObject aDObject = aDObjectSearcher.FindOne(); if (aDObject == null) { base.ThrowTerminatingError(ADUtilities.GetErrorRecord(new ADIdentityNotFoundException(string.Format(CultureInfo.CurrentCulture, StringResources.ObjectNotFound, new object[0])), "MoveADDirectoryServer:ProcessRecord", str)); } StringBuilder stringBuilder = new StringBuilder("Move-ADObject -identity $args[0] -Partition $args[1] -TargetPath $args[2] "); try { object[] configurationNamingContext = new object[3]; configurationNamingContext[0] = directoryObjectFromIdentity; configurationNamingContext[1] = cmdletSessionInfo.ADRootDSE.ConfigurationNamingContext; configurationNamingContext[2] = aDObject.DistinguishedName; base.InvokeCommand.InvokeScript(stringBuilder.ToString(), false, PipelineResultTypes.Output, null, configurationNamingContext); } catch (RuntimeException runtimeException1) { RuntimeException runtimeException = runtimeException1; object[] distinguishedName = new object[3]; distinguishedName[0] = directoryObjectFromIdentity.DistinguishedName; distinguishedName[1] = this._siteDirObj.DistinguishedName; distinguishedName[2] = runtimeException.Message; string str1 = string.Format(CultureInfo.CurrentCulture, "Failed moving the directory server: {0} to new site: {1}. Error: {2}", distinguishedName); DebugLogger.LogError("MoveADDirectoryServer", str1); base.WriteError(new ErrorRecord(runtimeException, "0", ErrorCategory.WriteError, this._identityDSObj)); } } return(true); }
private bool MoveADDSOperationMasterRoleProcessCSRoutine() { ADObject aDObject; bool flag = false; string value; int? nullable; this._identityDSObj = this._cmdletParameters["Identity"] as ADDirectoryServer; this._seize = this._cmdletParameters.GetSwitchParameterBooleanValue("Force"); this._operationMasterRolesToTransfer = this._cmdletParameters["OperationMasterRole"] as ADOperationMasterRole[]; base.SetPipelinedSessionInfo(this._identityDSObj.SessionInfo); CmdletSessionInfo cmdletSessionInfo = this.GetCmdletSessionInfo(); if (cmdletSessionInfo.ConnectedADServerType == ADServerType.ADLDS) { ADOperationMasterRole[] aDOperationMasterRoleArray = this._operationMasterRolesToTransfer; for (int i = 0; i < (int)aDOperationMasterRoleArray.Length; i++) { ADOperationMasterRole aDOperationMasterRole = aDOperationMasterRoleArray[i]; ADOperationMasterRole aDOperationMasterRole1 = aDOperationMasterRole; switch (aDOperationMasterRole1) { case ADOperationMasterRole.PDCEmulator: case ADOperationMasterRole.RIDMaster: case ADOperationMasterRole.InfrastructureMaster: { object[] str = new object[1]; str[0] = aDOperationMasterRole.ToString(); throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, StringResources.MoveOperationMasterRoleNotApplicableForADLDS, str)); } } } } ADDirectoryServerFactory <ADDirectoryServer> aDDirectoryServerFactory = new ADDirectoryServerFactory <ADDirectoryServer>(); aDDirectoryServerFactory.SetCmdletSessionInfo(cmdletSessionInfo); ADObject directoryObjectFromIdentity = aDDirectoryServerFactory.GetDirectoryObjectFromIdentity(this._identityDSObj, cmdletSessionInfo.DefaultPartitionPath); string distinguishedName = directoryObjectFromIdentity.DistinguishedName; ADObjectSearcher aDObjectSearcher = SearchUtility.BuildSearcher(cmdletSessionInfo.ADSessionInfo, distinguishedName, ADSearchScope.Base); using (aDObjectSearcher) { aDObjectSearcher.Filter = ADOPathUtil.CreateFilterClause(ADOperator.Like, "objectClass", "*"); aDObjectSearcher.Properties.Add("dNSHostName"); directoryObjectFromIdentity = aDObjectSearcher.FindOne(); if (directoryObjectFromIdentity != null) { if (directoryObjectFromIdentity["dNSHostName"] == null) { value = null; } else { value = (string)directoryObjectFromIdentity["dNSHostName"].Value; } string str1 = value; if (!string.IsNullOrEmpty(str1)) { if (cmdletSessionInfo.ConnectedADServerType == ADServerType.ADLDS) { string str2 = string.Concat("CN=NTDS Settings,", distinguishedName); ADObjectSearcher aDObjectSearcher1 = SearchUtility.BuildSearcher(cmdletSessionInfo.ADSessionInfo, str2, ADSearchScope.Base); using (aDObjectSearcher1) { aDObjectSearcher1.Filter = ADOPathUtil.CreateFilterClause(ADOperator.Like, "objectClass", "*"); aDObjectSearcher1.Properties.Add("msDS-PortLDAP"); aDObject = aDObjectSearcher1.FindOne(); } if (aDObject != null) { if (aDObject["msDS-PortLDAP"] == null) { int?nullable1 = null; nullable = nullable1; } else { nullable = (int?)aDObject["msDS-PortLDAP"].Value; } int?nullable2 = nullable; if (nullable2.HasValue) { str1 = string.Concat(str1, ":", nullable2); } else { object[] objArray = new object[2]; objArray[0] = "msDS-PortLDAP"; objArray[1] = aDObject.DistinguishedName; throw new ADException(string.Format(CultureInfo.CurrentCulture, StringResources.AttributeNotFoundOnObject, objArray)); } } else { throw new ADIdentityNotFoundException(string.Concat(StringResources.ObjectNotFound, " : ", str2)); } } ADSessionInfo aDSessionInfo = cmdletSessionInfo.ADSessionInfo.Copy(); aDSessionInfo.Server = str1; using (ADTopologyManagement aDTopologyManagement = new ADTopologyManagement(aDSessionInfo)) { ADOperationMasterRole[] aDOperationMasterRoleArray1 = this._operationMasterRolesToTransfer; for (int j = 0; j < (int)aDOperationMasterRoleArray1.Length; j++) { ADOperationMasterRole aDOperationMasterRole2 = aDOperationMasterRoleArray1[j]; string str3 = string.Format(CultureInfo.CurrentCulture, StringResources.MoveOperationMasterRoleDescription, new object[0]); object[] objArray1 = new object[2]; objArray1[0] = aDOperationMasterRole2.ToString(); objArray1[1] = str1; string str4 = string.Format(CultureInfo.CurrentCulture, StringResources.MoveOperationMasterRoleWarning, objArray1); string str5 = string.Format(CultureInfo.CurrentCulture, StringResources.MoveOperationMasterRoleCaption, new object[0]); if (base.ShouldProcessOverride(str3, str4, str5)) { aDTopologyManagement.MoveOperationMasterRole(aDOperationMasterRole2, this._seize, out flag); } } } } else { object[] distinguishedName1 = new object[2]; distinguishedName1[0] = "dNSHostName"; distinguishedName1[1] = directoryObjectFromIdentity.DistinguishedName; throw new ADException(string.Format(CultureInfo.CurrentCulture, StringResources.AttributeNotFoundOnObject, distinguishedName1)); } } else { throw new ADIdentityNotFoundException(string.Concat(StringResources.ObjectNotFound, " : ", distinguishedName)); } } return(true); }