我需要更改本地用户密码。当我将其转换为安全字符串时,它的行为就像更改了它一样,但是当尝试登录该帐户时,它并不需要密码。不知道我在做什么错,但是我知道要让Powershell的Set-LocalUser cmdlet接受密码,它必须是安全字符串。下面是代码
$UnsecurePassword = "Testing1234"
$SecurePassword = ConvertTo-SecureString $UnsecurePassword -AsPlainText -Force
$localaccount = Get-LocalUser -Name "Local" -ea stop | Enable-LocalUser
$localaccount | Set-LocalUser -Password $SecurePassword -PasswordNeverExpires 1 -ea stop
答案 0 :(得分:2)
您的问题是线路
$localaccount = Get-LocalUser -Name "Local" -ea stop | Enable-LocalUser
由于Enable-LocalUser不返回任何内容,也没有-PassThru
参数,因此您最终以$localaccount
为空。
因此将您的脚本更改为:
$UnsecurePassword = "Testing1234"
$SecurePassword = ConvertTo-SecureString $UnsecurePassword -AsPlainText -Force
$localaccount = Get-LocalUser -Name "Local" -ea stop
$localaccount | Enable-LocalUser
$localaccount | Set-LocalUser -Password $SecurePassword -PasswordNeverExpires 1 -ea stop
答案 1 :(得分:1)
这是设置密码的最简单方法,您可以添加其他内容以确保启用了密码以及您需要的其他任何方式。在我看来,设置密码是最简单的方法。
Set-LocalUser -Name Local -Password (ConvertTo-SecureString -String 'Testing1234' -AsPlainText -Force)
答案 2 :(得分:0)
Set-LocalUser -Name Local -Password (ConvertTo-SecureString 1234 -AsPlainText)
您可以省略 force
参数以获得与对方答案相反的最小解决方案。
一种天真的方法是将密码更改为无密码的Set-LocalUser local
。试试看,在 powershell
中它不起作用。不过,在 Windows 10 中的 gui
中可以取消设置密码。