Powershell用于监视磁盘使用情况-脚本查询的性能

Powershell用于监视磁盘使用情况-脚本查询的性能,powershell,size,disk,Powershell,Size,Disk,我正在开发以下powershell,以报告我的磁盘使用情况,并告诉我哪些文件夹的大小正在改变,等等 Get-ChildItem -Path "C:\" | Select-Object Name, @{ Name="Size"; Expression= { [Math]::Round( ((($_ | Get-ChildItem -Recurse | Mea

我正在开发以下powershell,以报告我的磁盘使用情况,并告诉我哪些文件夹的大小正在改变,等等

Get-ChildItem -Path "C:\" | 
Select-Object Name,
    @{ 
        Name="Size";
        Expression=
            { 
                [Math]::Round(
                    ((($_ | Get-ChildItem -Recurse | Measure-Object -Sum Length).Sum + 0) / 1GB)
                    , 2)
            }
    }
这个脚本真的很慢…为什么

度量对象每次查看文件夹时是否计算大小

有什么更好的方法可以做到这一点


感谢您列出C驱动器上的每个文件系统对象并测量其大小,这可能需要很长时间才能完成。两个备选方案(还有更多):

(Get-PSDrive c).Used/1gb

- and -

$cDrive = (New-Object -ComObject Scripting.FileSystemObject).GetDrive('C')
$used = ($cDrive.TotalSize-$cDrive.FreeSpace)/1gb
$used.ToString('N2')