2017-05-19 5 views
1

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.

+0

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.) –

+0

Possible isssue hardware? Puisque vous ne le voyez que sur cette clé USB. –

Répondre