有谁知道如何以编程方式强制复制单个Active Directory对象?强制以编程方式复制单个Active Directory对象
为了更清楚我想复制这个
CN=Sample User,OU=Sample OU,DC=company,DC=com
和整个分区这样
DC=company,DC=com
我试图DomainController.SyncReplicaFromAllServers Method
,但我想它的使用分区。
有谁知道如何以编程方式强制复制单个Active Directory对象?强制以编程方式复制单个Active Directory对象
为了更清楚我想复制这个
CN=Sample User,OU=Sample OU,DC=company,DC=com
和整个分区这样
DC=company,DC=com
我试图DomainController.SyncReplicaFromAllServers Method
,但我想它的使用分区。
世界上没有办法做到这一点对一个对象的水平,最好的解决方法是,当你保存你的对象尝试将其保存在所有域contollers(如果需要)
即你有域控制器1,域控制器2 ,域控制器3完全保存,而不是等待它复制。
直接的答案是否定的,你不能说ldap服务器只复制一个对象。复制总是适用于分区/命名上下文。
Active Directory有一个全局编录,可以使用。有一堆属性标记为PAS属性(部分属性集)。从每个域控制器,每个对象的PAS属性将被KCC立即同步到所有GC服务器。您可以在microsft document中阅读更多关于此的信息。您可以在GC端口(3268)上执行ldap搜索以快速查找对象属性。
但是,如果你可以告诉你需要更多具体的细节,这将有助于。
您可以通过使用“REPADMIN/replsingleobj”复制单个对象(http://technet.microsoft.com/en-us/library/cc742123.aspx)
谢谢,是否有.net api可用于此命令? – sagar 2015-04-23 09:54:27
我写这个代码我可以在两个DC 但其仅具有管理员在未经许可从IIS池 在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
对于此场景来说,这将是一个很好的解决方法 – Raymund 2011-04-26 20:44:25
oops! !这会在ObjectGUID中引入冲突,并且这些条目永远不会同步。对于每个对象,都会有一个objectGUID在创建期间生成。即使是DN改变GUID也不会改变。这意味着你所有的DC对于同一个条目都会有不同的GUID,当他们尝试同步GUID时会发生冲突。大多数情况下,ldap服务器会从同步中删除此特定条目。所以下一次当您更新“ldapmodify -h domain.com ...”时,只要该服务器将被更新。当你做ldapsearch时,你会得到意想不到的结果 – kalyan 2011-04-27 10:59:53
@kalyan - 你不觉得AD将足够聪明,能够根据上次更新的时间戳来解析复制吗? – Raymund 2011-04-27 20:34:47