批量将计算机帐户移动到新 OU

批量将计算机帐户移动到新 OU

我有一个包含大约 2500 台计算机的 OU。我需要将其中 580 台移动到另一个 OU。有没有办法使用批处理文件执行此操作?我有一个包含计算机名称(不是 FQDN)的文本文件。

答案1

FOR /f %%i in (C:\path\to\textfile.txt) do (

  dsquery computer -name %%i | dsmove -newparent OU=newOU,DC=domain,DC=com

)

这应该可以帮你解决这个问题。

编辑:我已经有一段时间没用过 dsmove 了 :) 它需要你正在移动的对象的 DN,所以我在管道前面添加了 dsquery 以从列表中获取 DN,然后将其通过管道传输到 dsmove。现在对于只有 NetBIOS 名称的列表,这应该可以正常工作了。

答案2

Nixphoe 的回答中有一个小错误—— tovsdo和一个缺失do

FOR /f %%a in (file.txt) do dsquery computer -name %%a >> fqdnfile.txt

FOR /f %%b in (fqdnfile.txt) do dsmove %%b -newparent OU=newOU,DC=domain,DC=local

答案3

假设您的计算机名称保存在一个文本文件中,每行一个,您可以运行以下命令来导出它们的 fqdn

FOR /f %%a in (file.txt) DO dsquery computer -name %%a >> fqdnfile.txt

然后运行以下命令来移动它们。请先使用 dsmove 中的 echo 命令进行测试

FOR /f %%b in (fqdnfile.txt) DO dsmove %%b -newparent OU=newOU,DC=domain,DC=local

测试一下。如果不行的话请告诉我。

答案4

对于新管理员来说,一步一步来:获取 file.txt,其中每行列出一个计算机名称。

PC-001
PC-002
PC-003

打开 CMD,确保您的行指示与您的 file.txt 位于同一位置,然后粘贴下面的行

FOR /f %a in (file.txt) DO dsquery computer -name %a >> fqdnfile.txt

这将在与 file.txt 相同的位置创建一个文件 fqdnfile.txt

这将使用可区分名称(每行一个)解析 fqdnfile.txt

注意:对于 BAT 文件,应使用双 %%,对于 CMD,应使用单 %

然后运行下面的行。

FOR /f %b in (fqdnfile.txt) DO dsmove %b -newparent "OU=COMPUTERS,OU=My Bus,DC=Domain,DC=com"

注意:如果名称中有空格,则应将区别名称括在“”中,例如 My Bus

运行下面的代码来检查是否所有东西都已正确移动

FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt

相关内容