Powershell – Set Disk Volume Label

Facebooktwittermail

ネットワークドライブを接続するとマイコンピュータにアイコンが表示されますがボリュームラベルは通常UNCが表示されます

Image20130914123624

このボリュームラベルをPowershellで変更する方法です


まず見つけたのがここです
Hey, Scripting Guy! Blog
Change Drive Letters and Labels via a Simple PowerShell Command
http://blogs.technet.com/b/heyscriptingguy/archive/2011/03/14/change-drive-letters-and-labels-via-a-simple-powershell-command.aspx

Win32_Volume WMI classを利用して変更する方法ですがローカルドライブに対してのみ有効でネットワークドライブはダメでした
またこの方法はPowershellを管理者権限で動作させる必要があります

ネットワークドライブは表示されない

Win32_Volume WMI classの一部の機能を提供するWin32_LogicalDisk WMI classを利用する方法です。このClassはVolumeNameの変更はできますが、ドライブレターとインデックスの有効化はできません

この方法を試してみると、やはり管理者権限が必要なためにputでエラーになってしまいました
実際の運用では管理者権限が無くても変更出来る方法が必要です

世界中を探しまわったところ下記の情報を見つけました
How to change drive label using Powershell?
http://stackoverflow.com/questions/9395153/how-to-change-drive-label-using-powershell

ComObjectを利用する方法です

Try Like this using comobject for label a drive:
$a = New-Object -ComObject shell.application
$a.NameSpace( “M:\” ).self.name = “server1_bin”
in any case you need run the console as a user with administrative rigth

実際に試してみました

コマンドを入力した時点で即座に値が反映されました
また場合によっては管理者権限が必要とありますが、ネットワークドライブはプロファイルなので必要無いと思います
Image20130914132130

ちなみにレジストリは下記になります

Thank you. C.B. You are great.
http://stackoverflow.com/users/520612/c-b

Leave a Reply