Все командлеты PowerShell в ActiveDirectory
поддержка модуля, запускаемая на конкретном контроллере домена с использованием -server
параметр; но есть ли способ установить DC по умолчанию для использования для всех операций, связанных с AD, или мне нужно указывать его для каждой отдельной команды, если мне действительно важно, какой DC я использую (что часто бывает, когда возникает задержка репликации )?
Если вы используете PowerShell версии 3, вы можете использовать новую автоматическую переменную $ PSDefaultParameterValues, чтобы установить значение по умолчанию для параметра Server в командлетах модуля AD. Вы можете запустить
Get-Help about_Parameters_Default_Values
для получения дополнительных сведений об этой переменной.
В вашем конкретном случае вы можете установить переменную следующим образом:
$PSDefaultParameterValues = @{"*-AD*:Server"='YOUR-CHOSEN-DC'}
Другой вариант, который будет работать с версией 2 или 3, - использовать поставщика модуля AD для создания нового PSDrive.
По умолчанию, когда вы импортируете модуль AD, он создает диск PSDrive «AD:», который подключается к локальному домену. Вы можете создавать новые PSD-диски, используя того же поставщика, указав конкретный контроллер домена, к которому вы хотите подключиться. Затем, когда вы запускаете командлеты AD из контекста этого PSDrive, они будут использовать это соединение. Вы можете создать новый PSDrive следующим образом:
New-PSDrive -Name <name of the drive> -PSProvider ActiveDirectory -Root "<DN of the partition/NC>" –Server <server or domain name (NetBIOS/FQDN)[:port number]> -Credential <domain name>\<username>
Тогда просто cd <name of drive>:
и когда вы запускаете свои командлеты, они будут использовать контроллер домена, указанный в командлете New-PSDrive.