使用 PowerShell 添加、删除和更改本地用户与组的方法
Aug 26, 2025
通过 Microsoft.PowerShell.LocalAccounts 模块,可以更高效地使用 PowerShell 管理本地用户与组。该模块提供 cmdlet,用于创建、修改、禁用或删除帐户和组。管理员可以自动化诸如将用户添加到组、重置密码或查看成员关系等任务,同时还可以管理与 Microsoft 和 Azure AD-关联的帐户。通过 PowerShell 会话进行远程管理,进一步简化了管理工作,不过对变更进行审计仍然是安全与合规所必需的。
为帮助管理员更方便地使用 PowerShell 管理本地用户与组,Microsoft 提供了一个名为 Microsoft.PowerShell.LocalAccounts 的 cmdlet 集合。此前,你需要显式下载并导入到 PowerShell 中,同时还要安装 Windows Management Framework 5.1;在 Windows Server 2016 和 Windows 10 操作系统中,该 cmdlet 集合已作为标准模块包含在内。
该 LocalAccounts 模块中有 15 个 cmdlet。你可以通过运行以下命令查看完整列表:
Get-Command -Module Microsoft.PowerShell.LocalAccounts
- Add-LocalGroupMember — 将用户添加到本地组
- Disable-LocalUser — 禁用本地用户账户
- Enable-LocalUser — 启用本地用户账户
- Get-LocalGroup — 查看本地组首选项
- Get-LocalGroupMember — 查看所有本地组成员列表
- Get-LocalUser — 查看本地用户账户的首选项
- New-LocalGroup — 创建新的本地组
- New-LocalUser — 创建新的本地用户账户
- Remove-LocalGroup — 删除本地组
- Remove-LocalGroupMember — 从本地组中移除成员
- Remove-LocalUser — 删除本地用户帐户
- Rename-LocalGroup — 重命名本地组
- Rename-LocalUser — 重命名本地用户帐户
- Set-LocalGroup — 更改本地组的设置
- Set-LocalUser — 更改本地用户的帐户设置
使用 PowerShell 管理本地用户帐户
让我们看看如何使用这些命令在 Windows 10 计算机上执行与管理本地用户相关的常见任务。
使用 PowerShell 列出用户及其属性
首先,获取计算机上所有本地用户帐户的列表。我们将使用 Get-LocalUser cmdlet:
Get-LocalUser
如您所见,我们有两个本地用户帐户,其中一个处于禁用状态(在“Enabled”列中显示为“False”的那个)。
如果要输出本地用户帐户的所有属性及其值,则需要使用带有以下参数的 Get-LocalUser cmdlet:
Get-LocalUser -Name ‘guest’ | Select-Object *
要获取特定本地用户帐户属性的值,请在 Select-Object 参数后输入该属性的名称。在此示例中,我们想要了解用户名为“administrator”的帐户的 PasswordLastSet 属性值:
Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet
使用 PowerShell 创建本地用户
我们可以借助 New-LocalUser cmdlet 来创建一个新用户。该 cmdlet 可以创建以下类型的用户帐户:
- Windows 本地用户帐户
- Microsoft 帐户
- Azure Active Directory 帐户
创建本地用户帐户时,切勿将密码以明文形式键入;请始终使用 ?AsSecureString 或 ?ConvertTo-SecureString 参数将其转换为安全字符串。下面是用于创建新本地用户帐户的命令:
$UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"
在 Windows 10 环境中,用户可以使用其 Microsoft 帐户进行授权,因此我们可以创建一个新的本地用户帐户,该帐户绑定到 Microsoft 帐户的凭据。使用下面的脚本来完成此操作(注意:由于密码存储在 Microsoft 云中,您无需手动输入密码):
New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"
要创建与 Azure AD 绑定的本地帐户,请使用以下命令:
New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"
使用 PowerShell 更改本地用户的密码或密码属性
要更改本地用户帐户的密码,我们需要使用 Set-LocalUser cmdlet。让我们来更改本地管理员密码:
$UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose
要在 PowerShell 中为本地用户设置 Password never expires,需要运行以下脚本:
Set-LocalUser -Name Netwrix –PasswordNeverExpires $False
使用 PowerShell 删除本地用户帐户
要删除本地用户帐户,你需要使用 Remove-LocalUser cmdlet:
Remove-LocalUser -Name Netwrix -Verbose
使用 PowerShell 管理本地组
接下来,我们把注意力从本地用户转到本地组。
使用 PowerShell 查看本地组
首先,获取我们 Windows Server 上所有组的列表:
Get-LocalGroup
使用 PowerShell 添加本地组
现在让我们创建一个新组:
New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'
使用 PowerShell 将用户添加到本地组
要将用户(或组)添加到本地组,我们需要使用 Add-LocalGroupMember cmdlet。比如说,我们想把用户添加到本地 Administrators 组,但又不想一个个地添加。我们可以将某个组添加到本地 Administrators,例如添加“Netwrix Users”组:
Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose
如果你的计算机或服务器属于某个域,你也可以将域帐户和组添加到本地组,以便为这些用户在服务器上授予特殊的本地权限。使用以下格式添加:“DomainNameUser”(用于用户)或“DomainNameDomain Group”(用于组)。
使用 PowerShell 查看特定组的成员
现在,让我们列出特定本地组的所有成员:
Get-LocalGroupMember -Group 'Netwrix Users'
如您所见,该命令会显示“Netwrix Users”组的所有本地帐户和组。尽管这里仅列出了本地帐户和组,但该命令也会显示任何域用户和组,以及所有 Microsoft 和 Azure AD 帐户。
使用 PowerShell 查看用户所属的所有组
要列出特定用户所属的所有组,我们需要运行以下脚本:
foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
使用 PowerShell 移除本地组
要从组中移除本地用户帐户,需要使用 Remove-LocalGroupMember cmdlet:
Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'
使用 PowerShell 远程管理本地用户和组
如果你想远程管理本地用户帐户和组,你需要使用 Invoke-Command 和 Enter-PSSession cmdlet 通过 WinRM 连接到远程工作站。例如,如果我们要在多台计算机上远程输出本地 Admin 组的成员信息,就需要运行以下脚本:
$search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"
如你所见,通过 PowerShell 管理本地组和用户相当容易,但为了确保安全性、合规性和业务连续性,必须对所有这些更改进行审计。有关配置本机审计的详细信息,请参阅 Windows Server Auditing Quick Reference Guide。
分享到
了解更多
关于作者
Jeff Melnick
系统工程总监
Jeff 是 Netwrix 的前 Global Solutions Engineering 总监。他是一位长期的 Netwrix 博主、演讲者和讲解员。在 Netwrix 博客中,Jeff 分享各种生活技巧,以及可以显著提升您系统管理体验的提示与技巧。