ย้ายบัญชีคอมพิวเตอร์ไปยัง OU ใหม่เป็นกลุ่ม


9

ฉันมี OU ที่มีคอมพิวเตอร์ประมาณ 2,500 เครื่อง ฉันต้องการย้าย 580 คนจากพวกเขาไปที่ OU อื่น มีวิธีทำเช่นนี้กับไฟล์แบตช์หรือไม่ ฉันมีไฟล์ข้อความที่มีชื่อคอมพิวเตอร์ (ไม่ใช่ FQDN)

คำตอบ:


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

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

สมมติว่าคุณมีชื่อ 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

ทดสอบมันออกมา แจ้งให้เราทราบหากไม่ได้ผล


1
คุณไม่จำเป็นต้องใช้ FQDN สำหรับ dsmove afaik
MDMarra

น่ารักไม่จำเป็นต้องย้ายสิ่งต่าง ๆ เป็นจำนวนมากมาก่อน แต่ฉันได้อ่านเกี่ยวกับคำสั่งมากแล้ว ดีแล้วที่รู้! ดีใจที่ได้คำตอบเดียวกับคุณ :) :)
Nixphoe

1
@Grey Tux คุณควรเรียกใช้สคริปต์ในไม่ได้cmd powershell
jscott

1
จะต้องเป็น% a แทน %% a
Tux Tux เทา

1
ใช่สอง% คือถ้าคุณกำลังเรียกใช้จากแบตช์ไฟล์ หนึ่ง% คือถ้าคุณเรียกใช้จากบรรทัดคำสั่ง
Nixphoe

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

สิ่งนี้จะสร้างไฟล์ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.