Azureのリモートデスクトップで拡張子を表示する


みなさんはWindowsエクスプローラで拡張子を表示するようにしてますか?

拡張子を表示するように設定変更するには、
[コントロールパネル] → [フォルダーオプション] → [表示]タブ → [登録されている拡張子は表示しない]のチェックをはずす
という少々面倒な手順が必要です。

ローカルのPCでなら最初に1度だけその設定をすれば済みますが、Windows AzureではDeployやReimageする度に初期状態に戻るので、検証を繰り返す場合など、リモートデスクトップで接続したときにこの操作を何度もしなければいけないことがしばしばあります。

このわずらわしい設定変更から解放されるために、Deploy時に自動でこの設定をしてみましょう。

  1. startup.cmdファイルを作成します。
    プロジェクトのルートフォルダにstartup.cmdファイルを作成します。
    全てのユーザーのスタートアップフォルダに、拡張子を表示するレジストリ変更をするバッチファイルを作成するスクリプトです。

    echo %systemroot%\system32\reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f > "%systemdrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\HideFileExt.cmd"
    echo del "%systemdrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\HideFileExt.cmd" >> "%systemdrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\HideFileExt.cmd"
    
  2. startup.cmdファイルの「出力ディレクトリにコピー」プロパティを「常にコピーする」に変更します。
  3. ServiceDefinition.csdefファイルにStartup Taskでstartup.cmdを管理者権限で実行するように記述します。
      <WebRole name="WebRole1">
          :
        <Startup>
          <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple" />
        </Startup>
      </WebRole>
    

これでDeployすればエクスプローラで拡張子が表示されるようになっています。
※接続直後にエクスプローラで確認すると拡張子が表示されていないことがありますが、F5キーなどで最新の状態に更新すれば表示されます。


タグ: , ,


コメントをどうぞ