У меня есть подразделение с примерно 2500 компьютерами. Мне нужно переместить 580 из них в другое OU. Есть ли способ сделать это с помощью командного файла? У меня есть текстовый файл с именами компьютеров (а не с полным доменным именем).
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 из списка, а затем передать его в 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 в lue dsmove, чтобы сначала проверить это
FOR /f %%b in (fqdnfile.txt) DO dsmove %%b -newparent OU=newOU,DC=domain,DC=local
Проверьте это. Сообщите мне, если это не сработает.
Небольшой шаг за шагом для новых администраторов: получите файл 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