使用 PowerShell 添加 AD 用户、组和计算机
style="letter-spacing: 0px; text-transform: unset; background-color:透明;">在PowerShell中,创建用户帐户和组、将用户添加到组或从组中删除用户相对容易。为了使 cmdlet 可用,必须在客户端或服务器上安装相应的 PowerShell 模块。
安装用于 Active Directory 管理的 PowerShell 模块
在域控制器上,PowerShell 模块会自动与其他管理工具一起安装。在 Windows 10 和 Windows 11 计算机上,安装是通过“按需功能”功能完成的。此设置可以在 Windows 10 和 Windows 11 的“设置”应用中找到。这些可选功能可通过“设置\应用”使用。通过此方式,RSAT:Active Directory 域服务和轻量级目录服务工具可作为 RSAT 工具的一部分使用。对于 Windows 11,您还必须单击显示功能。
使用安装按钮,即可进行模块集成。通过安装此功能,Active Directory 的 PowerShell 模块也可用。
在 Windows 10 中安装 PowerShell 的 Active Directory 模块
在服务器上,通过在服务器管理器中添加 Active Directory 远程管理工具来完成安装。或者,可以使用 Windows 管理中心添加 Active Directory 扩展。
在 Windows 服务器上,还可以使用 PowerShell 安装 Active Directory 管理工具。为此,使用命令Install-WindowsFeature RSAT-AD-PowerShell。
在服务器上安装远程服务器管理工具
使用 PowerShell 创建 AD 对象
为了在 PowerShell 中检索 Active Directory 对象(例如计算机、用户或组),Microsoft 提供了许多 cmdlet。
显示列表的最快方法是使用 Get-Command Get-Ad* 命令。为了创建新对象,还有许多 cmdlet。通过键入Get-Command New-Ad*即可显示该列表。
PowerShell 使用 Get-Command Remove-Ad* 显示删除对象的命令列表。对 Active Directory 对象的更改是使用 Set cmdlet 进行的。使用 Get-Command Set-Ad* 显示列表。
通过以下命令可以获取所有 Active Directory 管理 cmdlet 的列表:
Get-Command -Module ActiveDirectory这使您可以快速组合命令并创建可用于创建新对象的脚本,同时还可以自定义对象。 PowerShell 的优点是,它还可以用于同时自定义多个组,并且可以编写任务脚本。有一个图形用户界面的选项。
在 PowerShell 中管理组
在 PowerShell 中管理组主要通过以下 cmdlet 完成:
- 添加 ADGroupMember
- 添加 ADPrincipalGroupMembership
- 获取 ADAccountAuthorizationGroup
- 获取 ADGroup
- 获取 ADGroupMember
- 获取 ADPrincipalGroupMembership
- 新 ADGroup
- 删除 ADGroup
- 删除-ADGroupMember
可以使用 New-ADGroup 创建新组。在脚本中,可以创建新组并同时调整组成员资格。现有组的调整也可以通过脚本进行控制。要创建新组并显示执行此操作的语法,可以使用以下 cmdlet:
Get-Command New-ADGroup -Syntax创建新组的命令例如:
New-ADGroup "name of the group"
当您输入此命令时,PowerShell 会创建一个新的安全组。如果您还想在创建时指定该组是在特定组织单位中创建的,并且该组应在全局范围内可用,请使用以下命令:
New-ADGroup "purchasing" -Path "OU=Berlin,DC=joos,dc=int" -GroupCategory Security -GroupScope Global -PassThru -Verbose使用-GroupCategory,您可以控制组的类别,即安全或分发(分发列表)。此时,您还可以使用 -GroupScope 控制组类型。如果您希望该命令创建通用组,请使用-GroupScope Universal。
要删除它,您可以使用Remove-ADGroup cmdlet:
Remove-ADGroup -Identity purchasing控制组成员资格
在 PowerShell 中创建和删除组不是问题。同样,可以在 PowerShell 中向组中添加或删除成员。还可以使用单个命令将多个用户帐户添加到组中。此示例的命令如下所示:
Add-AdGroupMember -Identity Purchasing -Members joost, joosc该命令将两个用户帐户 joost 和 joosc 添加到 Purchasing 组。使用PowerShell,还可以查询组成员资格。以下命令可用于此目的:
Get-ADGroupMember -Identity Purchasing也可以在 PowerShell 中将计算机帐户添加到组中。其命令类似。对于计算机帐户,美元符号必须添加到名称末尾。在上例中,如果要将计算机帐户 srv01 添加到组 Purchasing,请使用以下命令:
Add-AdGroupMember -Identity Purchasing -Members srv01$将用户添加到多个组
使用 PowerShell,还可以将用户帐户添加到多个组。以下命令可用于此目的:
"Purchasing1","Purchasing" | Add-ADGroupMember -Members (Read-Host -Prompt "enter user names")输入用户名后,该命令会将输入的用户添加到组 Purchasing1 和 Purchasing2 中。也可以使用 CSV 文件。为此,请创建一个包含用户列的 CSV 文件,并将用户帐户作为单独的行包含在内。然后您可以导入文件并添加组。执行此操作的命令如下所示:
Import-CSV C:\stemp\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Purchasing" -members $_.users}类似的任务是在两个组之间复制组成员身份。要将 Purchasing1 组的成员复制到 Purchasing2,请使用以下命令:
Get-ADGroupMember "Purchasing1" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "Purchasing2" -Members $_} 根据OU或AD属性向组添加组
类似的任务是将 OU 的所有用户帐户添加到特定组。本例中的命令如下所示:
Get-ADUser -Filter * -SearchBase "OU=Users,OU=NY,OU=USA,DC=theitbros,DC=com"| ForEach-Object -process {Add-ADGroupMember -identity "NY Users" -Members $_.SamAccountName}
除了 OU 之外,还可以使用基于 AD 中其他属性的查询将特定用户添加到固定定义的组中。一个例子是:
Get-ADUser -filter {(co -eq "United States")} | ForEach-Object -process {Add-ADGroupMember -identity "USAUsers" -Members $_.SamAccountName}从组中删除用户
从组中删除用户帐户的工作原理类似。但在这里,Remove-ADGroupMember cmdlet 发挥了作用。要从 Purchasing 组中删除上面添加的用户,可以使用以下命令:
Remove-AdGroupMember -Identity Purchasing -Members joost, joosc从组中删除多个用户也可以使用与上述相同的选项来完成。这里也使用了Remove-AdGroupMember cmdlet。
控制域之间的组成员身份
当使用多个域时,还可以将一个域的用户帐户添加到其他域的用户组中。以下命令可用于此目的:
$User = Get-ADUser -Identity "CN=ChewDavid,OU=UserAccounts,DC=NORTHAMERICA,DC=FABRIKAM,DC=COM" -Server "northamerica.fabrikam.com"
$Group = Get-ADGroup -Identity"CN=AccountLeads,OU=UserAccounts,DC=EUROPE,DC=FABRIKAM,DC=COM" -Server "europe.fabrikam.com"
Add-ADGroupMember -Identity $Group -Members $User -Server "europe.fabrikam.com"这些命令将域 Northamerica 中的用户 CN=Chew David,OU=UserAccounts 添加到组 CN=AccountLeads,OU=UserAccounts域欧洲。


