新しいユーザーを追加するために 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 は新しく作成したアカウントを使用して新しいプロファイルにコピーできませんでした。これを修正した後、正常にログインできました。

もう 1 つの問題は、ユーザーを管理者から削除した後、そのユーザーを「ユーザー」グループに追加する必要があることです。次の行でそれができました。

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

関連情報