Переместить учетные записи компьютеров в новое подразделение навалом

9

У меня есть подразделение с около 2500 компьютеров. Мне нужно переместить 580 из них в другое подразделение. Есть ли способ сделать это с помощью командного файла? У меня есть текстовый файл с computernames (не FQDN).

Серый смокинг
источник

Ответы:

9
FOR /f %%i in (C:\path\to\textfile.txt) do (

  dsquery computer -name %%i | dsmove -newparent OU=newOU,DC=domain,DC=com

)

Это должно позаботиться об этом для вас.

edit: Прошло довольно много времени с тех пор, как мне пришлось использовать dsmove :) Ему нужно DN объекта, который вы перемещаете, поэтому я добавил dsquery перед конвейером, чтобы получить DN из списка, а затем направить его в дсмове. Теперь это должно работать нормально для списка только имен NetBIOS.

MDMarra
источник
+1 за выполнение в 1 команде
Nixphoe
1

Небольшая ошибка в ответе 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
sadsad
источник
1
Добро пожаловать в ServerFault. Пожалуйста, не стесняйтесь вносить предлагаемые изменения в существующие сообщения . Эти предложения будут рассмотрены сообществом для одобрения.
Jscott
1

Предполагая, что у вас есть имена ваших компьютеров в текстовом файле и 1 в каждой строке, вы можете выполнить следующую команду, чтобы экспортировать из них fqdn

FOR /f %%a in (file.txt) DO dsquery computer -name %%a >> fqdnfile.txt

Затем выполните следующую команду, чтобы переместить их. Пожалуйста, используйте команду echo в lue of dsmove, чтобы проверить это первым

FOR /f %%b in (fqdnfile.txt) DO dsmove %%b -newparent OU=newOU,DC=domain,DC=local

Проверьте это. Дайте мне знать, если это не сработает.

Nixphoe
источник
1
Вам не нужно полное доменное имя для dsmove afaik.
MDMarra
Сладкий, на самом деле никогда не нужно было двигать вещи навалом. Но я много читал о команде. Хорошо знать! Рад, что я получил почти тот же ответ, что и вы :)
Nixphoe
1
@Grey Tux Вы должны запустить скрипт cmdне powershell.
Jscott
1
это должно быть% a вместо %% a
Серый смокинг
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
Matt
источник