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

我有一个约2500台电脑的OU。 我需要把580个移到另一个OU。 有没有办法做到这一点与batch file? 我有一个文本文件与计算机(而不是FQDN)。

FOR /f %%i in (C:\path\to\textfile.txt) do ( dsquery computer -name %%i | dsmove -newparent OU=newOU,DC=domain,DC=com ) 

这应该照顾好你。

编辑:这是一段时间,因为我不得不使用dsmove :)它需要您移动的对象的DN,所以我添加了一个pipe道前的dsquery从列表中获取DN,然后pipe它去亵渎。 这应该工作正常的NetBIOS名称的列表。

Nixphoe的回答中的一个小错误 – to vs和失踪的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 

假设您的文本文件中有comptuers的名称,并且每行有1个,则运行以下命令以导出它们的fqdn

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

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

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

testing一下。 让我知道如果它不起作用。

新的pipe理员一步一步:Get 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的相同位置创build一个文件fqdnfile.txt

这将parsingfqdnfile.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