Chefito escribió:Para cambiar el nombre de la Unidad autoit tiene una función: DriveSetLabel. Y para obtenerlo DriveGetLabel.
Si quieres cambiar el label de la unidad donde está instalado windows, requieres ejecutar el código en modo administrador. Utiliza para eso #RequireAdmin.
Para hacerlo con WMI mira este código.
Código: Seleccionar todo
#RequireAdmin
Const $wbemFlagReturnImmediately = 0x10
Const $wbemFlagForwardOnly = 0x20
Local $Unidad=@HomeDrive
$objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Volume WHERE DriveLetter = '" & $Unidad & "'", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
For $objItem In $colItems
$objitem.label="Cambio"
$objitem.put_
Next
Saludos.
Gracias Chefito, ya habia probado con
$objitem.put() pero no funciono, voy a probar con guión bajo. En realidad no quiero cambiar el label del disco, uso este ejemplo para no romper nada xD.
Tambien encontre una forma más linda y resumida.
Get-WmiObject -Class Win32_Volume -Filter "DriveLetter='C:'" | Set-WmiInstance -Arguments @{Label = "NUEVO LABEL"}
El problema es que solo funciona desde PowerShell (ya lo probe y anda de 10), pero no se como hacerlo desde AU3, intente todas las formas para poder llamar a powershell.exe pero nada :S. En un rato te aviso como me fue
EDITO:
Funciona perfecto con
$objitem.put_. Voy a ver si puedo hacer andar la version con PowerShell. GRACIAS!