You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

需求:编写PowerShell脚本批量查询服务器文件夹树大小并导出CSV

批量查询服务器文件夹总大小的PowerShell脚本

以下是完全适配需求的实用脚本,新手也能轻松修改使用:

# -------------------------- 配置区:按需修改以下参数 --------------------------
$serverListPath = "C:\temp\servers.txt"  # 服务器列表文件路径(支持TXT/CSV)
$targetFolderPath = "D:\Data"            # 要查询的目标文件夹路径(本地路径格式,脚本自动转为UNC)
$outputCsvPath = "C:\temp\FolderSizeReport.csv"  # 最终报告导出路径
# -----------------------------------------------------------------------------

# 初始化结果数组
$results = @()

# 导入服务器列表
if ($serverListPath -like "*.csv") {
    # CSV文件:默认列名为ServerName,若你的列名不同请修改这里
    $servers = Import-Csv -Path $serverListPath | Select-Object -ExpandProperty ServerName
} else {
    # TXT文件:每行一个服务器名
    $servers = Get-Content -Path $serverListPath
}

# 循环处理每台服务器
foreach ($server in $servers) {
    # 把本地路径转为UNC格式(比如D:\Data → \\ServerName\D$\Data)
    $uncPath = "\\$server\$($targetFolderPath.Replace(':', '$'))"
    
    # 构建当前服务器的结果对象
    $result = [PSCustomObject]@{
        ServerName = $server
        FolderSize_GB = $null
        Status = "Success"
    }

    try {
        # 递归计算文件夹总大小
        $totalSizeBytes = Get-ChildItem -Path $uncPath -Recurse -Force -ErrorAction Stop | 
                          Measure-Object -Property Length -Sum | 
                          Select-Object -ExpandProperty Sum
        
        # 转换为GB并保留2位小数
        $result.FolderSize_GB = [math]::Round($totalSizeBytes / 1GB, 2)
    } catch {
        # 捕获并记录错误信息
        $result.Status = "Failed: $($_.Exception.Message)"
    }

    $results += $result
    # 实时输出处理进度
    Write-Host "Processed: $server - $($result.Status)"
}

# 导出结果到CSV
$results | Export-Csv -Path $outputCsvPath -NoTypeInformation -Encoding UTF8

Write-Host "Report saved to: $outputCsvPath"

使用步骤

  1. 修改配置参数:

    • $serverListPath:替换为你的服务器列表路径,TXT文件每行写一个服务器名;CSV文件需包含ServerName列(列名不同请对应修改脚本里的字段)
    • $targetFolderPath:填写要查询的文件夹本地路径,脚本会自动转为跨服务器可访问的UNC格式
    • $outputCsvPath:设置最终报告的保存位置
  2. 运行脚本:

    • 以管理员权限打开PowerShell,直接运行脚本即可
    • 脚本会实时显示每台服务器的处理状态,失败的服务器会在报告中标记具体错误原因

关键细节

  • 自动适配UNC路径:解决跨服务器访问文件夹的问题
  • 错误捕获:覆盖服务器不可达、路径不存在、权限不足等常见异常
  • 格式友好:将字节大小转为GB并保留2位小数,报告可读性更强
  • 编码兼容:导出CSV使用UTF8编码,避免中文乱码

内容的提问来源于stack exchange,提问作者FriendlyPim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:20:42