Active-Directory
如何為所有 PowerShell AD cmdlet 設置預設域控制器?
模組中的所有 PowerShell cmdlet 都支持使用該參數
ActiveDirectory
針對特定域控制器執行;-server
但是有什麼方法可以設置預設 DC 以用於所有與 AD 相關的操作,或者如果我真的關心我使用的是哪個 DC(在涉及複製延遲時很常見),我是否需要在每個命令上指定它)?
如果您使用的是 PowerShell 版本 3,則可以使用新的自動變數 $PSDefaultParameterValues 為 AD 模組 cmdlet 上的伺服器參數設置預設值。你可以跑
Get-Help about_Parameters_Default_Values
有關此變數的更多詳細資訊。
在您的特定情況下,您可以像這樣設置變數:
$PSDefaultParameterValues = @{"*-AD*:Server"='YOUR-CHOSEN-DC'}
另一個適用於版本 2 或 3 的選項是使用 AD 模組的提供程序來創建新的 PSDrive。
預設情況下,當您導入 AD 模組時,它會創建一個連接到本地域的“AD:”PSDrive。您可以使用同一提供程序創建新的 PSDrive,指定您要連接的特定域控制器。然後,當您從該 PSDrive 的上下文中執行 AD cmdlet 時,它們將使用該連接。您可以像這樣創建一個新的 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 中指定的域控制器。