
您好,我需要能夠獲取 Windows 10 上運行的每個進程的列表,並透過 MD5 演算法運行它們。有沒有辦法在 powershell 中自動執行此操作?
很感謝任何形式的幫助
答案1
這並不像應該的那麼容易。 PowerShell 可以 MD5 雜湊 a文件本機(使用Get-FileHash
),但不是字串。
幸運的是,MS提供了解決方案這裡。
#http://jongurgul.com/blog/get-stringhash-get-filehash/
Function Get-StringHash([String] $String,$HashName = "MD5")
{
$StringBuilder = New-Object System.Text.StringBuilder
[System.Security.Cryptography.HashAlgorithm]::Create($HashName).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($String))|%{
[Void]$StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString()
}
複製該函數並將其貼上到 PowerShell 提示字元中。所呼叫的函數Get-StringHash
將為該 PowerShell 會話保存。
透過鍵入以下內容來測試 MD5 對單字「test」進行哈希處理:
取得StringHash“測試”“MD5”
您應該得到下面的 MD5 雜湊值:
098f6bcd4621d373cade4e832627b4f6
完成後,您可以使用函數以及Get-Process
取得進程名稱和名稱的 MD5,如下所示:
get-process | ForEach-Object {write-host $_.Name ; Get-Stringhash "$_.Name" "MD5"}
答案2
該實用程式來自 Microsoft,名為 Sysmon,通常用於收集低階系統資訊以進行惡意軟體追蹤。它作為服務安裝,可以配置為記錄事件日誌中啟動的每個進程的檔案雜湊。您可以透過設定檔配置要記錄的雜湊類型(md5、sha1、sha2 等)。如果這有助於實現您的目標,您可以閱讀更多相關內容這裡。