我已经在一家小公司部署了一个Active Directory。 用他的域帐户,每个用户都可以在他的电脑上获得本地pipe理员权限。
但是,如果用户无法login到他们的计算机,我需要启用本地pipe理员帐户和密码。 麻烦的是,因为通过GPO的密码更改已被删除,我不能用它来更改pipe理员密码。
此删除是由于安全漏洞,这是不相关的,因为用户是本地pipe理员。
我需要的是通过GPO激活和更改内置pipe理员帐户密码的简单方法,而不需要两页长的脚本(我知道有一个)。 密码应该是每个人都一样,永远不会改变。
添加这个login脚本selectPowershell,记住pipe理员帐户保持禁用状态,我们需要将其添加到最后一行脚本中。
$computer=$env:computername $user = "administrator" $Password = "password" $user = [adsi]"WinNT://$computer/$user,user" $user.SetPassword($Password) net user administrator /active:yes
你可以用LAPS代替
如果您愿意使用脚本而不是组策略,则不应占用两页。 由于我有脚本围绕不同的目的可以改变,我可能会做这样的事情:
获取计算机列表(可能需要针对您的环境进行调整,无论是针对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" }
将密码保存为安全的string更好。 这篇文章有这个有用的说明。 如果你不这样做,你可能想在第二个脚本运行后编辑密码。