일부 서명 된 .ps1 스크립트가 있는데, C# 프로젝트에서 올바르게 서명되었는지 확인해야하며,이를 수행하는 알고리즘이나 라이브러리가 있습니까?C#을 사용하여 Powershell .ps1 스크립트의 서명을 확인하려면 어떻게해야합니까?
감사합니다.
일부 서명 된 .ps1 스크립트가 있는데, C# 프로젝트에서 올바르게 서명되었는지 확인해야하며,이를 수행하는 알고리즘이나 라이브러리가 있습니까?C#을 사용하여 Powershell .ps1 스크립트의 서명을 확인하려면 어떻게해야합니까?
감사합니다.
당신은 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);
}
}
를 사용하여이 확인하는 PowerShell에서 엔진을 호스팅 할 수 있습니다
Get-AuthenticodeSignature
cmdlet이 대상 시스템에서 올바르게 확인 (즉, 오류를보고 함)하고 PSH를 사용할 수있는 경우 C# 응용 프로그램에서 PSH를 실행할 수 있습니다.