2

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 に実際のデータを生成するのではなく、値の長さに関する情報を生成します。インポート/エクスポートの良い例はたくさんありますが、インポートに関する列があるものは見当たりませんでした。私が遊んでいるのと似たようなものがあるため、列のインポート方法を使用する必要があります。

ありがとうございました!

4

1 に答える 1

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

今はテストする時間がないので、問題があるかもしれませんが、それが要点です。

于 2012-06-15T14:27:06.663 に答える