У мене є OU з близько 2500 комп'ютерів. Мені потрібно перенести 580 з них до іншого ОУ. Чи є спосіб зробити це за допомогою пакетного файлу? У мене є текстовий файл з іменами комп’ютерів (не FQDN).
У мене є OU з близько 2500 комп'ютерів. Мені потрібно перенести 580 з них до іншого ОУ. Чи є спосіб зробити це за допомогою пакетного файлу? У мене є текстовий файл з іменами комп’ютерів (не 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.
Невелика помилка у відповіді Ніксфоя - 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
Потім запустіть наступну команду, щоб перемістити їх. Будь-ласка, скористайтеся командою echo на увазі 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"
ПРИМІТКА: Ваше ім'я розрізнення повинно бути укладено в "", якщо у вас є пробіли в іменах, наприклад, "Моя шина"
ЗАПУСНУЙТЕ рядок нижче, щоб перевірити, чи все переміщено правильно
FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt