批量将计算机帐户移至新的OU


9

我有大约2500台计算机的OU。我需要将其中580个移到另一个OU。有没有一种方法可以使用批处理文件?我有一个带有计算机名的文本文件(不是FQDN)。

Answers:


9
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名称就可以正常工作。


在1个命令中为此执行+1
Nixphoe 2011年

1

在Nixphoe的回答一个小错误- toVS do和失踪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

1
欢迎使用ServerFault。请随时对现有帖子进行建议的修改。这些建议将由社区审核以供批准。
jscott

1

假设您在文本文件中有计算机的名称,并且每行有1个计算机,则运行以下命令以导出计算机的fqdn

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

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

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

测试一下。让我知道它是否无效。


1
dsmove afaik不需要FQDN。
MDMarra 2011年

太好了,实际上从未真正需要大批量移动东西。但是我已经阅读了很多有关该命令的信息。很高兴知道!很高兴收到您的回答:)
Nixphoe 2011年

1
@Grey Tux您应该在cmdnot中运行脚本powershell
jscott 2011年

1
它必须是%a而非%% a
Gray Tux

1
是的,如果您从批处理文件运行它,则为2%。如果您从命令行运行它,则为一个百分比
Nixphoe 2011年

0

对于新管理员来说,分步操作是很简单的:获取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"

注意:如果名称中有空格,例如“我的公交车”,则您的专有名称应包含在“”中

运行下面的行,检查所有内容是否正确移动

FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.