Windows10/11を手動でインストールする手順

この記事では正規のセットアップを避けて手動でWindowsをインストールする記事です。

## 手動インストールのメリット
- 正規のセットアップを回避して最小限のセットアップができる
- 本来インストールできないドライブ(容量問題, リムーバブルディスク等)にインストールできる
- windows11で実装された、CPU制限やメモリ制限、セキュアブートのチェックを回避できる
- ロマン(?)
## デメリット
- 基本コマンド操作なので正規のセットアップよりも困難
- 環境によっては途中で手順が異なり期待通りに進まないことがある


## 準備 & 手順
#### 1. インストールメディアの用意
この記事ではTiny11のインストールメディアを使います。
なお、通常のWindows10/11インストールメディアでも同様に動作するためそちらを用意しても構いません。

#### 2. インストールメディアの起動
お好みのpcで先ほど用意したメディアを起動します。


### インストールメディア上での操作
#### 3. コマンドプロンプトの表示
セットアップ画面に進んだら`Shift+F10`を押してコマンドプロンプトを表示させましょう。

#### 4. Diskpart & ドライブの初期化
diskpartを利用してインストール先のドライブを初期化します。

先ほどのコマンドプロンプト上で`diskpart`コマンドを打ち実行します。

##### 4.1. ディスクの選択
`list disk`を実行し、ディスク一覧を表示します。

ディスク一覧の中からインストール先のディスクを見つけ、`select disk <ディスク番号>`で選択します。

##### 4.2. ディスクのクリーンアップ
`clean`を実行しディスクを削除します。

※注意 先ほど選択したディスクの中身が消えます。

##### 4.3. GPTへの変換
`convert gpt`を実行してドライブをgptにします。

##### 4.4. EFIパーティションの準備
`create part efi size=500`を実行して500MBのEFIパーティションを作成。

作成後、`format fs=fat32 quick`でfat32としてフォーマット。

フォーマット後、`assign letter w`でドライブレター(W:\)を割り当てます。

##### 4.5 プライマリパーティションの準備
このパーティションにWindowsがインストールされます。

`create part primary`でプライマリパーティションを作成。

作成後、`format fs=ntfs quick`でntfsとしてフォーマット。

フォーマット後、`assign letter c`でドライブレター(C:\)を割り当てます。(すでに割り当てられている可能性あり)

##### 4.5 diskpartの終了
`exit`と入力してdiskpartを終了。

終了後はコマンドプロンプトに戻ります。

#### 5. sourcesディレクトリへの移動
`cd /d D:\sources`を入力して指定のディレクトリに移動します。

※ D:\ドライブは環境によって異なります。複数のドライブがある場合はD:\以外の可能性が高いです。別途diskpartを利用して`list disk`等で確認が必要です。

#### 6. Windowsのコピー
`dism /Get-ImageInfo /imagefile:install.wim`を入力して、含まれているイメージを表示します。

ここでインストールしたいエディションの一覧が確認できます。
インストールしたいエディションのindexを後ほど利用するので覚えておいてください。

※ 環境によってはイメージファイルの`install.wim`は`install.esd`というファイル名に変わっている場合があります。

`dism /apply-image /imagefile:install.wim /index:<エディションのindex> /applydir:C:\`を入力して、C:\にコピー。
`<エディションのindex>`は先ほどのindexを参照。
コピーには数分かかる場合があります。

#### 7. EFI書き込み
`bcdboot C:\Windows /s W:`を入力してEFIを作成。

ここで必要なブート ファイルが作成されます。

#### 8. レジストリエディタの利用
コピーされたwindowsのレジストリを変更してセットアップ時のOOBEの実行を回避します。

※ この後のセットアップがうまく行かない場合は**8. レジストリエディタの利用**をスキップすることをおすすめします。

##### 8.1. レジストリエディタの起動
`regedit`と入力してレジストリエディタを起動。

##### 8.2. ハイブの読み込み(SOFTWARE)
`HKEY_LOCAL_MACHINE`をクリックし、上部の`ファイル` >> `ハイブの読み込み...` をクリックします。

`ファイル名`に`C:\windows\system32\config`と入力し、Enterキーを押します。
`SOFTWARE`を選択し開き、`SOFT`と名付けます。

##### 8.3. ハイブの読み込み(SYSTEM)
先ほどと同様に、
`HKEY_LOCAL_MACHINE`をクリックされた状態で、上部のファイル >> ハイブの読み込み... をクリックします。

`SYSTEM`を選択し開き、`SYS`と名付けます。

##### 8.4. レジストリの変更
`HKEY_LOCAL_MACHINE\SOFT\Microsoft\Windows\CurrentVersion\Policies\System`に移動します。

右クリックして、`新規`>> `DWORD(32ビット)値`を選択し`VerboseStatus`と名付け、値を1にします。

※ 環境によってはすでに`VerboseStatus`は存在することがあります。

`EnableCursorSuppression`をダブルクリックし、値を0に変更します。

`HKEY_LOCAL_MACHINE\SYS\Setup`に移動し、
`CmdLine`をダブルクリック、文字列を`cmd.exe`に変更。

##### 8.5 レジストリエディタの終了。
変更が終わったらレジストリエディタを終了します。

#### 9. 再起動
コマンドプロンプト上で`wpeutil reboot`を入力し、コンピューターを再起動します。

### Windowsコピー後のセットアップ
#### 10. ユーザーのセットアップ
再起動後のセットアップでコマンドプロンプトが表示されるのを待ち、`oobe\windeploy`と入力します。

「準備しています/Getting Ready」などが表示されるのを待って、
`net user /add <ユーザー名>`を入力します(<ユーザー名>は自由に変更できます。)

`net localgroup /add users <ユーザー名>`と
`net localgroup /add Administrators <ユーザー名>`
を入力し、ローカルグループに追加します。

#### 11. レジストリの変更
`regedit`と入力しレジストリエディタを起動。

`HKEY_LOCAL_MACHINE\SYSTEM\Setup`に移動。

`OOBEInProgress`をダブルクリックし、値を0に変更。
`SetupType`を0に変更。
`SystemSetupInProgress`を0に変更。

regeditを閉じて、コマンドプロンプト上で`exit`と入力します。

#### 12. セットアップ後
コマンドプロンプトを閉じた後は環境によって表示が異なります。
私の場合は「デバイスのプライバシー設定」がすぐに来ましたが、「Windows Modules Installer の処理が完了するのをお待ちください」などと表示された場合は、最低5分待ってからコンピューターを強制的に再起動します。

## おまけ
### Administratorユーザーを利用する
本来ではWindows Serverなどで使われるユーザーAdministratorですが、Home版やPro版でも利用可能です。

**手順10. ユーザーのセットアップ**時にユーザーを作成せずに、Administratorを有効にし、セットアップ後にログインします。

`net user administrator /active:yes`を入力し、Administratorユーザーを有効化。

`net localgroup /add users administrator`を入力し、ローカルグループに追加。

後は**手順11**から同様に従ってください。