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

如何用PowerShell按漏洞名称拆分漏洞扫描CSV文件为多个文件?

解决方案:按漏洞名称拆分生成独立CSV文件

看起来你已经完成了漏洞扫描数据的初步清洗工作,现在只需要补充按漏洞名称分组并生成独立CSV文件的核心逻辑即可。我帮你完善了PowerShell代码,完全贴合你的需求:

# 1. 导入原始漏洞扫描CSV文件
$all = Import-Csv c:\scan.csv

# 2. 过滤掉Risk为"None"的无风险条目
$filteredData = $all | Where-Object {$_.Risk -ne "None"}

# 3. 提取所需字段并按漏洞名称排序,方便后续分组
$processedData = $filteredData | Select-Object Name, Host, Risk, CVSS, CVE, Description, Solution, 'See Also' | Sort-Object Name

# 4. 按漏洞名称对数据进行分组
$groupedByVuln = $processedData | Group-Object -Property Name

# 5. 循环生成编号格式的独立CSV文件
$counter = 1
foreach ($group in $groupedByVuln) {
    # 生成V001、V002格式的文件名,自动补零保证编号统一为三位
    $fileName = "C:\V{0:D3}.csv" -f $counter
    # 将当前漏洞组的所有受影响主机数据导出为CSV
    $group.Group | Export-Csv -Path $fileName -NoTypeInformation -Encoding UTF8
    # 计数器递增,准备下一个漏洞文件的命名
    $counter++
}

# 可选:保留你原本需要的合并总表导出
$processedData | Export-Csv C:\final.csv -NoTypeInformation -Encoding UTF8

关键细节说明:

  • 分组逻辑:通过Group-Object -Property Name将相同漏洞名称的条目归为一组,确保每个文件只包含单个漏洞的所有受影响主机数据。
  • 标准化命名:使用"V{0:D3}.csv"格式化字符串,自动为编号补零(比如第5个漏洞会生成V005.csv),避免出现V1、V10这类格式混乱的文件名。
  • 编码与格式优化:添加-NoTypeInformation避免CSV头部生成多余的类型注释,-Encoding UTF8确保中文描述、解决方案等特殊字符能正常显示。

小提示:

  • 如果想把生成的漏洞文件统一放到指定文件夹,直接修改$fileName的路径即可,比如改为"C:\Vulnerability_Reports\V{0:D3}.csv"。
  • 若要验证分组是否正确,可以先执行$groupedByVuln | Select-Object Name, Count,快速查看每个漏洞对应的受影响主机数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:28:28