【问题标题】:Set UPN of AD users from result of Get-AdUser根据 Get-AdUser 的结果设置 AD 用户的 UPN
【发布时间】:2018-08-03 19:45:14
【问题描述】:

我在 AD 中有一些用户的 UPN 地址设置为 User@this.org。我想更改这些用户,使他们的 UPN 看起来像 User@that.com

我已经写了一条PS线来找我这样的用户:

Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(userPrincipalName=*@this.org))" -SearchBase "OU=this,DC=that"  | Select SamAccountName

但是我如何更新这些用户。我知道Set-AdUser 命令,但我不知道如何将Get-Aduser 的结果输入其中。

【问题讨论】:

  • 只需管道到Set-ADUser 而不是Select
  • 抱歉 Mathias,我是 PS 新手 - 你的意思是我删除了 Select and Write Set-Aduser?那不会只改变一个用户吗?

标签: powershell active-directory


【解决方案1】:

只需通过管道将其发送到Set-ADUser:

Get-ADUser -LDAPFilter "(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(userPrincipalName=*@this.org))" -SearchBase "OU=this,DC=that" | % {Set-ADUser $_ -UserPrincipalName "that"} 

请注意,在测试期间使用 -Whatif,然后再让整个 AD 崩溃。

说明:

% - foreach 的别名

$_ - 等于foreach 的每个对象(在Get-ADuser 中找到的每个用户)

-UserPrincipalName "that" - 将给定用户的 UPN 设置为 that

【讨论】:

  • 也许不使用 % 别名,而是写 foreach。这可以让新手更容易阅读和理解代码:)
  • @HenrikStanleyMortensen 是的,你是对的。我添加了一个小解释。
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2021-06-12
  • 1970-01-01
相关资源
最近更新 更多