Перемістіть комп’ютерні рахунки в нові ОУ оптом


9

У мене є OU з близько 2500 комп'ютерів. Мені потрібно перенести 580 з них до іншого ОУ. Чи є спосіб зробити це за допомогою пакетного файлу? У мене є текстовий файл з іменами комп’ютерів (не 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

Невелика помилка у відповіді Ніксфоя - 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
Welome для ServerFault. Будь ласка , чи не соромтеся зробити запропоновані правки в існуючі посади . Ці пропозиції громада перевірятиме на затвердження.
jscott

1

Якщо припустити, що у текстовому файлі є імена ваших комп’ютерів, а по 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

Перевірте це. Повідомте мене, якщо це не працює.


1
Вам не знадобиться FQDN для dsmove afaik.
MDMarra

Солодке, раніше насправді не потрібно було переміщувати навалом. Але я багато читав про команду. Добре знати! Радий, що я наблизився до тієї ж відповіді, що і ви :)
Nixphoe

1
@Grey Tux Сценарій слід запускати cmdне powershell.
jscott

1
це повинно бути% a замість %% a
Grey 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"

ПРИМІТКА: Ваше ім'я розрізнення повинно бути укладено в "", якщо у вас є пробіли в іменах, наприклад, "Моя шина"

ЗАПУСНУЙТЕ рядок нижче, щоб перевірити, чи все переміщено правильно

FOR /f %a in (file.txt) DO dsquery computer -name %a >> location.txt
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.