给AD中的所有用户加一个值
Add a value to all users in AD
我正在尝试在我工作的公司设置动态通讯组列表。
我想将 AD 中的公司值用于公司中每个人都需要参与的通讯组列表。
我们的大多数用户都将公司名称作为值,但在检查一些用户后,似乎并未为所有用户设置此值。
有没有办法为所有 AD 用户设置此值(通过使用 powershell f.e),或者获取公司值未设置为公司名称的用户列表?
您可以使用远程服务器管理工具 (RSAT) 中包含的 PowerShell ActiveDirectory 模块。有关如何安装它的详细信息 here.
那你就可以使用Get-ADUser
and pipe the results into 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"
我正在尝试在我工作的公司设置动态通讯组列表。 我想将 AD 中的公司值用于公司中每个人都需要参与的通讯组列表。
我们的大多数用户都将公司名称作为值,但在检查一些用户后,似乎并未为所有用户设置此值。
有没有办法为所有 AD 用户设置此值(通过使用 powershell f.e),或者获取公司值未设置为公司名称的用户列表?
您可以使用远程服务器管理工具 (RSAT) 中包含的 PowerShell ActiveDirectory 模块。有关如何安装它的详细信息 here.
那你就可以使用Get-ADUser
and pipe the results into 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"