我在一家小公司部署了 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"
}
最好将密码保存为安全字符串。 本文有有用的说明。如果没有,您可能希望在运行第二个脚本后编辑掉密码。