网站搜索

Set-AdUser - 使用 PowerShell 修改 Active Directory 用户


管理员经常必须手动更新 Active Directory 用户的属性。此过程可能非常耗时。 PowerShell Active Directory 模块提供 Set-AdUser cmdlet 来修改 Active Directory 用户的属性。

Set-AdUser cmdlet 修改 Active Directory 用户属性。它允许我们使用 cmdlet 参数修改常用的用户属性。 Identity 参数获取特定的活动目录用户修改属性。

您可以通过 GUID、专有名称、SAMAccountName、安全标识符 (SID) 来识别用户。您可以使用 Get-AdUser cmdlet 检索用户对象,并通过管道 (|) 运算符将对象传递到 Set-AdUser cmdlet 以修改用户属性。

先决条件

Set-AdUser cmdlet 是 Active Directory cmdlet 之一。要使用 set-aduser cmdlet,系统需要满足以下要求:

  • 要安装的 PowerShell ActiveDirectory 模块
  • 具有管理员访问权限或具有足够的访问权限来读取 Active Directory 信息的用户。

提示:要了解系统中可用的模块,请在 PowerShell ISE 中运行以下命令

Get-Module -ListAvailable

此命令返回系统中已安装且可用的所有模块。如果 Active Directory 模块不可用,请按照 Active Directory 安装步骤操作。

句法

Set-AdUser cmdlet 修改 Active Directory 用户属性

Set-ADUser
   [-WhatIf]
   [-Confirm]
   [-AccountExpirationDate <DateTime>]
   [-AccountNotDelegated <Boolean>]
   [-Add <Hashtable>]
   [-AllowReversiblePasswordEncryption <Boolean>]
   [-AuthenticationPolicy <ADAuthenticationPolicy>]
   [-AuthenticationPolicySilo <ADAuthenticationPolicySilo>]
   [-AuthType <ADAuthType>]
   [-CannotChangePassword <Boolean>]
   [-Certificates <Hashtable>]
   [-ChangePasswordAtLogon <Boolean>]
   [-City <String>]
   [-Clear <String[]>]
   [-Company <String>]
   [-CompoundIdentitySupported <Boolean>]
   [-Country <String>]
   [-Credential <PSCredential>]
   [-Department <String>]
   [-Description <String>]
   [-DisplayName <String>]
   [-Division <String>]
   [-EmailAddress <String>]
   [-EmployeeID <String>]
   [-EmployeeNumber <String>]
   [-Enabled <Boolean>]
   [-Fax <String>]
   [-GivenName <String>]
   [-HomeDirectory <String>]
   [-HomeDrive <String>]
   [-HomePage <String>]
   [-HomePhone <String>]
   [-Identity] <ADUser>
   [-Initials <String>]
   [-KerberosEncryptionType <ADKerberosEncryptionType>]
   [-LogonWorkstations <String>]
   [-Manager <ADUser>]
   [-MobilePhone <String>]
   [-Office <String>]
   [-OfficePhone <String>]
   [-Organization <String>]
   [-OtherName <String>]
   [-Partition <String>]
   [-PassThru]
   [-PasswordNeverExpires <Boolean>]
   [-PasswordNotRequired <Boolean>]
   [-POBox <String>]
   [-PostalCode <String>]
   [-PrincipalsAllowedToDelegateToAccount <ADPrincipal[]>]
   [-ProfilePath <String>]
   [-Remove <Hashtable>]
   [-Replace <Hashtable>]
   [-SamAccountName <String>]
   [-ScriptPath <String>]
   [-Server <String>]
   [-ServicePrincipalNames <Hashtable>]
   [-SmartcardLogonRequired <Boolean>]
   [-State <String>]
   [-StreetAddress <String>]
   [-Surname <String>]
   [-Title <String>]
   [-TrustedForDelegation <Boolean>]
   [-UserPrincipalName <String>]
   [<CommonParameters>]

设置 ADUser 示例

让我们看下面的 Set-AdUser 示例来设置 aduser 属性、电子邮件地址、set-aduser 管理员等。

使用 Set-Aduser 设置 aduser 电子邮件地址

如果要设置 Active Directory 用户电子邮件地址,请使用 PowerShell Set-AdUser cmdlet 更新 aduser 的 EmailAddress 属性。

Set-ADUser -Identity smith -EmailAddress '[email '

