2010-06-29 40 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。