Fond:Windows Volume sans partition
Je travaille sur un script PowerShell pour automatiser l'installation à partir d'une clé USB via WinPE. Étant donné que les systèmes cible ont plusieurs lecteurs, chacun pouvant comporter deux partitions, Windows ne dispose plus de lettres de lecteur. Une partie de mon script désaffecte toutes les lettres de lecteur, puis réaffecte uniquement les disques nécessaires. À l'heure actuelle, j'attribue des lettres codées en dur à certaines partitions, mais j'ai rencontré un problème avec l'une des lettres qui ne sont pas désaffectées.
La question est que j'ai en quelque sorte un volume avec une lettre de lecteur attribuée, mais il n'y a apparemment aucune partition sous-jacente, et puisque Remove-PartitionAccessPath
nécessite un objet de partition, il n'y a aucun moyen de le faire à partir Powershell (sans avoir recours à diskpart
).
Voici la sortie diskpart
- vous pouvez voir le disque sélectionné n'a pas de partitions, mais a en quelque sorte un volume:
Microsoft DiskPart version 10.0.15063.0
Copyright (C) Microsoft Corporation.
On computer: MININT-6GI0UNM
DISKPART> list disk
Disk ### Status Size Free Dyn Gpt
-------- ------------- ------- ------- --- ---
Disk 0 Online 5589 GB 0 B *
Disk 1 Online 5589 GB 0 B *
Disk 2 Online 5589 GB 0 B *
Disk 3 Online 5589 GB 0 B *
Disk 4 Online 5589 GB 0 B *
Disk 5 Online 5589 GB 0 B *
Disk 6 Online 5589 GB 0 B *
Disk 7 Online 5589 GB 0 B *
Disk 8 Online 5589 GB 0 B *
Disk 9 Online 5589 GB 0 B *
Disk 10 Online 5589 GB 0 B *
Disk 11 Online 5589 GB 0 B *
Disk 12 Online 447 GB 0 B *
Disk 13 Online 447 GB 0 B *
Disk 14 Online 232 GB 0 B *
Disk 15 Online 29 GB 29 GB
Disk 16 Online 28 GB 0 B *
DISKPART> sel disk 15
Disk 15 is now the selected disk.
DISKPART> list part
There are no partitions on this disk to show.
DISKPART> detail disk
ATA Hypervisor USB Device
Disk ID: E0623CE6
Type : USB
Status : Online
Path : 0
Target : 0
LUN ID : 0
Location Path : UNAVAILABLE
Current Read-only State : No
Read-only : No
Boot Disk : No
Pagefile Disk : No
Hibernation File Disk : No
Crashdump Disk : No
Clustered Disk : No
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 20 E Removable 0 B Unusable
DISKPART>
Voici ce qui se passe lorsque je tente de retirer la lettre de Powershell:
PS X:\sources> Get-Volume -DriveLetter E | Remove-PartitionAccessPath -AccessPath "E:"
Remove-PartitionAccessPath : The input object cannot be bound to any parameters for the command either because the
command does not take pipeline input or the input and its properties do not match any of the parameters that take
pipeline input.
At line:1 char:29
+ ... t-Volume -DriveLetter E | Remove-PartitionAccessPath -AccessPath "E:"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (MSFT_Volume (Ob...rosoft/Wind...):PSObject) [Remove-PartitionAccessPat
h], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Remove-PartitionAccessPath
PS X:\sources> Get-Volume -DriveLetter E | fl *
OperationalStatus : Unknown
HealthStatus : Healthy
DriveType : Removable
FileSystemType : Unknown
DedupMode : NotAvailable
ObjectId : {1}\\MININT-6GI0UNM\root/Microsoft/Windows/Storage/Providers_v2\WSP_Volume.ObjectId="{63585070-
3cd2-11e7-b877-806e6f6e6963}:VO:\\?\Volume{635850c4-3cd2-11e7-b877-806e6f6e6963}\"
PassThroughClass :
PassThroughIds :
PassThroughNamespace :
PassThroughServer :
UniqueId : \\?\Volume{635850c4-3cd2-11e7-b877-806e6f6e6963}\
AllocationUnitSize : 0
DriveLetter : E
FileSystem :
FileSystemLabel :
Path : \\?\Volume{635850c4-3cd2-11e7-b877-806e6f6e6963}\
Size : 0
SizeRemaining : 0
PSComputerName :
CimClass : ROOT/Microsoft/Windows/Storage:MSFT_Volume
CimInstanceProperties : {ObjectId, PassThroughClass, PassThroughIds, PassThroughNamespace...}
CimSystemProperties : Microsoft.Management.Infrastructure.CimSystemProperties
PS X:\sources> Get-Volume -DriveLetter E | Get-Partition
PS X:\sources> $null -eq (Get-Volume -DriveLetter E | Get-Partition)
True
Powershell table Version:
PS X:\sources> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.15063.0
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.15063.0
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
I peut essayer d'obtenir plus de détails sur le contenu du disque en question si nécessaire.
Ce qui pourrait être à l'origine de cela? Y at-il une solution de contournement powershell?
Note: Je me rends compte qu'il vaudrait probablement mieux que Windows choisisse les lettres de lecteur au lieu de les coder en dur, mais je suis toujours curieux de connaître le volume mystérieux.
On dirait (quelle qu'en soit la raison) l'ensemble du dispositif est traité comme un seul volume plutôt que comme un disque qui devrait être partagée. Certains disques amovibles sont traditionnellement non partitionnés, par exemple des DVD et des disquettes. Y a-t-il une chance que ce soit un lecteur Blu-ray ou un appareil similaire? (Je pense que les lecteurs USB peuvent également être formatés en un seul volume, mais si tel était le cas, il devrait apparaître comme espace utilisé, et non comme espace libre.) –
Possible isssue hardware? Puisque vous ne le voyez que sur cette clé USB. –