powershell 命令列出所有用户,他们的主目录+大小
powershell command to list all users, their home directories + sizes
我需要一个脚本或命令来列出计算机上的所有用户以及他们的主目录和主目录的大小。我只能为登录的用户执行此操作。我还设法获得了所有用户的列表:
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Select-Object @{n='UserName'
e={$_.Name}}
但我不知道如何从该列表中获取主目录和大小。
提前致谢
这是一个 powershell 循环,它输出具有您要查找的属性(Name、LocalPath、FolderSize)的对象,格式为 table。这结合了一些技术来获得您正在寻找的值。
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
我需要一个脚本或命令来列出计算机上的所有用户以及他们的主目录和主目录的大小。我只能为登录的用户执行此操作。我还设法获得了所有用户的列表:
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | Select-Object @{n='UserName'
e={$_.Name}}
但我不知道如何从该列表中获取主目录和大小。
提前致谢
这是一个 powershell 循环,它输出具有您要查找的属性(Name、LocalPath、FolderSize)的对象,格式为 table。这结合了一些技术来获得您正在寻找的值。
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