ActiveDirectory模块中的所有PowerShell cmdlet都支持使用-server参数针对特定的域控制器运行; 但有什么办法可以设置一个默认的DC用于所有AD相关的操作,还是我需要在每一个命令中指定它,如果我真的关心我正在使用哪个DC(因为涉及复制延迟)?
如果您使用的是PowerShell版本3,则可以使用新的自动variables$ PSDefaultParameterValues为AD Module cmdlet上的Server参数设置默认值。 你可以跑
Get-Help about_Parameters_Default_Values
关于这个variables的更多细节。
在你的具体情况下,你可以像这样设置variables:
$PSDefaultParameterValues = @{"*-AD*:Server"='YOUR-CHOSEN-DC'}
与版本2或3一起工作的另一个select是使用AD模块的提供者来创build一个新的PSDrive。
默认情况下,当您导入AD模块时,它会创build一个“AD:”PSDrive,它连接到本地域。 您可以使用此相同的提供程序创build新的PSDrives,指定要连接的特定域控制器。 然后,当您在该PSDrive的上下文中运行AD cmdlet时,他们将使用该连接。 你可以这样创build一个新的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>:当您运行cmdlet时,它们将使用您在New-PSDrive cmdlet中指定的域控制器。