【问题标题】:Reset all Windows 10 user passwords [duplicate]重置所有 Windows 10 用户密码 [重复]
【发布时间】:2017-02-11 15:50:32
【问题描述】:

我正在为我的组织部署 Airwatch。在公司拥有的笔记本电脑上,如果/当设备未注册时,我想将它们锁定。没有内置的方法可以做到这一点,所以我正在寻找一个脚本来做到这一点。我的相关背景:我知道的批处理很少,一些powershell,很多vbscript(对于经典的ASP)。

我想要以下一项或两项:

  • 将笔记本电脑上的所有用户密码重置为预设值
  • 创建一个特定的本地管理员,然后禁用所有其他本地用户

我知道我可以使用“net user”来获取用户列表,但我不知道如何使用该列表来实际禁用用户或更改他们的密码。适合此逻辑的批处理命令将是理想的:

net user NewAdmin Password /add

net localgroup administrators NewAdmin /add

UserList = net user output

For each UserName in UserList

     If UserName <> "NewAdmin" Then
          net user UserName NewPassword
          net user UserName /active:no
     End If
Next

【问题讨论】:

  • 他问的是如何在 Windows 10 中做到这一点,而不是在 Windows 95 中使用批处理文件和网络命令是常态,他的代码只是表达了所需的逻辑。

标签: powershell batch-file vbscript wmi wsh


【解决方案1】:

如果您使用的是 Windows 10 Vs.1607 或更高版本,则可以使用类似以下 PowerShell 脚本的内容:

$AdminPwd = ConvertTo-SecureString -string "foobar2016!" -AsPlainText -Force
$UserPwd = ConvertTo-SecureString -string "foobar2016!" -AsPlainText -Force

$NewAdmin = "NewAdmin"

New-LocalUser -Name $NewAdmin -FullName "New Admin" -Password $AdminPwd
Add-LocalGroupMember -Member $NewAdmin -Group "Administrators"

Get-LocalUser | ForEach-Object {

    if ($_.Name -ne $NewAdmin)
    {
        $_ | Set-LocalUser -Password $UserPwd
        $_ | Disable-LocalUser 
    }
}

测试时要小心,它会禁用除新用户之外的所有用户。 LocalUser cmdlet 是 PowerShell Vs 中的新功能。 5.1

【讨论】:

  • 这看起来像我需要的,但我将部署它的许多笔记本电脑可能还没有 v5.1。
  • 不幸的是,看起来我还有一个额外的限制,即无法以管理员身份运行 powershell 脚本,这并没有影响您的答案,但不幸的是,它对我的​​目的毫无用处。我可以确定将以管理员身份运行的唯一脚本是 cmd/batch 在此环境中。谢谢彼得!如果我要使用 Airwatch,我似乎最终可能会被困在 Windows 95 的土地上。
猜你喜欢
  • 2019-07-13
  • 1970-01-01
  • 2017-09-24
  • 2015-08-04
  • 1970-01-01
  • 2023-02-08
  • 2012-10-24
  • 2013-09-06
  • 2020-07-05
相关资源
最近更新 更多