Parece haver duas abordagens, ambas listadas neste pergunta / resposta no ServerFault. Eu prefiro muito mais a abordagem VBScript, que também é descrita aqui aqui .
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace("H:\").Self.Name = "your_label"
Então, eu criaria um pequeno script VBScript, que usa a letra da unidade como um parâmetro e o novo rótulo como o segundo. Meu VBScript está enferrujado, mas de acordo com essa pergunta do estouro da Stack Overflow , algo assim:
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(WScript.Arguments.Item(0)).Self.Name = WScript.Arguments.Item(1)
Se você chamar rename_drive.vbs, poderá executá-lo como
wscript rename_drive.vbs H:\ new_drive_name
É claro que, se você se sentir à vontade para criar objetos COM do Java, poderá fazer isso diretamente.