ฉันมี OU ที่มีคอมพิวเตอร์ประมาณ 2,500 เครื่อง ฉันต้องการย้าย 580 คนจากพวกเขาไปที่ OU อื่น มีวิธีทำเช่นนี้กับไฟล์แบตช์หรือไม่ ฉันมีไฟล์ข้อความที่มีชื่อคอมพิวเตอร์ (ไม่ใช่ FQDN)
ฉันมี OU ที่มีคอมพิวเตอร์ประมาณ 2,500 เครื่อง ฉันต้องการย้าย 580 คนจากพวกเขาไปที่ OU อื่น มีวิธีทำเช่นนี้กับไฟล์แบตช์หรือไม่ ฉันมีไฟล์ข้อความที่มีชื่อคอมพิวเตอร์ (ไม่ใช่ 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 ของวัตถุที่คุณกำลังเคลื่อนที่อยู่ดังนั้นฉันจึงเพิ่ม dsquery ที่ด้านหน้าของไปป์เพื่อรับ DN จากรายการจากนั้นไปป์ เพื่อ dsmove นี่น่าจะใช้ได้ดีสำหรับรายชื่อ NetBIOS เพียงอย่างเดียว
ข้อผิดพลาดเล็ก ๆ ในคำตอบของ 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
สมมติว่าคุณมีชื่อ comptuers ของคุณในไฟล์ข้อความและ 1 ในแต่ละบรรทัดที่คุณใช้คำสั่งต่อไปนี้เพื่อส่งออก fqdn ของพวกเขา
FOR /f %%a in (file.txt) DO dsquery computer -name %%a >> fqdnfile.txt
จากนั้นเรียกใช้คำสั่งต่อไปนี้เพื่อย้าย โปรดใช้คำสั่ง echo เป็น lsm of dsmove เพื่อทดสอบสิ่งนี้ก่อน
FOR /f %%b in (fqdnfile.txt) DO dsmove %%b -newparent OU=newOU,DC=domain,DC=local
ทดสอบมันออกมา แจ้งให้เราทราบหากไม่ได้ผล
cmd powershell
ทีละขั้นตอนสำหรับผู้ดูแลระบบใหม่: รับ file.txt ที่ชื่อคอมพิวเตอร์มีอยู่หนึ่งรายการต่อบรรทัด
PC-001
PC-002
PC-003
เปิด CMD และตรวจสอบให้แน่ใจว่าบรรทัดของคุณระบุว่าอยู่ในตำแหน่งเดียวกับ file.txt ของคุณจากนั้นวางบรรทัดด้านล่าง
FOR /f %a in (file.txt) DO dsquery computer -name %a >> fqdnfile.txt
สิ่งนี้จะสร้างไฟล์ fqdnfile.txt ในตำแหน่งเดียวกับ file.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