在上面的示例中,Set-ADUser 命令更新 Active Directory 帐户中的用户“smith”电子邮件地址。

它使用 Set-ADUser -Identity 参数根据可分辨名称来识别用户。

酷提示:在 PowerShell 中使用 Get-ADUser 获取电子邮件地址!

设置 Active Directory 用户职务和部门

Set-ADUser -Identity "smith" -Department "Asia_Sales" -Title "Manager"

在上面的示例中,Set-ADUser 命令将职位、职位和部门属性设置为 SAM 帐户名为 smith 的用户对象。

设置 Active Directory 用户 HomePage 属性

Set-ADUser smith -HomePage 'https://shellgeek.com/powershell/' -LogonWorkstations 'it-20-dekstop,it-20-laptop'

在上面的示例中,Set-ADUser 命令将 SAM 帐户 smith 用户 HomePage 属性更新为 https://shellgeek.com/powershell/ 并将 LogonWorkstations 属性更新为 it-20-dekstop和 it-20-笔记本电脑

获取 AD 用户并设置-aduser 管理器属性

让我们考虑一个设置 aduser Smith 经理的示例。 Set-AdUser 有一个 manager 属性,用于设置 Active Directory 用户管理器。

Get-ADUser -Identity "Smith" | Set-ADUser -Manager "JohnKelly"

在上面的示例中,它使用 PowerShell Get-ADUser 获取 Active Directory 用户 Smith,并将用户对象传递给 PowerShell Set-ADUser cmdlet 以更新 Manager 属性。您可以使用 userprincipalname 或 upn 获取广告用户。

PowerShell Set-AdUser 多个用户的属性

 Get-ADUser -Filter 'Name -like "*"' -SearchBase 'OU=Sales,OU=UserAccounts,DC=shellgeek,DC=COM' -Properties DisplayName | % {Set-ADUser $_ -DisplayName ($_.Surname + ' ' + $_.GivenName)}

在上面的示例中,Get-ADUser cmdlet 获取位于 OU=Sales、OU=UserAccounts、DC=shellgeek、DC=COM 组织单位中的所有用户的列表。

PowerShell Set-ADUser cmdlet 将用户对象上的 DisplayName 属性更新为 Surname 属性和 GiveName 属性的串联。

PowerShell 从 csv 设置广告用户属性

让我们考虑一个示例,要从 CSV 文件更新 AD 用户的多个属性,例如广告用户标题和部门,请运行以下命令

Import-Module ActiveDirectory  

$users = Import-csv -Path c:\powershell\ad_users.csv

foreach ($user in $users) {

Get-ADUser -Filter "employeeID -eq '$($user.employeeID)'" -Properties * -SearchBase "OU=Asia_Sales,dc=shellgeek,dc=com" |Set-ADUser -department $($user.department) -title $($user.title) 
}

在上面的示例中,ad_users.csv 文件包含员工 ID、职务和部门。用户 Import-CSV 读取 CSV 文件并将文件数据存储在 $users 变量中。

使用 Get-AdUser cmdlet 迭代 $user 以从特定 OU 中的活动目录获取用户。使用检索到的员工用户对象和传递管道 (|) 到 Set-AdUser cmdlet 来更新部门和职位。

精彩提示:了解如何使用 Get-ADUser cmdlet 从 csv 获取广告用户属性

Set-ADUser Replace 设置属性

PowerShell Set-ADUser 将对象属性的特定值替换为当前值。使用 LDAP 显示名称修改对象属性。您可以使用Set-ADUser Replace来更新多个属性值。

让我们考虑一个更新员工的头衔和电子邮件地址的情况,使用 set-ADuser 替换,我们可以按如下方式执行

Set-ADUser -Identity Smith -Replace @{title="manager";mail="[email "}

