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