Jump to content

Powershell mit Zertifikat signieren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi @ll,

 

meine Aufgabenstellung von meinem Chef ist ganz einfach:

 

- alle Powershell Scripte dürfen nur im "Set-ExecutionPolicy allsigned" ausführbar sein -

 

Hört sich einfach an und ich habe auch relativ schnell diese Link gefunden. Aber irgendwie komme ich da nicht weiter.

 

Eckdaten die mir wichtig erscheinen

Das AD ist ein W2K8 R2 mit einem eigenem Lizenzserver der das Root Zertifikat unter anderem hält. Dort habe ich eine Codesignatur Zertifikat ausgestellt und es auf einem Testclient entsprechend der Anleitung angefordert. Das erstellte Script kann ich aber nicht so wie in der Anleitung dargestellt signieren (auch wenn ich die angeführte Variable $zertifikat in $zertifikate abändere).

 

Nach dem Befehl: $zertifikate=dir cert:\ -recurse –codesign habe ich mit einem echo $zertifikate an der Konsole das gewünschte Zertifikat gesehen.

Trozdem spuckt mir der nachfolgende Befehl Set-AuthenticodeSignature C:\powershell\Signaturtest.ps1 $zertifikat die Fehlermeldung

 

Set-AuthenticodeSignature : "System.Object[]" kann nicht in den Typ "System.Sicurity.Cryptography.X509certificates.X509Certificate2" konvertiert werden, der für den Parameter "Certificate" erorderlich ist. Die angegebene Methode wird nicht unterstützt. Bei Zeile:1 Zeichen:26

 

aus. Und jetzt bin ich auch nach intensiver Suche mit meinem Latein am ende. :confused: Hat jemand das Problem schon mal gehabt oder ist mein Vorgehen komplett falsch?

 

Gruß

Ramses( s)

Link zu diesem Kommentar

Nach dem Befehl: $zertifikate=dir cert:\ -recurse –codesign habe ich mit einem echo $zertifikate an der Konsole das gewünschte Zertifikat gesehen.

Trozdem spuckt mir der nachfolgende Befehl Set-AuthenticodeSignature C:\powershell\Signaturtest.ps1 $zertifikat die Fehlermeldung

 

Ist das nur ein Fehler beim copy&paste oder hast du wirklich einmal $zertifikat und ein anderes mal $zertifikate benutzt?

Link zu diesem Kommentar
Ist das nur ein Fehler beim copy&paste oder hast du wirklich einmal $zertifikat und ein anderes mal $zertifikate benutzt?

 

In der Anleitung steht diese Befehlsfolge. Wenn es so ausgeführt wird, ist die Fehlermeldung ähnlich.

Nach ein wenig Suchen ist es schon aufgefallen das dort ein "E" fehlt. ;) Mit dem korrektem Namen der Variable wird die von mir aufgeführte Fehlermeldung ausgegeben.

 

ramses( s)

Link zu diesem Kommentar

Hi,

 

ja - denn Du mußt ein konkretes "Objekt" (sprich Zertifikat) angeben, wenn Du per Set-AuthenticodeSignature signieren möchtest.

 

Mittels "where-object" hinter einer Pipe kannst Du filtern, wie genau sieht denn die Ausgabe von folgendem Befehl aus?

 

Get-ChildItem cert:\ -recurse –codesign | format-list *

 

Etwas genauer "fokussieren" kannst Du mit:

Get-ChildItem -Path cert:\[b]CurrentUser\my [/b]-CodeSigningCert

 

Vielleicht erledigt sich das Problem damit sogar direkt.

 

Ggf. "problematische Informationen" aus dem Export entfernen, bevor Du es hier postest. :)

 

Viele Grüße

olc

Link zu diesem Kommentar

Hi,

 

ich habe jetzt noch mal versucht das ganze nachzuvollziehen.

 

@tesso

Die Fehlermeldung bei einem falschen Pfad für das Zertifikat lautet:

Set-AuthenticodeSignature: Das Argument kann nicht an den Parameter "Certificate" gebunden werden, da es NULL ist.

 

@olc

Ich habe es hin bekommen mit folgenden Befehlen:

 

$cert = Get-ChildItem cert:\CurrentUser\My –codesigning

Set-AuthenticodeSignature C:\scripts\my-test.ps1 $cert

 

Die Groß- Kleinschreibung ist bei der Pfad Angabe zu beachten. Das war´s dann :)

 

Danke an alle die drüber nachgedacht haben (insbesondere an olc)

 

VG

ramses ( s)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...