【问题标题】:Using a global catalog in PowerShell在 PowerShell 中使用全局目录
【发布时间】:2015-11-11 15:57:33
【问题描述】:

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

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

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

如果我使用域控制器 (DC) 作为服务器名称,则修改完成。我想避免编写一个开关来设置服务器名称。还有什么我可以在这里做的吗?

Get-ADUser $user -Server "contoso.local:3268" | %{Set-ADUser -Identity $_.distinguishedname -SamAccountName $_.SamAccountName -Server "contoso.local:3268"}

【问题讨论】:

  • 这里的"forrest"是什么意思?
  • @PeterMortensen 在 Active Directory 术语中,“林”是相互信任域的分层集合

标签: powershell active-directory


【解决方案1】:

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

如果您想确保找到一个作为全局编录的域控制器,您可以使用以下方法:

Get-ADDomainController -Discover -Service GlobalCatalog

根据您的评论,maybe what you need is $PSDefaultParameterValues

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

Get-ADUser $user |
%{Set-ADUser -Identity $_.distinguishedname -SamAccountName $_.SamAccountName }

【讨论】:

  • 这对 Set-Aduser 部分很有意义。我想要做的不是创建一个开关来设置服务器参数。如果我在使用 set-aduser 时没有指定 -server,那么它将假定我正在尝试修改我域中的用户,这有时是正确的,但其他域中会有用户。
  • 可能说得太早了,您所建议的几乎是将 GC 设置为默认服务器,但我仍然遇到同样的错误。
  • @JoeRod 我有点困惑,哪些对Set-ADUser 的调用有效,哪些无效。
  • 无效,使用 $PSDefaultParamerterValues 将我的默认服务器设置为只读的 LDAP GC,对吗?因此,如果我尝试执行 set-aduser 任何操作都会失败。
  • @JoeRod 你在你的问题If I use the DC as the server name the modification completes as it should 中说,所以看起来 something 正在工作。您可以使用Get-ADDomainController -DomainName 发现特定域中的 DC。我的意思是,如果您在多域森林中并且需要在不同的域中工作,那么您需要解决歧义。您还可以使用 AD PSDrive。 AD cmdlet 应使用当前路径使用的任何域。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
  • 2023-03-11
  • 2018-03-20
  • 2014-06-13
相关资源
最近更新 更多