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

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

作者:精品下载站 日期:2024-12-14 06:09:38 浏览:13 分类:玩电脑

如何使用 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

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

  • 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

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

正如您所看到的,我们有两个本地用户帐户,其中一个被禁用(“已启用”列中具有“False”的帐户)。

如果要输出本地用户帐户的所有属性及其值,则需要使用带有以下参数的 Get-LocalUser cmdlet:

Get-LocalUser -Name ‘guest’ | Select-Object *

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

要获取特定本地用户帐户属性的值,请在 Select-Object 参数后键入其名称。在此示例中,我们想知道用户名“administrator”的帐户的 PasswordLastSet 属性的值:

Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

使用 PowerShell 创建本地用户

让我们借助 New-LocalUser cmdlet 创建一个新用户。此 cmdlet 可以创建以下类型的用户帐户:

  • Windows 本地用户帐户
  • 微软帐户
  • 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 "[email protected]" -Description "Microsoft Account"

要创建绑定到 Azure AD 的本地帐户,请使用以下命令:

New-LocalUser -Name "[email protected]" -Description "Azure AD Account"

使用 PowerShell 更改本地用户的密码或密码属性

要更改本地用户帐户的密码,我们需要使用 Set-LocalUser cmdlet。让我们更改本地管理员密码:

$UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose

要使用 PowerShell 为本地用户设置密码永不过期,我们需要运行以下脚本:

Set-LocalUser -Name Netwrix –PasswordNeverExpires $False

使用 PowerShell 删除本地用户帐户

要删除本地用户帐户,您需要使用 Remove-LocalUser cmdlet:

Remove-LocalUser -Name Netwrix -Verbose

使用 PowerShell 管理本地组

现在让我们将注意力从本地用户转向本地组。

使用 PowerShell 查看本地组

首先,让我们获取 Windows Server 上所有组的列表:

Get-LocalGroup

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

使用 PowerShell 添加本地组

现在让我们创建一个新组:

New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'

使用 PowerShell 将用户添加到本地组

要将用户(或组)添加到本地组,我们需要使用 Add-LocalGroupMember cmdlet。例如,假设我们想要将用户添加到本地管理员组中,但我们不想一一添加。让我们向本地管理员添加一个组,即“Netwrix Users”组:

Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose

如果您的计算机或服务器是域的一部分,您还可以将域帐户和组添加到本地组,以便为这些用户提供服务器上的特殊本地权限。使用“DomainNameUser”(对于用户)或“DomainNameDomain Group”(对于组)格式添加它们。

使用 PowerShell 查看特定组的成员身份

现在让我们列出特定本地组的所有成员:

Get-LocalGroupMember -Group 'Netwrix Users'

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

如您所见,该命令显示了属于“Netwrix Users”组成员的所有本地帐户和组。虽然此处仅列出本地帐户和组,但此命令还将显示任何域用户和组,以及所有 Microsoft 和 Azure AD 帐户。

使用 PowerShell 查看用户所属的所有组

要列出特定用户所属的所有组,我们将运行以下脚本:

foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}

[玩转系统] 如何使用 PowerShell 添加、删除和更改本地用户和组

使用 PowerShell 删除本地组

要从组中删除本地用户帐户,您需要使用 Remove-LocalGroupMember cmdlet:

Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'

使用 PowerShell 远程管理本地用户和组

如果要远程管理本地用户帐户和组,则需要使用 Invoke-CommandEnter-PSSession cmdlet 通过 WinRM 连接到远程工作站。例如,如果我们想在多台计算机上远程输出本地管理员组的成员身份,我们需要运行以下脚本:

$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 审核快速参考指南。

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

取消回复欢迎 发表评论:

关灯