Powershell获取用户拥有的文件的总大小

标签 powershell size

我需要一个powershell脚本,它将遍历系统中的所有用户,并找到任何用户拥有的所有文件的总大小...我有一个遍历所有用户的脚本,但我不知道继续计算每个用户拥有的总大小

这是我现在的脚本:

$users = Get-WmiObject -class Win32_UserAccount

foreach($user in $users) {
    $name = $user.Name
    $fullName = $user.FullName;
    if(Test-Path "C:\Users\$name") {
        $path = "C:\Users\$name"
    } else {
        $path = "C:\Users\Public"
    }

    $dirSize = (Get-ChildItem $path -recurse | Measure-Object -property length -sum)
 "{0:N2}" -f ($dirSize.sum / 1Gb) + " Gb"
echo "$dirSize"


Add-Content -path "pathototxt..." -value "$name $fullName $path"

}

如果有人知道答案并告诉我,我会非常高兴...... 谢谢

最佳答案

如果有很多文件,您可能需要考虑:

$oSIDs = @{}

get-childitem <filespec> |
 foreach {
  $oSID = $_.GetAccessControl().Sddl -replace '^o:(.+?).:.+','$1'
  $oSIDs[$oSID] += $_.length
  }

完成后解析 SID。从 SDDL 字符串中解析所有者 SID 或众所周知的安全主体 ID 可以使提供者不必执行大量重复的名称解析来返回“友好”名称。

关于Powershell获取用户拥有的文件的总大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14753279/

相关文章:

powershell - 慢 Get-ADUser 查询

powershell - 无法通过 PowerShell 将角色添加到 Azure 应用程序注册

powershell - 如何在 Powershell 中安装 Mailkit

java - 如何修改构造函数内全局数组的大小

pointers - 循环队列大小

powershell - 如何同时运行多个 Powershell 脚本?

powershell - PowerShell psdebug 跟踪的日志输出到文件

javascript - Angular Dart 到 JavaScript 结果对于生产来说太大了吗?

用于存储电子邮件正文的 MySql 字段大小

google-app-engine - 如何获取数据存储中表中的行数?