运行 powershell/批处理脚本添加新用户后无法登录

运行 powershell/批处理脚本添加新用户后无法登录

我们的环境(相当小)有 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 上的一个热门问题)重新启动,然后运行命令本身。

所有命令执行后均报告成功(“命令成功”或类似内容)。但是,我无法再登录系统(不能使用新配置文件,也不能使用旧配置文件),并显示以下错误消息:

The User Profile Service service failed the logon. User profile cannot be loaded.

我们没有域名,只有一堆拥有本地帐户的 PC(我知道,我知道)。我做错了什么?

答案1

原来我的默认配置文件文件夹 (Users\Default) 由于某种原因具有不正确的访问权限,因此 Windows 无法使用新创建的帐户将其复制到新配置文件。修复该问题后,我成功登录。

另一个问题是,您必须在将用户从管理员中删除后将其添加到“用户”组。下面这行代码帮我做到了这一点:

net localgroup "Пользователи" "$env:username" /add

相关内容