読者です 読者をやめる 読者になる 読者になる

ユノミズム

オーディオ、音楽、投資ネタ

Windows7でsubstコマンドの実行に失敗する場合

コンピュータ

こんにちは、ゆのみんです。
Windowsにおいて、よく使うフォルダを仮想ドライブとして割り当てる"Subst"コマンドがあります。
しかし、Windows7の特定のパソコンにおいてこのコマンドを実行しても仮想ドライブに割り当てられないケースがありましたので、対処方法をまとめてみました。

現象

f:id:yunomin_s:20160309175333p:plain
まずはじめに発生する現象について確認してみましょう。
該当パソコンでは、Substコマンドをコマンドプロンプトから実行してみても、「'subst'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」というエラーメッセージが返ってきます。当然、エクスプローラから確認しても仮想ドライブは割り当てられていません。

管理者権限を疑ってみる

f:id:yunomin_s:20160309175343p:plain
こういう場合、大抵は管理者権限がない状態でコマンドプロンプトを実行しているケースが多いので「コマンドプロンプト」を右クリックして、「管理者として実行」を選んでみます。
f:id:yunomin_s:20160309175352p:plain
同じコマンド実行してみたところ、コマンド上はちゃんと仮想ドライブが割り当てられました。
f:id:yunomin_s:20160309175400p:plain
ところが、エクスプローラで確認すると仮想ドライブはできておりません。
なぜだ。。。

犯人は環境変数設定

管理者権限で実行しているのに、なぜかうまくいかない。
いろいろ調べているうちに以下のページが見つかり、環境変数を疑ってみることにしました。
d.hatena.ne.jp

Windowsのメニューから[コントロールパネル]->[システムとセキュリティ]->[システム]->[システム詳細設定]を選択して、[システムのプロパティ]->[詳細設定タブ]->[環境変数]をクリックします。
f:id:yunomin_s:20160309175409p:plain
ここでシステム環境変数のPathに「C:\Windows\system32;C:\WIndows;」が含まれているか確認してください。含まれていない場合は以下のように追加します。

%SystemRoot%\system32;%SystemRoot%;

環境変数を設定後、再び実行してみると

f:id:yunomin_s:20160309175419p:plain
環境変数を設定後は、コマンドプロンプトを管理者権限で実行する必要がなくなりました。
f:id:yunomin_s:20160309175427p:plain
やっと仮想ドライブを割り当てることができました。

まとめ

特定のパソコンでは、OSインストール直後のアカウント設定によって環境変数にシステムフォルダのパスが設定されないケースがあるようです。今回はSubstコマンドが実行できないという現象でしたが、システム関連のコマンドや操作に失敗する場合は環境変数を疑ってみるのもアリだと思います。