2
我想檢查程序集是否是強名稱簽名。如何使用PowerShell提取publickeytoken?
以下是我PowerShell腳本
function Get-AssemblyStrongName($assemblyPath)
{
[System.Reflection.AssemblyName]::GetAssemblyName($assemblyPath).FullName
}
$File = Get-ChildItem -Path $args[0] -Include @("*.dll","*.exe") -Recurse
Foreach ($f in $File)
{
$assembly=$f.FullName
Get-AssemblyStrongName $assembly
}
輸出看起來如下。
Sampledll,版本= 1.0.0.0,文化=中立, 公鑰= 70ea1bb087B4tbed
如果公鑰爲null,我認爲這是沒有簽名。我試圖寫的,如果條件一樣
$Assembly=Get-AssemblyStrongName $assembly
If ($assembly -contains "null") { "assembly is not signed" }
雖然很多EXE或DLL被其公鑰爲空,但它仍然顯示爲「組件沒有簽署」不輸出。
如何檢查是否條件來查找publickeytoken是否爲null? (或組件被簽署或不)
參考這個博客帖子(C#代碼) - HTTP ://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx – 2013-03-04 09:26:47
用'-match'改變'-contains'。或者使用''[System.Reflection.AssemblyName] :: GetAssemblyName($ assemblypath).getpublickeytoken()'獲取令牌值(bytearray) – 2013-03-04 09:28:43