Я пытаюсь получить точный размер профиля в машине Windows.
ниже мой код и O / P
$profiles = Get-ChildItem C:\Users | ?{Test-path C:\Users\$_\NTUSER.DAT} | Select -ExpandProperty Name
foreach($profile in $profiles)
{
$largeprofile = Get-ChildItem C:\Users\$profile -recurse | Measure-Object -Sum length | Select -ExpandProperty Sum
$largeprofile = [math]::Round(($largeprofile/1MB),2) + "MB"
if($largeprofile -lt 20){Continue}
$object = New-Object -TypeName PSObject
$object | Add-Member -MemberType NoteProperty -Name Name -Value $profile
$object | Add-Member -MemberType NoteProperty -Name "Size(MB)" -Value $largeprofile
($object | fl | Out-String).Trim();Write-Output "`n"
}
O / P
Имя: admin
Размер (МБ): 34,62
Однако точный размер папки составляет 181 МБ, PowerShell не может прочитать все папки и файлы внутриродительская папка, как я могу получить точный размер, который отображается в свойствах папки.
Примечание: Для папок, отличных от папки профиля, o / p является правильным.