我需要一个脚本或命令,列出计算机上的所有用户以及他们的主目录和主目录的大小。我只能为用户提供服务。我还设法获得所有用户的列表:
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Select-Object @{n='UserName'
e={$_.Name}}
但我不知道如何获得家庭目录,加上该名单中的大小。
提前致谢
答案 0 :(得分:2)
这是一个powershell循环,它输出具有您要查找的属性的对象(Name,LocalPath,FolderSize),格式化为表格。这结合了一些技术来获得您正在寻找的值。
Get-WmiObject win32_userprofile | % {
try {
$out = new-object psobject
$out | Add-Member noteproperty Name (New-Object System.Security.Principal.SecurityIdentifier($_.SID)).Translate([System.Security.Principal.NTAccount]).Value
$out | Add-Member noteproperty LocalPath $_.LocalPath
$out | Add-Member noteproperty FolderSize ("{0:N2}" -f ((Get-ChildItem -Recurse $_.LocalPath | Measure-Object -property length -sum -ErrorAction SilentlyContinue).sum / 1MB) + " MB")
$out
} catch {}
} | Format-Table