Je veux exécuter une PowerShell en utilisant le .net Powershell SDK. J'ai ce travail bien. Avant de l'exécuter, je veux vérifier que le script a été signé par mon certificat de signature de code - c'est assez facile à faire à partir de powershell en utilisant Get-AuthenticodeSignature mais je voudrais le faire dans le code avant d'exécuter ce script .Comment puis-je vérifier si un script PowerShell est signé à partir de l'API managée?
Solution:
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
Pipeline shell = runSpace.CreatePipeline();
shell.Commands.AddScript(String.Format("Get-AuthenticodeSignature '{0}'", Filename));
Signature sig = (shell.Invoke()[0]).BaseObject as Signature;
bool isValid = sig.Status == SignatureStatus.Valid;
Assez près! Ajouté la solution à ma question –
ah, je vois que vous êtes sur v1.0 de powershell (l'objet powershell est v2 seulement) – x0n