Я развернул Active Directory в небольшой компании. Каждому пользователю доверяют права локального администратора на его компьютере с учетной записью домена.
Однако, если пользователи не могут войти в систему на своем компьютере, мне нужно включить локальные учетные записи администратора и с паролем. Проблема в том, что изменение пароля через GPO было удалено, я не могу использовать его для изменения пароля администратора.
Это удаление связано с недостатком безопасности, который не имеет значения, поскольку пользователи являются локальными администраторами.
Что мне нужно, так это простой способ активировать и изменить пароль встроенной учетной записи администратора через GPO без проблем с двухстраничным скриптом (я знаю, что он есть). Пароль должен быть одинаковым для всех и никогда не меняться.
Добавьте этот сценарий входа в систему, выберите Powershell, помните, что учетная запись администратора остается отключенной, нам нужно активировать ее, добавленную в последней строке сценария.
$computer=$env:computername
$user = "administrator"
$Password = "password"
$user = [adsi]"WinNT://$computer/$user,user"
$user.SetPassword($Password)
net user administrator /active:yes
Если вы хотите использовать сценарий, а не групповую политику, он не должен занимать две страницы. Поскольку у меня все равно лежат сценарии для другой цели, которые можно изменить, я, вероятно, сделал бы что-то вроде:
Получите список компьютеров (возможно, потребуется настройка для вашей среды, как для 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"
}
Еще лучше сохранить пароль в виде защищенной строки. В статье есть полезные инструкции для этого. Если вы этого не сделаете, вы, вероятно, захотите отредактировать пароль из второго скрипта после его запуска.