2010-06-29 82 views

回答

3

你可能主持PowerShell引擎來檢查這個使用Get-AuthenticodeSignature cmdlet的例如爲:

using System.Collections.ObjectModel; 
using System.Management.Automation; 
using System.Management.Automation.Runspaces; 

private bool VerifyPowerShellScriptSignature() 
{ 
    using (var runspaceInvoke = new RunspaceInvoke()) 
    { 
     string path = "C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\" + 
         "Modules\\PSDiagnostics\\PSDiagnostics.psm1"; 
     Collection<PSObject> results = 
      runspaceInvoke.Invoke("Get-AuthenticodeSignature " + path); 
     Signature signature = results[0].BaseObject as Signature; 
     return signature == null ? false : 
            (signature.Status == SignatureStatus.Valid); 
    } 
} 
0

如果Get-AuthenticodeSignature cmdlet可以正確驗證(即如果無效則報告錯誤)並且PSH在目標系統上可用,則可以在C#應用程序中運行PSH。