O que significa um espaço em disco negativo no Get-PSDrive?

4

Get-PSDrive retorna um número negativo para o espaço em disco usado.

PS C:\Users\thomas> Get-PSDrive

Name           Used (GB)     Free (GB) Provider      Root                                                               CurrentLocation
----           ---------     --------- --------      ----                                                               ---------------                                                                                       
[...]                                                                                     
H                -782,81       1172,81 FileSystem    \server\fileexchange   
[...]

Isso tem um significado especial?

Eu procurei a ajuda ( Get-Help 'Get-PSDrive' -ShowWindow ), mas não consegui encontrar uma explicação.

Estou ciente de um problema semelhante em relação ao Get-Process onde o motivo é um estouro. É o mesmo aqui? Existe uma solução alternativa?

Como solicitado por @Andrew Morton nos comentários:

PS C:\Users\thomas> [System.IO.DriveInfo]::GetDrives() | Format-Table

Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace    TotalSize RootDirectory VolumeLabel
---- --------- ----------- ------- ------------------ --------------    --------- ------------- -----------
[...]
H:\    Network NTFS           True       223231537152  1253398024192 418759311360 H:\           Data       
[...]                   

Eu li isso como 223 GB de espaço livre disponível, 1253 GB de espaço livre total e tamanho total de 418 GB. Se eu simplesmente subtrair o espaço livre total do tamanho total, recebo -835 GB, o que corresponde ao valor de Powershell (considerando que alguns dados foram adicionados no entretanto).

Veja o que o Windows Explorer diz:

    
por Thomas Weller 07.05.2018 / 09:04

1 resposta

1

Isso significa que sua unidade excede a suportada pela função que você usou valor.

Exemplo: um drive de 3TB que você tenta ler com uma função que suporta apenas 2TB resultará no seguinte:

A unidade de 3 TB é, na verdade, 2,72 TB em espaço utilizável. Por exceder 2TB, o resto do espaço será como valor negativo (então o resultado será -0.72TB).

Se você exceder 4 TB, será um valor positivo novamente e, se exceder 6 TB, ele será novamente negativo. Isso se repete para sempre, mas a causa é que a função que você usou é limitada a 2 TB.

Isto é válido para qualquer função que leia espaço em disco e as limitações podem existir em outros valores também (como 4GB para funções mais antigas que tentam ler arquivos grandes NTFS).

    
por 07.05.2018 / 10:29

Tags