有没有人知道如何以编程方式强制复制单个Active Directory对象?
为了更清楚,我想复制这个
CN=Sample User,OU=Sample OU,DC=company,DC=com
和整个分区一样
DC=company,DC=com
我试过DomainController.SyncReplicaFromAllServers Method
,但我猜它用于分区。
答案 0 :(得分:2)
直接答案是否定的,你不能说ldap服务器只能复制一个对象。复制始终适用于分区/命名上下文。
Active Directory具有可以使用的全局编录。有一堆属性标记为PAS属性(部分属性集)。从每个域控制器,每个对象的PAS属性将立即同步到KCC的所有GC服务器。您可以在microsft document中阅读有关此内容的更多信息。您可以在GC端口(3268)上执行ldap搜索以快速查找对象属性。
但是,如果你能告诉你需要更具体的细节,那将会有所帮助。
答案 1 :(得分:1)
您可以使用“repadmin / replsingleobj”(http://technet.microsoft.com/en-us/library/cc742123.aspx)
复制单个对象答案 2 :(得分:0)
Theres无法在对象级别执行此操作,最佳解决方法是保存对象时尝试将其保存在所有域控制器上(如果需要)
即。你有域控制器1,域控制器2,域控制器3确实保存,而不是等待它复制。
答案 3 :(得分:0)
我编写此代码,因为我可以在两个DC之间进行Rep 但它的工作仅限于IIS池中的Admin Permisson 在VS2015 rus作为管理员 在IIS中,您必须更改应用程序池标识:
public static SecureString sSPasswordFianl;
public static void Securepass()
{
string sPassword = "yourpassword";
SecureString sSPassword = new SecureString();
foreach (char X in sPassword)
sSPassword.AppendChar(X);
sSPasswordFianl = sSPassword;
}
public static string RepTXADp01()
{
try
{
Process Replactions = new Process();
ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.UseShellExecute = false;
procInfo.FileName = HttpContext.Current.Server.MapPath("~/Rep.bat");
procInfo.WorkingDirectory = @""; //The working DIR.
Securepass();
procInfo.Verb = "runasuser";
procInfo.Domain = "yourDomian.de";
procInfo.UserName = "Username";
procInfo.Password = sSPasswordFianl;
procInfo.CreateNoWindow = true;
Process.Start(procInfo); //Start that process.
string output;
return (output="OK");
}
catch (Exception ex)
{
return (ex.Message.ToString());
}
}
Reb.bat:
repadmin /replicate server1 Server2 DC=yourdomian ,DC=com