我是Powershell的新手并且有一个简单的问题。 我正在使用的输出来自CSV格式的sysinternals.com autorunsc工具。 该脚本的目的是在CSV中搜索某些二进制名称。
导入按预期进行,但我无法写入我的过滤信息
$IOCFiles = "es.dll", "null.sys"
$data = import-csv "D:\autoruns.csv" -header("Entry_Location","Entry","Enabled","Category","Description","Publisher","Image_Path","Launch_String","MD5","SHA-1","SHA-256")
foreach ($K in $data)
{
foreach($element in $IOCFiles)
{
if ($k.Image_Path -match $element)
{
$hits = $k.Entry + " " + $K.Publisher + " " + $K.Image_Path
$hits | export-csv -Path c:\HITS.csv -NoTypeInformation
}
}
}
以上内容不会生成CSV中的实际数据,而是生成值的长度信息。 有许多很好的导入/导出示例,但我没有看到导入/导出列的一个。我必须使用列导入方法,因为我正在使用类似的东西。
谢谢!
答案 0 :(得分:4)
Powershell让这件事变得非常简单:
Import-csv "D:\autoruns.csv" -header("Entry_Location","Entry","Enabled","Category" |
Where-Object{($IOCFiles -match $_.Image_Path) -ne $null} |
Select-Object Entry, Publisher, Image_Path |
Export-CSV -Path c:\HITS.csv -NoTypeInformation
我现在还没有时间对它进行测试,因此可能存在一些问题,但这就是它的要点。