👥

Windows10でのユーザー名変更方法(ユーザーフォルダも・レジストリ編集)

2021/05/05に公開

私がスタッフをやっている jao Minecraft Server の Discord にて、とあるユーザーが Windows10 のユーザー名を変更しようとしてやらかしたので備忘録。

(かなりの技術力を要するのでエンジニア向け記事と想定していますが、もし違ったらごめんなさい)

注意事項

この記事ではレジストリを操作します。操作を誤ってしまったり、バージョンなどが違うなどの原因でコンピュータ自体が動作しなくなる可能性があります。
毎度のことですが、この記事に記載されている内容を実行し、発生したいかなる問題について執筆者は一切責任を負いません。自己責任でお願いします。

環境

  • OS: Windows 10 1903 (Build 18362.476)(winver コマンドで確認)
  • Registry Finder バージョン: 2.39

概要

ユーザーが 1 つしかなく、レジストリエディタで HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListProfileImagePath を編集し、再起動すると「アカウントにサインインできません」と表示される。本来であれば、ログインできる管理者権限のユーザーを一時的にもう 1 つ作りそっちで操作する必要があるが、今回は作らずにそのまま再起動し締め出されてしまった。

試したこと

丸数字のついている項目は今回有効だった行動です。あとで詳しく解説します。
x がついている項目は不必要な行動だったため、簡単な解説のみ記載します。

  • ① Windows のトラブルシューティングから、コマンドプロンプトを起動して notepad を開き、トラブルシューティング環境でどのドライブレターが Windows ドライブに割り当てられているかを調べる。
  • x Windows のトラブルシューティング環境下で Administrator を有効化
  • 通常の Windows 環境とトラブルシューティング環境は異なり、トラブルシューティング環境下で Administrator を有効化しても通常環境下で有効化されるわけではない。
  • (②) C:\Windows\System32\Utilman.exe をバックアップして、cmd.exe に置き換え(コピー)。
  • x C:\Windows\System32\sethc.exe をバックアップして、cmd.exe に置き換え(コピー)。
    • 今回の環境では固定キー機能が無効化されており。Shift を 5 回押しても反応なかったため実質的に意味のない行為に。
  • ③ ユーザーフォルダのフォルダ名を新しいユーザー名に変更。
  • ④ Windows のトラブルシューティングからセーフモードで再起動し、ユーザーにサインイン、Administrator を有効化。
  • x Administrator アカウントでレジストリエディタを用いて C:\Users\旧ユーザー名 から C:\Users\新ユーザー名 に手動で置き換え。
    • 100 を超える(環境によっては 1000 を超える)該当項目が合たため途中でキャンセル。フリーソフトを使うことに
  • ⑤ フリーソフト「Registry Finder」を用いてエクスポート、C:\Users\旧ユーザー名 から C:\Users\新ユーザー名 に置き換え。
  • Utilman.execmd.exe に置き換えていたのを修正。Administrator を無効化

詳細

① Windows のトラブルシューティングから、コマンドプロンプトを起動して notepad を開き、トラブルシューティング環境でどのドライブレターが Windows ドライブに割り当てられているかを調べる

  1. Windows サインイン画面の右下にある「電源ボタン」を開き、「再起動ボタン」を Shift を押しながら クリックすることで、トラブルシューティングに入ることができる。
  2. 再起動ボタンを Shift を押しながらクリックすると、「オプションの選択」画面になる。(端末によるが)「続行」「デバイスの使用」「トラブルシューティング」「PC の電源を切る」の選択肢があるので、 「トラブルシューティング」を選択 する。
  3. その次に、「この PC を初期状態に戻す」「詳細オプション」の選択肢があるので、「詳細オプション」を選択する。
    詳細オプション」を開くと、「コマンド プロンプト」の項目があるので、それを選択する。ログインが要求される場合があるので、ログインする。
  4. コマンドプロンプトが開いたら、notepad と打ち込んでエンターを押すとメモ帳が起動するため、「ファイル」→「開く」を押し、左側ナビゲーションバーの「PC」をクリックしたうえで Windows がインストールされているドライブを調べる。サイズや内容物などを確認して調べるとよい。たいていは C ドライブのままだろう。

