You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Powershell解锁本地用户账户?

PowerShell 本地用户账户解锁方案

原生Set-LocalUser cmdlet 确实没有提供直接修改AccountLocked属性的参数,你可以通过以下两种成熟方案实现本地账户解锁,可直接集成到现有脚本中:

方案1:使用 CIM 命令(推荐,适配Win10/Server 2016及以上系统)

  • 首先查询指定本地用户的锁定状态:
Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount='True' AND Name='替换为目标用户名'" | Select-Object Name, Lockout

返回结果中Lockout值为True即代表账户处于锁定状态。

  • 执行解锁操作:
Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount='True' AND Name='替换为目标用户名'" | Invoke-CimMethod -MethodName Unlock

方案2:使用 ADSI .NET 类(适配全版本Windows系统)

直接调用ADSI接口修改账户锁定属性:

$user = [ADSI]"WinNT://localhost/替换为目标用户名,user"
$user.IsAccountLocked = $false
$user.SetInfo()

可直接复用的脚本片段

你可以把以下逻辑加到你现有的账户管理脚本中,批量解锁你司需要保留的本地用户:

# 此处替换为你司需要保留的本地用户列表
$validUsers = @("内部用户1", "内部用户2", "运维管理员")

foreach ($username in $validUsers) {
    $targetUser = Get-CimInstance -ClassName Win32_UserAccount -Filter "LocalAccount='True' AND Name='$username'" -ErrorAction SilentlyContinue
    # 仅当用户存在且处于锁定状态时执行解锁
    if ($targetUser -and $targetUser.Lockout) {
        $targetUser | Invoke-CimMethod -MethodName Unlock
        Write-Host "已解锁本地账户:$username"
    }
}

注意事项

  • 所有账户修改操作都需要以管理员权限运行PowerShell才能生效
  • 如果你需要兼容Win7/Server 2008 R2等旧系统,将CIM命令替换为WMI命令即可:Get-WmiObject -Class Win32_UserAccount -Filter "LocalAccount='True' AND Name='目标用户名'" | Invoke-WmiMethod -Name Unlock

内容的提问来源于stack exchange,提问作者Lucky Lehlohonolo Nthite Mpetl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:36:07