通过 GPO 更改本地管理员密码

通过 GPO 更改本地管理员密码

我在一家小公司部署了 Active Directory。每个用户都拥有其域帐户的计算机本地管理员权限。

但是,如果用户无法登录计算机,我需要启用本地管理员帐户并设置密码。问题是,由于通过 GPO 更改密码的功能已被删除,我无法使用它来更改管理员密码。

此次删除是由于安全漏洞,但这并不重要,因为用户本地管理员。

我需要的是一种通过 GPO 激活和更改内置管理员帐户密码的简单方法,而不必麻烦地写两页长的脚本(我知道有一个)。密码应该对每个人都一样,并且永远不会改变。

答案1

添加此登录脚本选择 Powershell,记住管理员帐户仍然被禁用,我们需要在脚本的最后一行添加它来激活它。

$computer=$env:computername
$user = "administrator"
$Password = "password"
$user = [adsi]"WinNT://$computer/$user,user"
$user.SetPassword($Password)
net user administrator /active:yes

答案2

你可以用以下方法代替洛杉矶郡

答案3

如果您愿意使用脚本而不是组策略,那么就不需要写两页了。由于我手头上有一些可以修改的其他用途的脚本,所以我可能会这样做:

获取计算机列表(可能需要针对您的环境进行调整,包括 OU 和限制):

dsquery computer ou=sbscomputers,ou=computers,ou=mybusiness,dc=mydomain,dc=local -o rdn -limit 500  > control.txt

SetLocal EnableDelayedExpansion

FOR /F %%L IN (control.txt) DO (
    set line=%%L
    echo !line!
    set line=!line:"=!
    echo !line!
    echo !line! >> process.txt
)

sort < process.txt > sorted.txt

del process.txt
move sorted.txt control.txt

然后你可以做类似的事情:

$computers = Get-Content -Path c:\path\to\control.txt
$user = "administrator"
$Password = "password"
Foreach($computer in $computers) {
    $user = [adsi]"WinNT://$computer/$user,user"
    $user.SetPassword($Password)
    $user.SetInfo()
    echo "Password reset on $computer"
}

最好将密码保存为安全字符串。 本文有有用的说明。如果没有,您可能希望在运行第二个脚本后编辑掉密码。

相关内容