此命令将 Smith 用户头衔更新为经理,并将电子邮件地址更新为 [email

Set-AdUser 公司名称

如果要为特定 OU 中的 Active Directory 用户设置 aduser 公司名称,请运行以下命令

Get-ADUser -SearchBase "OU=SALES,DC=SHELLPRO,DC=LOCAL" -filter * |  Set-ADUser  -Replace @{company="SHELLGEEK"}

在上面的 PowerShell 脚本中,Get-AdUser SearchBase 参数获取指定 OU 中的 Active Directory 用户并输出到第二个命令。

第二个命令使用 Set-ADUser 用提供的值更新公司名称。

酷提示:了解如何在 PowerShell 中使用 userprincipalname 或 upn 获取广告用户!

PowerShell设置-AdUser替换多个属性

如果您想更新 Active Directory 用户的多个属性,例如更新部门、公司名称,请运行以下命令

 Get-ADUser -SearchBase "OU=SALES,DC=SHELLPRO,DC=LOCAL" -filter * -Properties Department,Company | Set-ADUser  -Replace @{Department=101;Company="ShellGeek"}

在上面用于替换 ad 用户的多个属性的 PowerShell 脚本中,第一个命令从指定的 OU 获取 aduser 并将输出传递给第二个命令。

第二个命令使用 Set-ADUser 替换多个属性,例如部门和公司名称。

运行脚本以获取指定 OU 的 aduser,以检查 Set-ADUser 替换多个属性命令的输出,如下所示

Set-AdUser 清除属性值

如果要清除广告用户帐户的属性值,请使用 AdUser -Clear 参数清除属性值。

例如,考虑一个清除部门值的示例,运行以下命令

Get-ADUser -filter * -SearchBase "OU=SALES,DC=SHELLPRO,DC=LOCAL" | Set-AdUser -clear department

在上面的 PowerShell 脚本中,Get-Aduser cmdlet 从指定的 OU 获取用户并将输出传递给第二个命令。

第二个命令使用 Set-ADUser 清除属性值。

运行 get ad user 命令后上述命令的输出如下

上图显示了指定 OU 中用户的 set-aduser 清除部门属性值。

酷提示:了解如何查询 Active Directory 用户信息!

设置 AdUser 禁用帐户

作为管理员,我们需要检查活动用户帐户和不再使用的帐户。当员工离开组织时,我们需要禁用 Active Directory 用户。

让我们举一个例子,对离开组织的员工 Don 使用 set-aduser 禁用帐户场景。

首先,我们将使用 Get-AdUser cmdlet 来获取启用或禁用的广告用户帐户状态。

如果 Get-AdUser Enabled 属性具有 True 值,则表示帐户处于活动状态,False 值表示帐户已禁用。

 Get-ADUser -Identity Don -Properties Enabled | Select Enabled

上述关于广告用户启用状态的命令的输出如下

PS C:\Windows\system32> Get-ADUser -Identity Don -Properties Enabled | Select Enabled

Enabled
-------
   True

现在,在用户离开并组织之后,我们需要将其活动目录状态更新为禁用。使用 Set-AdUser cmdlet,我们将禁用帐户,如下所示

Get-ADUser -Identity Don -Properties Enabled | Set-ADUser -Enabled $False

在上面的 PowerShell 脚本中,第一个命令获取用户对象的 aduser 启用状态,并将输出传递给第二个命令。

第二个命令使用 Enable=False Set-ADUser 来禁用用户帐户。

在我们检查用户状态后,上述 PowerShell Set-ADUser Disabled account 命令的输出如下

你知道吗:如何使用PowerShell在Windows中使用cat命令!

Powershell Set-AdUser 常见问题解答

什么是 Powershell Set-AdUser?

Set-AdUser cmdlet 修改 Active Directory 用户属性。它允许我们使用 cmdlet 参数修改常用的用户属性。

如何在 Active Directory 中设置自定义属性?

使用 PowerShell Set-Aduser -add、-replace 和 -remove 参数,您可以在活动目录中设置自定义属性。

如何使用Set-AdUser修改Active Directory属性手机号码?

使用PowerShell设置-AdUser属性-MobilePhone,您可以轻松修改手机号码。运行以下命令

Set-ADUser -Identity Tom.Smith -MobilePhone 01777896453

以上命令,Set-Aduser 将修改 Tom.Smith用户手机。

或者您也可以使用 Set-AdUser Replace 属性来修改电话号码,如下所示

Set-ADUser Tom.Smith -replace @{'MobilePhone'=01777896453 }

结论

在本文中,我们将通过不同的示例介绍功能强大的 PowerShell Set-ADUser 之一来更新 Active Directory 用户属性。

Get-ADUser 用于获取一个或多个特定用户对象,并使用 PowerShell Set-AdUser cmdlet 更新多个属性的对象。

您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。

相关文章