Windows7(たぶん8も10も)を狭い領域でなんとか動かす方法(4

2017年7月16日

その3の続きです。

バッチファイルでファイルを移動したらWindowsを起動します。
おそらくはようこそ画面までは行くと思います。
ところが、プロファイルが見つからないと出てログオンできない事があります。

これはどういうことかというと、インストーラーでブートしたときとドライブ文字が異なってしまうことがあるからです。そのため移動したUsersフォルダが見つからないというわけです。

こういうときに効くのが、「コンピューターの簡単操作」をコマンドプロンプトに置き換えてしまうという小技です。
プロファイルが見つからない、と言われてしまったらここからコマンドプロンプトを起動してdiskpartコマンドを起動し設定し直します。

assign letter=[ドライブ文字] ですね!

> diskpart

> list disk
> list vol
> select disk 1

> assign letter=g

いちどWindowsが起動した状態で設定すればコロコロ変わることはありません。
このまま再起動すればちょっとログオンできるはずです。

 

レジストリを設定する

さてProgramDataはシンボリックリンクで移動されてはいますが、念のためレジストリも変えておきます。
でも、レジストリを変更するのは面倒だし失敗しやすいのでツールを使います。

Windows レジストリ 高速化 アプリケーション

この中に「Program Filesフォルダの移動」という項目があるので実行するのです。
設定しても特に何も感じないと思います。
他にも良さそうな項目があったら実行してもいいと思います。
私は「ショートカットをつけない」というのを設定しています。
通常ショートカットを作ると「~へのショートカット」というのがついてしまいます。
これが地味につかなくなるだけなのですが、お気に入りです。

ソフトで対応できない部分は手動で変更します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
の以下のキーを変更します。

Default
%SystemDrive%\Users\Default → G:\Users\Default

ProfilesDirectory
%SystemDrive%\Users → G:\Users

ProgramData
%SystemDrive%\ProgramData → G:\ProgramData

Public
%SystemDrive%\Users\Public → G:\Users\Public

たくさんありますね・・・

一度設定したらエクスポートしておくと再び設定するときに楽です。

もしかしたらレジストリは不要かも?

レジストリを見ていて思ったのですが、
SystemDriveを変更すればいいような気がします。

ところがシステムのプロパティの環境変数の中にはSystemDriveが確認できません。

この場合は管理者権限でコマンドプロンプトを開いて設定します。
setxとやると再起動しても設定が継続されるようです。

setx SystemDrive=G: