在PowerShell中使用全局编录

Joe*_*Rod 2 powershell active-directory

我的目录林中有多个域,并且我试图编写一个可以与目录林中的任何用户一起使用的脚本,因此我在脚本中使用了全局编录。

这可以检索数据,但是当我尝试修改数据时,我得到了

Set-ADUser:服务器不愿意处理该请求

如果我使用域控制器(DC)作为服务器名称,则修改将按预期完成。我想避免编写用于设置服务器名称的开关。我还能在这里做什么?

Get-ADUser $user -Server "contoso.local:3268" | %{Set-ADUser -Identity $_.distinguishedname -SamAccountName $_.SamAccountName -Server "contoso.local:3268"}
Run Code Online (Sandbox Code Playgroud)

bri*_*ist 5

我不清楚您要在这里做什么。全局编录端口是只读的(对于LDAP)。

如果要确保找到的域控制器是全局编录,则可以使用以下命令:

Get-ADDomainController -Discover -Service GlobalCatalog
Run Code Online (Sandbox Code Playgroud)

根据您的评论,也许您需要的是$PSDefaultParameterValues

$PSDefaultParameterValues = @{
    "*-AD*:Server" = "contoso.local:3268"
}

Get-ADUser $user |
%{Set-ADUser -Identity $_.distinguishedname -SamAccountName $_.SamAccountName }
Run Code Online (Sandbox Code Playgroud)