② Utilman.exe をバックアップして、cmd.exe に置き換え

  1. ① から継続して、コマンドプロンプトで C:\Windows\System32\ ディレクトリ(フォルダ)に移動する。コマンドは cd /d C:\Windows\System32\
  2. バックアップとして、ren Utilman.exe Utilman.exe.org で名前を変更する。その後、copy cmd.exe Utilman.exe を実行しコマンドプロンプトで偽装する。
    なお、Utilman.exe は「コンピュータの簡単操作」の起動先アプリケーションなので、これをすることでサインイン画面でもコマンドプロンプトを開くことができる。(今回、当人の環境ではこれが成功せず開いても 5 秒程度で閉じてしまっていた)
  3. sethc.exe は固定キーのポップアップアプリケーションなので、サインイン画面で Shift を 5 回連続で押せば起動するというもの。

③ ユーザーフォルダのフォルダ名を新しいユーザー名に変更

  1. ①、② から継続して、コマンドプロンプトで C:\Users\ ディレクトリ(フォルダ)に移動する。コマンドは cd /d C:\Users\
  2. move 旧ユーザー名 新ユーザー名(例: ユーザー「ABC」の名前を「DEF」にする move ABC DEF)を実行しユーザーフォルダのフォルダ名を変更する。

④ Windows のトラブルシューティングからセーフモードで再起動し、ユーザーにサインイン、Administrator を有効化

  1. ③ から継続するのであれば、コマンドプロンプトのウィンドウを右上 × ボタンで閉じることで「オプションを選択」を開くことができる。「トラブルシューティング」→「スタートアップ設定」→「再起動」でセーフモードに入ることができる。
  2. 再起動後、「6」を押し「セーフモードとネットワークを有効にする」を実行する。
  3. そのあとまた再起動するため、そのあとで「サインインできないユーザー」にサインインする。サインインするとコマンドプロンプトが自動的に最大化画面で開く。
  4. net user administrator /active:yes を実行し、Administrator アカウントを有効化する。

⑤ フリーソフト「Registry Finder」を用いてエクスポート、旧ユーザーフォルダから新ユーザーフォルダに置き換え

フリーソフト「Registry Finder」 の「Archive 64-bit」からアプリケーションをダウンロードし、解凍。RegistryFinder.exe を起動する。
必要があるならば、Help から Language を選び、Japanese(日本語)化できる。
上部ナビゲーションバーの「編集(E)」→「検索 Ctrl+F」を選択するか Ctrl+F を押して検索ウィンドウを開き、「検索する値(F)」に C:\Users\旧ユーザー名 を入力する。(例: C:\Users\tomachi)
検索ボタンを押して検索し、検索完了後に「ファイル(F)」→「エクスポート(E)」で該当するレジストリを保存(バックアップ)する。保存先はデスクトップなど後からアクセスできる場所に保管しておくこと。保存名は問わない。
保存後、「編集(E)」→「検索結果を置換(L)」を押し、「検索する値(F)」に C:\Users\旧ユーザー名、「置換する値(P)」に C:\Users\新ユーザー名 を入力、入力内容に間違いがないことをよく確認の上「置換」をクリックする。
ここまで終わらせると、サインインできなかったアカウントでサインインできるようになっているはず。

⑥ Utilman.exe の cmd.exe に置き換えていたのを修正。Administrator を無効化

Utilman.exe を cmd.exe に置き換えたままにしておくと、サインインしなくても「コンピュータの簡単操作」のボタンを押すだけで管理者権限のコマンドプロンプトが使えてしまうというセキュリティがガバガバな環境になってしまうので戻さなければならない。また、Administrator もパスワードをかければ有効化したままでもかまわないが、基本的に Administrator アカウントを使うことはないので無効化しよう。
① 同様にトラブルシューティングからコマンドプロンプトを開き、次のコマンドをそれぞれ順に実行する。

cd /d c:\windows\system32
del utilman.exe
ren utilman.exe.org utilman.exe
net user administrator /active:no

上から、「現在いるフォルダ(カレントディレクトリ)を c:\windows\system32 に変更」、「utilman.exe を削除」、「utilman.exe.org から utilman.exe に名前変更」、「administrator を無効化」。
もし、sethc.exe を置き換えたのならば、次も実行するべき。

del sethc.exe
ren sethc.exe.org sethc.exe

参考サイトなど

GitHubで編集を提案

Discussion