背景
日本語ユーザ名でWindowsのユーザを作成すると、ユーザフォルダ(C:\Users{ユーザ名})も日本語で作成されてしまいます。
日本語のフォルダ名だとアプリケーションによっては不具合が生じることもあったので、英語のフォルダ名に変更を実施しました。
注意点
- 色々と面倒で、レジストリを修正する必要がありリスクの高い方法なので、実施する場合は自己責任でお願いします。
- 特にユーザ名が固有名詞や日本語名でない場合は、レジストリエディタで文字列を一括置換する場合に、置換する必要のない文字列まで置換してしまう可能性が高いので、実施はお勧めしません。
- ユーザ作成直後であれば、ユーザを作り直す方が楽ですかも知れません。
対応方法
下記の流れでのように実施しました。
- How to Change User Folder Name in Windows 10 – 2 Ways (minitool.com)の記事を参考に
- コマンドプロンプトで
net user Administrator /active:yes
と打ってAdministratorユーザを一時的に作成 - ログアウトして作成したAdministratorアカウントでログイン
- CドライブのUsersフォルダ配下にある対象のユーザ名のフォルダを、変更したい名前に修正
- レジストリエディタを開いてHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<User SID>\ を検索して、ProfileImagePathに登録されているフォルダ名を修正。
- netplwiz を実行してユーザ名を変更。Microsoftアカウントと紐づいている場合、表示されるユーザ名は変更できないのでスキップしてOK。
- Administratorアカウントからログアウトして、ユーザ名を変更し終わったアカウントでログイン
net user Administrator /active:no
とコマンドプロンプトに入力して、Administratorアカウントを削除。
- コマンドプロンプトで
- 環境変数の修正
- 特に環境変数のPathにユーザフォルダが含まれている場合、ユーザ個人でインストールしたアプリケーションを実行できなくなので、修正は必須です。
- Windows 10のタスクバーのテキストボックスに「advanced system」と入力してSystem Propertiesウィンドウを開き、Environment Variableから環境変数内に使われているユーザ名を新しいユーザ名に置換。
- (リスクのある変更なので色々わかっている人向け)レジストリ内の旧ユーザ名の文字列を新しいユーザ名に置換。
- レジストリ内のユーザ名を置換しないと、コンテキストメニューに表示されるはずのプロレグラムが表示されなかったり、Windows Firewallや、Windows Searchにゴミ設定が残ったりします。
- Windowsデフォルトのレジストリエディタでは、文字列の一括置換などができないので、Registry Finder (registry-finder.com)などのソフトウェアを使うことをお勧めします。
- レジストリのバックアップを取っておくことをおすすめします。
- またレジストリ内でOwnerがTrusted InstallerやSystemがOwnerになっているエントリは編集や削除できないので、Ps Execというツールからレジストリエディタを起動する必要があります。
psexec -i -d -s {実行したいレジストリエディタのパス}
- 基本は文字列置換で、すでに同一キーがあるといわれて文字列置換が失敗する場合のみキーを削除するという方法が良いと思います。
(補足) Registry Finderの使い方
Registry Finderの使い方の簡単な説明を載せておきます。3rd party製のソフトなので使用も自己責任でお願いします。
Registry Finder (registry-finder.com)から、ソフトウェアをダウンロード。
ダウンロードして解凍したフォルダ内で下記のRegistryFinder.exeを実行(System権限で実行したい場合は、前述のようにコマンドライン上からpsexecを通して実行する必要あるので注意!)
Registry Finderが起動したら、虫眼鏡の検索アイコンをクリック。
検索ウィンドウが開くので検索したい文字列を入力。Search Optionsのところで検索対象を絞れるので必要に応じて選択。
「Find」ボタンを押して検索を実行すると検索結果が表示されるので、下記のキャプチャの様に「Edit」>「Replace in Find Results...」を選んで、置換したい文字列を入力して置換を実行してください。一度置換してしまうと元に戻せないので、慎重に実行してください。
コメント