
¿A través de Powershell no se puede formatear el disco con el sistema de archivos NTFS?
El siguiente código funciona hasta el intento de formato. El script se ejecuta como administrador. No el sistema de archivos es NTFS. El tamaño de bloque es el predeterminado para el disco y NTFS. Constantemente me deniegan el acceso al intentar formatear. El entorno es Windows 11 completamente parcheado/actualizado en la fecha de esta publicación.
Clear-Disk -Number 6 -RemoveData -Confirm:$false
Initialize-Disk -Number 6 -PartitionStyle GPT -Confirm:$false
New-Partition -DiskNumber 6 -UseMaximumSize -DriveLetter 'T'
Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
Ejemplo...
PS C:\WINDOWS\system32> Clear-Disk -Number 6 -RemoveData -Confirm:$false
PS C:\WINDOWS\system32> Initialize-Disk -Number 6 -PartitionStyle GPT -Confirm:$false
PS C:\WINDOWS\system32> New-Partition -DiskNumber 6 -UseMaximumSize -DriveLetter 'T'
DiskPath: \\?\usbstor#disk&ven_hitachi_&prod_dk23aa-60&rev_0000#000000000000&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
PartitionNumber DriveLetter Offset Size Type
--------------- ----------- ------ ---- ----
2 T 16777216 5.58 GB Basic
PS C:\WINDOWS\system32> Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
Format-Volume : Access Denied
Activity ID: {adc29ae6-3193-0002-4318-dbb09331d901}
At line:1 char:1
+ Format-Volume -DriveLetter 'T' -FileSystem NTFS -NewFileSystemLabel ' ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (StorageWMI:ROOT/Microsoft/...age/MSFT_Volume) [Format-Volume], CimException
+ FullyQualifiedErrorId : StorageWMI 40001,Format-Volume
Si cambio el sistema de archivos para que diga FAT32, el comando de formato funciona. Esto no tiene ningún sentido para mí. Cuando el script se ejecuta como administrador.
Ejemplo usando otro sistema de archivos...
PS C:\WINDOWS\system32> Format-Volume -DriveLetter 'T' -FileSystem FAT32 -NewFileSystemLabel 'Test' -AllocationUnitSize 4096
DriveLetter FriendlyName FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining Size
----------- ------------ -------------- --------- ------------ ----------------- ------------- ----
T TEST FAT32 Fixed Healthy OK 5.57 GB 5.57 GB
Si sigo exactamente los mismos pasos a través de la interfaz de usuario o del símbolo del sistema, digo vía diskpart
, no hay error. Cualquier sugerencia es bienvenida.
Respuesta1
En realidad, esto resultó ser un escenario bastante retorcido. Después de algunas pruebas exhaustivas. De hecho, llevé la interfaz de usuario (Administrador de discos) al Explorador (Administrador de archivos) para replicar los errores de acceso denegado. Parecía que PowerShell podía solucionar el problema de forma más rápida y sencilla. Algún proceso intentaba tomar el control exclusivo del disco en cuestión en segundo plano. Entonces, deshabilité Defender, MalwareBytes, todas las aplicaciones de respaldo e incluso me aseguré de que no se estuviera ejecutando ningún proceso de captura de puntos de restauración y que el problema de acceso denegado desapareciera en algún momento. Lo único que no intenté fue reiniciar por completo.
Anteriormente, había tomado el control total del disco en cuestión, o eso pensaba, reemplacé por completo todos los permisos de seguridad, tomando la propiedad total, etc., en las pruebas, pero aún tenía el problema de acceso denegado. Todavía necesito rastrear el proceso específico que estaba tomando el control exclusivo del disco. Pero al menos parece ser un problema de entorno, no un problema de código con Powershell o el módulo de Almacenamiento.
Encontré otro problema extraño, algo de almacenamiento basado en USB, el disco de inicialización falla, con un error '...ya inicializado...'. Esto está documentado en varios lugares. Sin embargo, la solución típica recomendada de realizar un reinicio a través de Reset-PhysicalDisk no parece funcionar de manera consistente en Windows 11 para algunos dispositivos de almacenamiento USB. Parece que algunos dispositivos de almacenamiento USB simplemente no se comportan igual, supongo que no es de extrañar.
Lo que parece funcionar, al menos con los 15 dispositivos de almacenamiento USB que tengo, y varias marcas y modelos de dispositivos SSD y HDD, conectados vía eSATA, SATA, etc., es lo siguiente:
#
Clear-Disk -Number $theNumber -RemoveData -Confirm:$false
# Documentation Suggests Reset, However Seems To Do Nothing On Some USB Storage Types...
Reset-PhysicalDisk -FriendlyName (Get-PhysicalDisk -DeviceNumber $theNumber).FriendlyName
# Initalize-Disk Fails On Some USB Storage Types, Returns Initialization Is Already Complete...
Initialize-Disk -Number $theNumber -PartitionStyle GPT -Confirm:$false -ErrorAction SilentlyContinue
#
New-Partition -DiskNumber $theNumber -UseMaximumSize -DriveLetter $theDrive | Out-Null
#
Format-Volume -DriveLetter $theDrive -FileSystem $theFileSystem -NewFileSystemLabel $theVolume -AllocationUnitSize $theSize -Force | Out-Null
Usar la opción de continuar silenciosamente es un poco complicado, pero todavía tengo que encontrar una manera de probar si un disco determinado está inicializado pero aún no formateado. La prueba de 'RAW' es insuficiente. Puedes tener un disco en las circunstancias adecuadas, en línea pero sin inicializar, es decir, sin formato RAW.
Si alguien tiene un fragmento de código de PowerShell para probar explícitamente un disco que está casi inicializado pero no en estado RAW, podría valer la pena compartirlo aquí.