【发布时间】:2021-12-07 09:33:48
【问题描述】:
我正在尝试在我工作的公司中设置动态分发列表。 我想将 AD 中的公司价值用于公司中每个人都需要参与的分发列表。
我们的大多数用户都将公司名称作为值,但在检查了一些用户后,似乎并未为所有用户设置此值。
有没有办法为所有 AD 用户设置此值(通过使用 powershell f.e),或者获取公司值未设置为公司名称的用户列表?
【问题讨论】:
标签: active-directory
我正在尝试在我工作的公司中设置动态分发列表。 我想将 AD 中的公司价值用于公司中每个人都需要参与的分发列表。
我们的大多数用户都将公司名称作为值,但在检查了一些用户后,似乎并未为所有用户设置此值。
有没有办法为所有 AD 用户设置此值(通过使用 powershell f.e),或者获取公司值未设置为公司名称的用户列表?
【问题讨论】:
标签: active-directory
您可以使用远程服务器管理工具 (RSAT) 中包含的 PowerShell ActiveDirectory 模块。详细安装方法here。
然后您可以使用Get-ADUser 并将结果通过管道传输到Set-ADUser。像这样的:
$badusers = Get-ADUser -Filter "company -ne 'Your Company Name'"
$badusers | Set-ADUser -Company "Your Company Name"
您可以在一行中执行此操作,但我将其分成两部分,以便您可以检查 $badusers 集合以实际查看您更改的用户(只需在 PowerShell 中键入 $badusers提示并按回车键)。
在尝试更改每个用户之前,最好将其限制为 5 或 10 个用户,以确保它按照您想要的方式工作。您可以通过将-ResultSetSize 5 添加到Get-ADUsers 行来实现。
这还假设您希望将所有用户对象更改为拥有您的公司名称,甚至是管理帐户。请记住,如果遇到您无权修改的用户,这将停止处理用户。如果要限制为单个OU,可以使用Get-ADUsers的-SearchBase参数,像这样:
$badusers = Get-ADUser -Filter "company -ne 'Your Company Name'" -SearchBase "OU=Users,DC=example,DC=com"
【讨论】: