Zertifikate auf Remoter Arbeitsstation mittels Powershell installieren
Hallo Community
Ich habe folgende Herausforderung. Ich habe selbstsignierte Zertifikate, welche ich über Powershell auf die Arbeitsstation installieren möchte. Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Wie könnte so ein Powershell Skript aussehen?
Die Grundlagen sind folgende:
Windows 10 Maschinen. Powershell Skripte sind standardmässig nicht erlaubt.
Die Zertifikate sind in einem Verzeichnis auf einem Linux Server abgelegt, könnten aber auch auf einem Windows Server abgelegt werden.
Anscheinend kann man mit "Enter-PSSession -Computername ip-adresse" bzw "Enable-PSRemoting -Force" eine remote Powershell ausführen.
Hat jemand ein Skript Beispiel wie ich die Zertifikate über Powershell remote installieren könnte?
Danke im Voraus für Eure Hilfe
Ich habe folgende Herausforderung. Ich habe selbstsignierte Zertifikate, welche ich über Powershell auf die Arbeitsstation installieren möchte. Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Wie könnte so ein Powershell Skript aussehen?
Die Grundlagen sind folgende:
Windows 10 Maschinen. Powershell Skripte sind standardmässig nicht erlaubt.
Die Zertifikate sind in einem Verzeichnis auf einem Linux Server abgelegt, könnten aber auch auf einem Windows Server abgelegt werden.
Anscheinend kann man mit "Enter-PSSession -Computername ip-adresse" bzw "Enable-PSRemoting -Force" eine remote Powershell ausführen.
Hat jemand ein Skript Beispiel wie ich die Zertifikate über Powershell remote installieren könnte?
Danke im Voraus für Eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 667269
Url: https://administrator.de/contentid/667269
Ausgedruckt am: 19.11.2024 um 06:11 Uhr
19 Kommentare
Neuester Kommentar
Hallo,
Gruß,
Peter
Zitat von @Ralus67:
Ich habe folgende Herausforderung. Ich habe selbstsignierte Zertifikate, welche ich über Powershell auf die Arbeitsstation installieren möchte. Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Womit genau hast du Bauchschmerz?Ich habe folgende Herausforderung. Ich habe selbstsignierte Zertifikate, welche ich über Powershell auf die Arbeitsstation installieren möchte. Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Gruß,
Peter
Hallo,
Warum nicht? Meiner Meinung nach ist das sogar die beste Lösung.
Von was für Zertifikaten reden wir eigentlich? A) Benutzerzertifikate B) Computerzertifikate C) Zertifikate vertrauenswürdiger Zertifizierungsstellen?
Grüße
lcer
Zitat von @Ralus67:
Hallo Community
Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Hallo Community
Die Installation von selbstsignierten Zertifikate über eine GPO erachte ich, administrativ gesehen als nicht die geeignete Lösung.
Warum nicht? Meiner Meinung nach ist das sogar die beste Lösung.
Von was für Zertifikaten reden wir eigentlich? A) Benutzerzertifikate B) Computerzertifikate C) Zertifikate vertrauenswürdiger Zertifizierungsstellen?
Grüße
lcer
Wenn ich mir deine letzten Beiträge so durchlese... Kann es an der mangelnden Hilfe der Forummitglieder nicht liegen.
Moin,
Also spätestens dann wäre der Weg via GPO doch prädestiniert
https://www.gruppenrichtlinien.de/artikel/zertifikate-verteilen
Gruß
em-pie
Also spätestens dann wäre der Weg via GPO doch prädestiniert
https://www.gruppenrichtlinien.de/artikel/zertifikate-verteilen
Gruß
em-pie
Hallo,
Womit hast Du denn die Zertifikate erstellt?
Grüße
lcer
Zitat von @Ralus67:
Hab ich gesagt es sei mangelnde Hilfe der Formmitglieder?
Ich bin was Powershell angeht, noch Anfänger. Deswegen suche ich Hilfe. Wären meine Kenntnissse so toll, dann würde ich bestimmt keine Fragen stellen.
Wir wollen ja auch alle helfen. Aber niemand hier scheint Zertifikate auf Windows System über diesen Weg verteilen zu wollen. Mir fallen hier auch kaum sinnvolle Anwendungen ein. Mach das ordentlich über GPOs.Hab ich gesagt es sei mangelnde Hilfe der Formmitglieder?
Ich bin was Powershell angeht, noch Anfänger. Deswegen suche ich Hilfe. Wären meine Kenntnissse so toll, dann würde ich bestimmt keine Fragen stellen.
Womit hast Du denn die Zertifikate erstellt?
Grüße
lcer
Zitat von @Ralus67:
Hallo Icer
Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden.
Also eine Allerweltsaufgabe Hallo Icer
Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden.
Deswegen sehe ich Powershell als einzige Lösung.
Und weshalb?Hast du das Zertifikat als Datei vorliegen?
Wenn ja, siehe meinen Link oben!
Wenn Nein, wird dir die PS auch nicht sonderlich helfen
Servus.
Entweder als Startskript auf den Clients per GPO zugewiesen (welches automatisch elevated ausgeführt wird)
Bitte daran denken das das Computerobjekt auf das Share und in den NTFS Berechtigungen Leserechte auf den Pfad bekommen muss.
Oder als Beispiel von einer Remote-Maschine aus mit entsprechend berechtigtem Account ausgeführt, jetzt als Beispiel nur für einen Computer, kann man ja dann über eine Schleife auf die gewünschten Maschinen abfeuern.
Na denn viel Spaß wünsche ich.
Grüße Uwe
Zitat von @Ralus67:
Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden. Deswegen sehe ich Powershell als einzige Lösung.
Genau dafür ist die GPO-Verteilung doch perfekt?! Wenn du es warum auch immer noch immer mit der PS machen willst, kein Problem aber eigentlich überflüssige Arbeit die du dir da aufbürdest und sind wir nicht alle immer voll ausgelastet? Du anscheinend nicht Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden. Deswegen sehe ich Powershell als einzige Lösung.
Entweder als Startskript auf den Clients per GPO zugewiesen (welches automatisch elevated ausgeführt wird)
Import-Certificate -FilePath '\\Server\Share\cert.cer' -CertStoreLocation cert:\LocalMachine\My
Oder als Beispiel von einer Remote-Maschine aus mit entsprechend berechtigtem Account ausgeführt, jetzt als Beispiel nur für einen Computer, kann man ja dann über eine Schleife auf die gewünschten Maschinen abfeuern.
$computer = 'ComputerXYZ'
$certpath = 'C:\certs\mycert.cer'
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store "\\$computer\My",'LocalMachine'
$store.Open('ReadWrite')
$store.Add([System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile($certpath))
$store.Close()
Grüße Uwe
Hallo,
Infos gibts auch noch hier: https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell. ...
Powershell kann den Zertifikatsstore nämlich wie das normale Dateisystem oder die Registry direkt adressieren. Dann geht z.B. so etwas
Grüße
lcer
Infos gibts auch noch hier: https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell. ...
Powershell kann den Zertifikatsstore nämlich wie das normale Dateisystem oder die Registry direkt adressieren. Dann geht z.B. so etwas
Get-ChildItem cert:\LocalMachine\My -SSLServerAuthentication | Move-Item `
-Destination cert:\LocalMachine\WebHosting
Grüße
lcer
Moin,
Wenn schon der große @colinardo, Herr der Powershell, Meister des Editors, Helfer aller Skriptkids in Not sagt: "Nimm doch GPOs!", dann solltest Du wirklich darüber nachdenken, ob Dein Weg der richtige ist. Und wenn Du Deiner Unkenntnis Abhilfe schaffen möchtest, hier ein wenig Lektüre für den Anfang:
https://docs.microsoft.com/de-de/powershell/
https://www.martinlehmann.de/wp/download/powershell-openbook/
Liebe Grüße
Erik
Zitat von @colinardo:
Servus.
Servus.
Zitat von @Ralus67:
Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden. Deswegen sehe ich Powershell als einzige Lösung.
Genau dafür ist die GPO-Verteilung doch perfekt?! Wenn du es warum auch immer noch immer mit der PS machen willst, kein Problem aber eigentlich überflüssige Arbeit die du dir da aufbürdest und sind wir nicht alle immer voll ausgelastet? Du anscheinend nicht Die Geschichte ist so, dass die Zeretifikate über eine externe PKI erstellt wurden. Die Erstellung der Zertifikate wurde automatisch durchgeführt. Nun muss ich einen Weg finden, wie diese Zertifikate dann automatisch auf die Maschine kommen und installiert werden. Deswegen sehe ich Powershell als einzige Lösung.
Wenn schon der große @colinardo, Herr der Powershell, Meister des Editors, Helfer aller Skriptkids in Not sagt: "Nimm doch GPOs!", dann solltest Du wirklich darüber nachdenken, ob Dein Weg der richtige ist. Und wenn Du Deiner Unkenntnis Abhilfe schaffen möchtest, hier ein wenig Lektüre für den Anfang:
https://docs.microsoft.com/de-de/powershell/
https://www.martinlehmann.de/wp/download/powershell-openbook/
Liebe Grüße
Erik
[OT]
[/OT]
Wenn schon der große @colinardo, Herr der Powershell, Meister des Editors, Helfer aller Skriptkids
Groß ist bei mir nur mein Snüffelstück, und jetzt bloß keine Kommentare ala "Wie die Nase des Mannes so auch sein ..." 🙈[/OT]
vage Vermutung .
Der Schüler/Anfänger will sich nicht mit den Grundlagen beschäftigen.
"Debug" lautet der Suchbegriff.
https://docs.microsoft.com/de-de/powershell/scripting/windows-powershell ...
Der Aufruf an sich ist korrekt .
Wenn du es genauer schreiben willst indem man die Enumeration nutzt sieht das so aus
Das obige mit 'ReadWrite' ist einfach nur eine Abkürzung und ebenfalls gültig.
Funktioniert hier im Test auch problemlos
Wenn du es genauer schreiben willst indem man die Enumeration nutzt sieht das so aus
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
Ich erhalte folgende Fehlermeldung
Exception calling "Open" with "1" argument(s): "The parameter is incorrect.
"
At line:3 char:1
+ FullyQualifiedErrorId : CryptographicException
Was ist die Ursache?
Die "CryptographicException" deutet auf unterschiedliche Fehlerquellen hin als da wärenException calling "Open" with "1" argument(s): "The parameter is incorrect.
"
At line:3 char:1
$store.Open('ReadWrite')
~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: ( , MethodInvocationException+ FullyQualifiedErrorId : CryptographicException
Was ist die Ursache?
- Ungenügende Berechtigungen für den Schreibzugriff auf den Machine-Store des Ziel-Computers
- Der Client vertraut einem Zertifikat des Remote-Computers nicht.
- Client- und Remote-Computer besitzen unterschiedliche Patchstände bzw. TLS mismatches.
- Firewall am Remote-Rechner zu restriktiv
Funktioniert hier im Test auch problemlos