Я хочу получить список всех компьютеров в домене. Поиск в Google я нашел
dsquery * domainroot -filter "(objectClass=Computer)" -attr name -l -d my.domain > c:\computers.txt
Есть ли способ получить тот же результат, за исключением контроллеров домена?
Если вы хотите использовать PowerShell для этого, установите Команды Quest PowerShell для Active Directory на компьютере с PowerShell версии 2 и введите следующую команду.
Get-QADComputer | ?{$_.ComputerRole -ne 'DomainController'} | Select Name | Export-Csv Without-DCs.csv
Это даст вам CSV-файл в текущем каталоге со всеми компьютерами, кроме контроллеров домена.
Обычно вы можете опустить -d my.domain
часть при выполнении запроса на любом компьютере домена. Фильтр LDAP (userAccountControl:1.2.840.113556.1.4.803:=8192)
возвращает все контроллеры домена, отрицание фильтра исключает контроллеры домена.
dsquery * domainroot -filter "&(objectCategory=computer)(!userAccountControl:1.2.840.113556.1.4.803:=8192)" -attr name -l > c:\computers.without.dcs.txt
Подробное описание UserAccountControl атрибут доступно на MSDN так же как Сайт поддержки Microsoft.