我們的(相當小的)環境有 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.
我們沒有網域,只有一堆具有本機帳戶的電腦(我知道,我知道)。我究竟做錯了什麼?
答案1
事實證明,由於某種原因,我的預設設定檔資料夾 (Users\Default) 的存取權限不正確,因此 Windows 無法使用新建立的帳戶將其複製到新設定檔。修復後我成功登入了。
另一個問題是,在將使用者從管理員中刪除後,您必須將其新增至「使用者」群組。下面的行為我做到了這一點:
net localgroup "Пользователи" "$env:username" /add