Windowsでプログラミングするときにうんざりするものの一つに、文字コード(テキストエンコーディング)があるとおもいます。
Windows10にアップグレードしてBash on ubuntu on Windows(以下BoW)もできて、以前のようにlinuxをデュアルブートさせてみたいなことも必要がなくなりました(PC再起動してOS切り替える手間を考えたらBoW導入したほうがラク)。
#動機
さて、本題です。
JavaScriptの勉強をしてた時に、ユーザーフォルダ名が漢字だと文字化けして絶対パスだと入らない…?
(index.htmlは相対パスでいいが、vscodeのデバッガが生成するlaunch.jsonは絶対パスじゃないとだめっぽい)
以前にもC言語書いてたときにもこんなことがあったような…?
じゃあユーザーフォルダ名を変更しちゃえ。
というわけで、では早速、手順の説明に入ります。
なお、本稿は相当ハゥトゥー色が強く、私も浅識ゆえ、読みにくいところがあるかと思います。
ご了承ください。
とその前に、復元ポイントの作成はお忘れなきよう。
#環境
OS: Windows 10 Home Insider Preview(build 17046.1000)
#手順
2通りのやり方があります。
1つはAdministratorアカウントを必要としない方法。しかしこれはあとのファイル移動が面倒で私は不採用としました。(手順1)
もう1つはAdministratorアカウントを必要とする方法。こちらはダメージが少ないので私はこちらを採用しました。(手順2)
###手順1
- 「設定」→「アカウント」→「ユーザーの情報」からMicrosoftアカウントによるログインからローカルアカウントでのサインインに変更する。
- 「設定」→「アカウント」→「家族とその他のユーザー」からその他のユーザーをこのPCに追加する。(「このユーザーのサインイン情報がありません」「Microsoft アカウントを持たないユーザーを追加する」を順にクリックして新しいユーザー名・パスワードを設定)
- 「設定」→「アカウント」→「家族とその他のユーザー」から、新しく作ったユーザーのアイコンをクリックして「アカウントの種類の変更」から管理者権限を付与する。
- すると管理者権限を持った新しい名前のユーザーが出来ましたね。あとは旧アカウントのユーザーフォルダからファイルを移動して完了です。
この手順だと、おそらくすべてのユーザーにインストールしていないソフトウェアは新しいユーザーでサインインした場合、スタートメニューに表示されずProgramFilesを漁らないといけなくなると思います。非常に面倒です。
そこで手順2ではアカウントを変えずに名前だけ変えたいと思います。
###手順2
- 「設定」→「アカウント」→「ユーザーの情報」からMicrosoftアカウントによるログインからローカルアカウントでのサインインに変更する。
-
Windowsキー+Xキーで表示されるメニューの中から管理者権限のコマンドプロンプトを選び、
net user administrator /active:yes
と入力しAdministratorアカウントを有効にして、スタートメニューから自分のアイコンをクリックしサインアウトした後、Administratorのアカウントでサインインする。 - エクスプローラーからユーザーフォルダの名前を変更する。1
- Windowsキー+Rキーで
regedit
と入力しレジストリエディタを起動させる。HKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows NT -> CurrentVersion -> ProfileList
と階層を降りていき、旧ユーザーフォルダのパスの書かれたレジストリを探して新しいユーザーフォルダのパスに書き換える。 - PCを再起動して新しいユーザー(Administratorではない方)でサインインし、先程同様に管理者権限でコマンドプロンプトを起動させ、
net user administrator /active:no
と入力してAdministratorアカウントを無効にして終了です。
#結果(影響)
簡潔に言えば、ユーザーフォルダ名を含む絶対パスを参照するアプリに影響が出ます。
1.iTunesの楽曲がすべて吹っ飛んだ
といっても参照できないだけで元ファイルは残っているので読み込み直しさせればいいだけです。
2.「最近表示したファイル」的なのが揃いも揃ってみんなだめ。
これは私は特に問題なかったです。
3.絶対パスで読み込ませてたTeXファイルがコンパイルできない。
当たり前ですね。そもそも相対パスでincludeさせましょう。
これ以外は特に問題がなかったことに正直驚いています。フォルダのショートカットも書き換わるとかびっくりしました。
-
ここが一番苦労しました。憎きWIndows Search(SearchProtocolHost.exe)…そうですこいつがユーザーフォルダにずっとアクセスして、フォルダ名の変更を妨げた犯人。再試行を連打しましょう。(リソースモニターからフォルダアクセスを監視しながらすると効率が良いです。) ↩