脚本或命令从CSV导入带有SID的AD用户

时间:2014-12-12 07:35:47

标签: powershell csv

我需要将少数用户的SID(和SID历史记录)从我们的培训域导入到生产域(我们有两个单独的网络设置)。我们的要求是用户在迁移到生产环境后需要登录现有pc的本地配置文件。

我们的设置: 训练多米安:melbourne.com Domin控制器:训练

生产域名:melbourne.com Domin控制器:生产

注意: 我尝试过ADMT,但不允许将源和目标作为相同的域名。 非常感谢任何人在此场景中的专业知识来导入AD用户和计算机。

2 个答案:

答案 0 :(得分:1)

此问题更适合超级用户或服务器故障问题,因为它不是特定的编程/脚本问题。

每个域的SID都是唯一的,因此AFAIK无法在两个不同的域之间转移帐户。

  

S-1-5-的 21-3623811015-3361044348-30300820 -1013

     

粗体文字是“域名或本地计算机标识符”。

     

Wikipedia - Security Identifier

了解详情

您可以做的是在用户的生产域中创建一个新帐户,并在prod-account的sidhistory属性中添加测试域SID。

答案 1 :(得分:1)

ADMT是唯一受支持的修改sIDHistory属性的方法。这就是为什么我创建了一个PowerShell cmdlet,可以直接修改Active Directory数据库并将任何值添加到sIDHistory属性。

以下是一个例子:

Import-Module DSInternals
Stop-Service ntds
Add-ADDBSidHistory -SamAccountName John -SidHistory S-1-5-21-3623811102-3361044346-30300840-500 -DBPath C:\Windows\NTDS\ntds.dit
Start-Service ntds

您当然可以使用 SamAccountName SidHistory 列创建CSV文件并以这种方式导入:

Import-Csv user.csv | Add-ADDBSidHistory -DBPath C:\Windows\NTDS\ntds.dit

Add-ADDBSidHistory cmdlet是我DSInternals PowerShell Module的一部分。使用它需要您自担风险。