В нашей (довольно небольшой) среде есть машины Windows (8.1 и 7) с учетными записями пользователей, имеющими права администратора. Чтобы исправить это, я решил написать скрипт powershell, который добавит новую учетную запись администратора и понизит текущую. После его запуска я больше не мог войти ни во что. Скрипт прост:
If (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs;
exit
}
net user local_admin SuperSecurePassword /add /comment:"comment" /expires:never
net localgroup "Administrators" local_admin /add
net localgroup "Administrators" "$env:username" /delete
Read-Host -Prompt "Enter!"
Сначала он перезапускается из экземпляра PS с повышенными правами (взято из популярного вопроса на SE), а затем запускает сами команды.
Все команды сообщали об успешном выполнении ("Command succesful" или что-то в этом роде). Однако я больше не мог войти в систему (ни с новым профилем, ни со старым) с таким сообщением об ошибке:
The User Profile Service service failed the logon. User profile cannot be loaded.
У нас нет домена, просто куча ПК с локальными аккаунтами (я знаю, я знаю). Что я делаю не так?
решение1
Оказывается, у моей папки профиля по умолчанию (Users\Default) по какой-то причине были неправильные права доступа, поэтому Windows не смогла скопировать ее в новый профиль, используя недавно созданную учетную запись. Я успешно вошел в систему после исправления этого.
Другая проблема заключалась в том, что вам нужно было добавить пользователя в группу "Пользователи" после удаления его из администраторов. Следующая строка сделала это для меня:
net localgroup "Пользователи" "$env:username" /add