Get-PSDrive
返回已用磁盘空间的负数。
PS C:\Users\thomas> Get-PSDrive
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
[...]
H -782,81 1172,81 FileSystem \\server\fileexchange
[...]
这有什么特殊含义吗?
我查阅了帮助(Get-Help 'Get-PSDrive' -ShowWindow
),但找不到解释。
我知道有关 Get-Process 的类似问题原因是溢出。这里也是一样吗?有解决方法吗?
正如@Andrew Morton 在评论中要求的那样:
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
[...]
我读到的是 223 GB 可用空间、1253 GB 总可用空间和 418 GB 总大小。如果我简单地从总大小中减去总可用空间,我会得到 -835 GB,这与 Powershell 值相匹配(考虑到在此期间添加了一些数据)。
Windows 资源管理器显示的内容如下:
答案1
这意味着您的驱动器超出了您所使用的功能所支持的值。
示例:您尝试使用仅支持 2TB 的功能读取 3TB 驱动器,将导致以下结果:
3TB 硬盘实际可用空间为 2.72TB。由于超出 2TB,剩余空间将以负值显示(因此结果为 -0.72TB)。
如果超过 4TB,它将再次为正值,如果超过 6TB,它将再次为负值。这种情况会一直重复,但原因是您使用的功能限制在 2TB。
这对于读取驱动器空间的任何功能都是有效的,并且其他值也可能存在限制(例如,对于尝试读取 NTFS 大文件的旧功能,限制为 4GB)。