2016-04-12 3 views
1

Ich versuche, ein Zertifikat über ein Power-Shell-Skript zu installieren. Ich verwende die Import-Certificate wie in der Power Shell-Website von Microsoft vorgeschlagen. Hier ist mein CodeSo installieren Sie ein Zertifikat mit Powershell-Skript

$script = { 
    $file = (Get-ChildItem -Path C:\Users\Administrator\Desktop\newCert.cer) 
    $file | Import-Certificate -CertStoreLocation cert:\CurrentUser\Root 
    echo $file 
    } 

invoke-command -Credential $clientCred -ComputerName $ClientIP -ScriptBlock $script 

Also dann bekomme ich den folgenden Fehler.

UI is not allowed in this operation 
    + CategoryInfo   : InvalidArgument: (:) [Import-Certificate], ArgumentException 

nicht sicher, wo das schief geht. Wäre wirklich hilfreich, wenn mir jemand in die richtige Richtung zeigen könnte.

Antwort

4

Das Problem hier ist, dass, wenn Sie das Zertifikat Cert:\CurrentUser\Root (Vertrauenswürdige Stammzertifizierungsstellen in dem aktuellen Benutzerkonto) installieren, CryptoAPI die unter dem folgenden Dialog aufruft:

enter image description here

Und deshalb Fehlermeldung erwähnt Benutzeroberfläche. Da Sie versuchen, das Zertifikat in der Remoting-Sitzung zu installieren, ist es unmöglich, die Schaltfläche in der interaktiven Sitzung des Remote-Hosts zu drücken. Aus diesem Grund sind UI-Dialoge verboten.

Sie können das Zertifikat im lokalen Computerspeicher installieren. Das heißt, installieren Sie es auf Cert:\LocalMachine\Root.

Beachten Sie, dass bei der Installation eines Stammzertifikats im lokalen Computerspeicher automatisch alle Benutzerkonten auf diesem Computer weitergeleitet werden. Das heißt, für Benutzer, bei denen ein solches Vertrauen möglicherweise nicht angenommen wird, kann eine unbeabsichtigte Vertrauensstellung hergestellt werden.