// <summary> // the function is used to create a DrsUpdateRef request // </summary> public DRS_MSG_UPDREFS CreateRequestForDrsUpdateRef( EnvironmentConfig.Machine machine, DsServer dest, DRS_OPTIONS options, NamingContext nc = NamingContext.ConfigNC) { string nc_name = null; Guid nc_guid = Guid.Empty; string nc_sid = null; DSNAME nc_obj; switch (nc) { case NamingContext.ConfigNC: nc_obj = dest.Domain.ConfigNC; break; case NamingContext.SchemaNC: nc_obj = dest.Domain.SchemaNC; break; case NamingContext.AppNC: if (EnvironmentConfig.TestDS) { nc_obj = ((AddsDomain)dest.Domain).OtherNCs[0]; } else { nc_obj = ((AdldsDomain)dest.Domain).AppNCs[0]; } break; case NamingContext.DomainNC: if (!EnvironmentConfig.TestDS) { nc_obj = new DSNAME(); } nc_obj = ((AddsDomain)dest.Domain).DomainNC; break; default: nc_obj = new DSNAME(); break; } nc_name = LdapUtility.ConvertUshortArrayToString(nc_obj.StringName); nc_guid = nc_obj.Guid; nc_sid = convertSidToString(nc_obj.Sid); DRS_MSG_UPDREFS?req = DRSClient.CreateUpdateRefsRequest( nc_name, nc_guid, nc_sid, dest.DsaNetworkAddress, dest.NtdsDsaObjectGuid, options); return((DRS_MSG_UPDREFS)req); }
public DRS_MSG_REPMOD createDRS_MSG_REPMOD_Request( EnvironmentConfig.Machine machine, DsServer src, DRS_OPTIONS replicaFlags, DRS_MSG_REPMOD_FIELDS modifyFields, DRS_OPTIONS options ) { #region generate the parameters string ncReplicaDistinguishedName = LdapUtility.ConvertUshortArrayToString(src.Domain.ConfigNC.StringName); Guid ncReplicaObjectGuid = src.Domain.ConfigNC.Guid; NT4SID ncReplicaObjectSid = src.Domain.ConfigNC.Sid; Guid sourceDsaGuid = src.NtdsDsaObjectGuid; string sourceDsaName = src.DsaNetworkAddress; #endregion REPLTIMES s = new REPLTIMES(); s.rgTimes = new byte[84]; for (int i = 0; i < s.rgTimes.Length; i++) { s.rgTimes[i] = 1; } string sid = convertSidToString(ncReplicaObjectSid); DRS_MSG_REPMOD?req = DRSClient.CreateReplicaModifyRequest( ncReplicaDistinguishedName, ncReplicaObjectGuid, sid, sourceDsaGuid, sourceDsaName, s, replicaFlags, modifyFields, options); return((DRS_MSG_REPMOD)req); }
public DRS_EXTENSIONS CreateCorrectDrsExtensionsForClient(bool isDc) { if (!isDc) { return(DRSClient.CreateDrsExtensions(false, TestTools.StackSdk.ActiveDirectory.Drsr.DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE, Guid.Empty, 0, 0)); } else { DsServer sut = (DsServer)EnvironmentConfig.MachineStore[EnvironmentConfig.Machine.WritableDC1]; uint epo = 0; object got = LdapUtility.GetAttributeValue(sut, sut.NtdsDsaObjectName, "msDs-ReplicationEpoch"); if (got != null) { epo = uint.Parse(got.ToString()); } return(DRSClient.CreateDrsExtensions(true, DRS_EXTENSIONS_IN_FLAGS.DRS_EXT_BASE, ((DsServer)EnvironmentConfig.MachineStore[EnvironmentConfig.Machine.WritableDC1]).Site.Guid, 0, epo)); } }