当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性

作者:精品下载站 日期:2024-12-14 23:01:26 浏览:13 分类:玩电脑

Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性


Set-ADUser cmdlet 允许使用 PowerShell 修改 Active Directory 中的用户属性(属性)。传统上,图形 MMC 管理单元

dsa.msc

(Active Directory 用户和计算机,ADUC)用于编辑 AD 用户的属性。 ADUC 管理单元可用于更改“属性编辑器”选项卡中的用户属性或高级属性。但是,您无法通过 ADUC 控制台批量修改用户属性(部分可以使用 AD 保存的查询来完成此操作)。在本文中,我们将了解一些使用 Set-ADUser cmdlet 更改 AD 中的用户属性的示例。

Set-ADUser

cmdlet 是 Windows PowerShell 的 Active Directory 模块的一部分,并且该模块必须安装在您的计算机上。在 Windows Server 上,RSAT-AD-PowerShell 模块是从 Windows 功能安装的,在 Windows 10 上,您必须从 RSAT 安装它:

Add-WindowsCapability -online -Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

使用 PowerShell 修改 Active Directory 中的用户属性

Get-ADUser cmdlet 具有大约 50 个与 AD 属性相关的选项(城市、公司、部门、描述、电子邮件地址、手机、组织、UserPrincipalName 等)。您可以使用以下命令显示可用属性的列表:

Get-Help Set-ADUser -Parameter *|ft

[玩转系统] Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性

您想要更改 AD 属性的用户的名称在强制 Identity 选项中指定(您可以将其指定为 sAMAccountName、SID、可分辨名称或 objectGUID)。

例如,让我们使用 Get-ADUser cmdlet 获取用户的 Title 属性的值:

Get-ADUser -Identity M.Becker -Properties title|select-object name,title

然后更改其在AD中的职位名称:

Set-ADuser M.Becker -title “Junior DevOps Engineer”

[玩转系统] Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性

您可以一次更改多个属性的值。例如,让我们设置一个新的电子邮件地址和允许用户登录的计算机列表:

Set-ADUser M.Becker -EmailAddress [email protected] -LogonWorkstations 'munx32f2r13,munx32f2r15'

以下命令将禁用域中的用户帐户:

Set-ADUser M.Becker -Enabled $False

您可以在 AD 中更改用户照片:

Set-ADUser M.Becker -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\scripts\ad\m.becker.jpg" -Encoding byte))}

您可以使用以下 Set-ADUser 选项编辑 AD 中其他用户属性(包括 extensionAttribute 和自定义属性)的值:

  • 添加 - 添加属性值

  • 替换 - 替换属性值

  • 清除 - 清除属性值

  • 删除 — 删除属性值之一

例如,要更改用户电话号码,您可以使用以下命令:

Set-ADUser M.Becker -MobilePhone $NewNumber

或者 :

Set-ADUser M.Becker -replace @{'MobilePhone' = $($Number) }

要将新值添加到扩展属性5:

Set-ADUser M.Becker -Add @{extensionAttribute5 = "Test1"}

要清除属性值:

Set-ADUser M.Becker -Clear "extensionAttribute5"

您可以一次更改多个属性的值:

Set-ADUser M.Becker -Replace @{;company="XYZ"}

此外,使用这些选项,您可以更改多值属性。例如,让我们向用户添加多个 ProxyAddresses(电子邮件别名):

Set-ADUser M.Becker -add @{ProxyAddresses="smtp:[email protected], ,SMTP:[email protected] " -split ","}

如何批量修改Active Directory用户属性?

您可以一次更改多个用户的属性。例如,以下命令将更改 UserAccountControl 属性的值,并强制指定 OU 中的所有用户在下次登录时更改其密码:

Get-ADUser -Filter * -SearchBase "OU=Users,OU=DE,DC=a-d,DC=loc" | Set-ADUser -ChangePasswordAtLogon $true

您可以使用 CSV 文件中的值批量更新 AD 用户属性。例如,您有一个 CSV 文件,其中包含帐户、职务和电话号码的列表(文件格式为:SamAccountName、职务、手机)。

[玩转系统] Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性

要使用 CSV 文件中的值更新用户属性,请运行以下 PowerShell 命令:

Import-Csv "C:\scripts\ad\update_ad_users.csv" | foreach {Set-ADUser -Identity $_.SamAccountName -Title $_.Title -MobilePhone $_.MobilePhone}

您可以将更新 AD 中用户属性的权限委托给 HR 员工,甚至可以教他们如何从 PowerShell 处理此类 CSV/Excel 文件。

如何在 ADUC 中显示用户登录的计算机名称?

在之前的一篇文章中,我们展示了如何使用 Set-ADComputer cmdlet 将用户信息添加到 AD 中的计算机属性。现在,我们考虑另一种方法,尝试将用户登录的计算机的信息添加到 Active Directory 中的用户属性中。

为此,只需将以下 PowerShell 脚本添加到登录 GPO 脚本中,以便在用户登录到计算机时运行(用户配置 -> 策略 -> Windows 设置 -> 脚本 -> 登录):

Set-ADUser -identity $env:UserName -Description $env:computername

该脚本假定 Active Directory 的 PowerShell 模块安装在用户的计算机上。如果您不想在所有计算机上安装 RSAT,则可以使用 AD PowerShell 模块而无需安装,方法是使用 GPO 或登录脚本将其文件复制到所有计算机。

这将允许您快速找到用户登录的计算机的名称。

[玩转系统] Set-ADUser:如何使用 PowerShell 更改 Active Directory 中的用户属性

在此示例中,我们将当前计算机的名称保存到标准 Description 属性中。您可以使用另一个属性,例如 ExtensionAttributes 之一。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