ドライブ文字をコマンドやバッチで変更する

ドライブ文字(ドライブレター:Windows起動ドライブのc:など)は、スタートボタンを右クリックして起動する「ディスクの管理」を用いてGUIで設定可能ですが、コマンドだけで設定したい場合もあるでしょう。

もちろん、コマンドのみを用いてドライブ文字を変更することは可能です。ただし、コマンドを使用する目的は、単にキーボードのみで設定することではなく、ドライブ文字を変更するスクリプトを作成して、ダブルクリック一発で実行したり、起動時に自動実行することでしょう。

まず、キーボードを用いて手動でドライブ文字を変更する方法をご紹介します。まず、「コマンド プロンプト」や「Windows Terminal」を開いて「diskpart」と入力します。ユーザ アカウント制御により「このアプリがデバイスに変更を加えることを許可しますか?」と出ますので、「はい」を選ぶとdiskpartが起動します。コマンドとその解説は以下のようになります。

list volume
select volume <volume番号>
assign letter <ドライブ文字>

list volumeでボリュームの一覧を表示できます。ドライブ文字がついていない領域も表示されます。ドライブ文字をつけたいボリュームをselect volumeで選択します。assign letterでドライブ文字を付与します。

バッチ処理でdiskpartを実行する方法

diskpartを起動してからコマンド入力しているのでバッチ処理は単純には行えませんが、バッチ処理を実行するための仕組みは用意されています。難しいものではなく、diskpartのコマンドを格納したテキストファイルを用意し、以下のようなコマンドまたは、それを格納したバッチファイルを実行するだけです。

diskpart /s <diskpartコマンドの入ったファイルのパス付きファイル名>

パス付きのファイル名にすることに気をつけてください。

また、このときでもユーザ アカウント制御が出ます。ただし、タスクスケジューラを用いて「最上位の特権で実行する(I)」と設定してする場合はユーザ アカウント制御は表示されません。

diskpart /s …が書かれたバッチファイルを「管理者として実行(A)」により実行しても、バッチファイルに対してショートカットを作りプロパティの中にある「管理者として実行」を有効にして実行しても同様です。

Windows 11でSDカードなどのドライブ文字が固定できない

Windows 10は、内蔵ストレージやUSB接続HDDだけでなく、SDカードのドライブ文字(ドライブレター:Windows起動ドライブのc:など)も、ちょっとした工夫で固定することができました。ところが、Windows 11では、SDカードのドライブ文字は、固定したつもりでも、再起動すると勝手に空いている先頭のアルファベットに割り当てられてしまいます。例えば、SDカードのドライブ文字をx:に固定しても、再起動すると、c:とd:が使われている状態ならe:が割り当てられてしまいます。完璧ではありませんが、これを解消する方法を2つご紹介します。

  • マウントする
  • タスクスケジューラとコマンドによりWindows起動時にドライブレターを変更する

マウントする

マウントは簡単で確実ですが、何らかのフォルダの下にドライブの内容が来るという状況になります。具体的な操作方法は、

Windowsでストレージをフォルダの下に置いてアクセスしたい

にあります。Windows 11においてもマウント場所は勝手に変更されないようです。マウント先をドライブのルートにするのは不可能で、何らかのフォルダの下にしかマウントすることはできません。何らかのフォルダの下でも問題ないなら、これによってドライブの固定が事実上実現できます。

タスクスケジューラとコマンドによりWindows起動時にドライブ名を変更する

こちらはマウントに比べると手間が相当にかかる上に、状況により確実性がありません。ここでは、SDカードはWindows起動時にすでに挿入されていることを前提として、タスクスケジューラとコマンドを使用する方法をご紹介します。コマンドの作成は、

ドライブ文字をコマンドやバッチで変更する

を参考にバッチファイルを作成してください。

  1. 「スタート」ボタンを右クリック→「コンピュータの管理」をクリックして「コンピュータの管理」を開く。
  2. 一番左のペインの「コンピュータの管理(ローカル)」下の「システム ツール」下の「タスク スケジューラ」を右クリック→「タスクの作成…」をクリックし「タスクの作成」ダイアログを表示する。
  3. 「全般」タブで、「名称」に適当な名称、「ユーザがログオンしているかどうかにかかわらず実行する」をチェック、「最上位の特権で実行する」をチェックする。
  4. 「トリガー」タブで、「新規…」ボタンをクリックして「新しいトリガー」ダイアログを表示する。
  5. 「タスクの開始(G)」で「スタートアップ時」を選択し、「OK」ボタンをクリックする。
  6. 「新しいトリガー」ダイアログで「OK」ボタンをクリックする。

となります。今回は単純にWindows起動前にSDカード挿入というような状況を想定しましたが、SDカードの使用スタイルにより、「タスクの開始(G)」の内容を適切に選択すると良いでしょう。