【问题标题】:Create a CSV for each object using PowerShell使用 PowerShell 为每个对象创建一个 CSV
【发布时间】:2018-01-06 06:44:03
【问题描述】:

我正在运行漏洞扫描,并且我有一个要导入的原始 CSV 文件。我从文件中删除 Risk = None,然后提取我需要的信息(Name 漏洞、HostRiskCVE说明解决方案另见)。

我想做的是将文件进一步切碎并创建

  1. 根据漏洞名称分离 CSV 文件。实际文件名不必是漏洞的名称,它可以保持静态 V001、V002、...
  2. 使用基于每个漏洞名称(主机、风险、CVE、描述等)的结果填充单独的文件。因此,在文件 V001 中,所有受 V001 漏洞影响的主机都将填充到该文件中,依此类推。

    $all = Import-Csv c:\scan.csv
    $all_with_none_removed = $all | Where-Object {$_.Risk -ne "None"}
    $Sumary_By_Vuln = $all_with_none_removed |
                      select Name, Host, Risk, CVSS, CVE, Description, Solution, 'See Also' |
                      Sort-Object Name
    $Sumary_By_Vuln | Export-Csv C:\final.csv
    

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您可以按名称对输入进行分组并将每个组导出到单独的文件:

    $all_with_none_removed |
        Select-Object Name, Host, Risk, CVSS, CVE, Description, Solution, 'See Also' |
        Group-Object Name |
        ForEach-Object { $_.Group | Export-Csv ($_.Name + '.csv') }
    

    【讨论】:

    • 这很好用,但有些文件名太长或包含非法字符。我收到以下错误'Export-Csv:路径中的非法字符。在 line:1 char:107 + ... ct 名称 | ForEach-Object { $_.Group |导出 Csv ($_.Name + '.csv') } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Export-Csv], ArgumentException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand'
    • 那么,检查$_.Name 的值并修复它?
    • 是的,我找到了给出错误的值,字符是
    • 我执行了以下操作来删除非法字符,但我正在努力将其放置在您提供的代码中的位置,它似乎无法正常工作$remillcharacters | ForEach-Object { $_.Name -replace '[\W]',''} 我尝试将其放置在$all_with_none_removed | Select-Object Name, Host, Risk, CVSS, CVE, Description, Solution, 'See Also' | Group-Object Name | ForEach-Object { $_.Group ** -replace '[\W]',''** | Export-Csv ($_.Name + '.csv') } 但我不认为它是正确的。我也不能做 export -path 因为我得到一个错误 cannot convert value.
    • invalid path characters 替换为有效字符,例如下划线。
    【解决方案2】:

    提示:您可以先从数据中提取所有不同的名称:

    $Names = $all_with_none_removed | Select-Object Name -Unique
    

    然后您循环这些名称的一些代码 foreach(提示提示),以与删除无风险结果类似的方式过滤掉您找到的结果。

    很抱歉没有提供完整的解决方案,但您是来学习的吧?

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 2011-10-12
      • 2019-06-14
      • 2018-09-04
      • 1970-01-01
      • 2020-04-28
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多