无需权限即可获取 Win2k3 中文件夹的磁盘使用情况

无需权限即可获取 Win2k3 中文件夹的磁盘使用情况

我有一堆用户共享文件夹(主文件夹),但我无权访问它们。有没有一个好工具可以显示每个文件夹占用了多少空间,而无需我拥有查看文件夹中文件的权限?

基本上,我想要一种自动化的方法来执行此操作,而不是右键单击每个文件夹并转到属性,即使我无法访问它。

答案1

如果 SYSTEM 具有权限授予,那么您可以以 SYSTEM 身份获取命令提示符并从那里运行实用程序。我碰巧非常喜欢TreeSize 免费用于快速临时查询的实用程序。如果您想要一些用于长期报告的工具,请考虑使用其中一款非免费程序。

即使在更高版本的 Windows 中,如果您有权访问工具并以管理员身份运行(即在 Windows Server 2008+ 中提升权限或禁用 UAC):psexec -s cmd.exe

这也是为什么我更喜欢在服务器计算机上保留所有文件夹的“管理员 - 完全控制”权限的另一个原因。它让生活变得更轻松。

不过,你当然可以使用 du - Windows 版本似乎利用 SeBackupPrivilege 来访问文件信息,而不管 ACL 如何!抓住GNU 核心实用程序,拉出 du.exe 并将其粘贴在当前目录或 PATH 中的某个位置,然后从 SYSTEM 命令提示符下执行以下操作:

du -d 1 x:\your\directory\

我在报告用户文件夹大小时总是这样做。(而且,老实说,我已经习惯在我管理的大多数服务器的 PATH 中都有 UnxUtils 发行版,以至于我忘记了“du”不是操作系统的一部分……)

答案2

试试这个软件,您需要从您想要统计的机器上运行它,但它的用户界面非常干净。 http://www.jgoodies.com/freeware/jdiskreport/

答案3

您也可以使用 Powershell 执行此操作。以下代码为您生成一个漂亮的 CSV 文件。

$startFolder = "c:\profiles"
$outputFile = "output.csv"

del $outputfile #Clear output file.

$colItems = (Get-ChildItem $startFolder | Where-Object {$_.PSIsContainer -eq $True})

"`"Folder Name`",`"Folder Size (in MB)`"" | out-file $outputFile -encoding ascii

foreach ($item in $colItems)
    {
        Write-Host "Getting size for `"$item`"..."
        $subitems = (Get-ChildItem $item -recurse | Measure-Object -property length -sum)
        $subitemsum = "`"{0:N2}" -f ($subitems.sum / 1MB) + "`""
        $itemname = "`"" + $item.name + "`""
        out-file $outputFile -InputObject "$($itemname),$($subitemsum)" -encoding ascii -Append
    }

相关内容