回答:
FOR /f %%i in (C:\path\to\textfile.txt) do (
dsquery computer -name %%i | dsmove -newparent OU=newOU,DC=domain,DC=com
)
それはあなたのためにそれを世話します。
編集:dsmoveを使用する必要があったので久しぶりです:)移動するオブジェクトのDNが必要なので、リストからDNを取得してパイプするために、パイプの前にdsqueryを追加しましたdsmoveに。これで、NetBIOS名のみのリストで問題なく動作するはずです。
小さなNixphoeの答えでエラー- to
対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つあるとすると、次のコマンドを実行してそれらの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
テストしてみてください。うまくいかない場合はお知らせください。
cmd
なくスクリプトを実行する必要がありますpowershell
。
新しい管理者のための少しずつのステップ:コンピューター名が1行に1つずつリストされている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が作成されます
これは、識別名(1行に1つ)を含む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