Windows: .cer Zertifikate per Skript hinzufügen
Guten morgen,
wir müssen immer weider .cer Zertifikate auf PCs einspielen, die sich nicht in einer Domäne befinden, sodass GPOs rausfallen.
Ersten Ansätze wären per Batch oder per PowerShell:
Ich habe eine Batch Datei, die folgendes als Administrator ausführt:
Powershell.exe -Command "& {Start-Process Powershell.exe -ArgumentList '-ExecutionPolicy Bypass -File "PSInstallCert.ps1"' -Verb RunAs}"
Die PowerShell Datei PSInstallCert.ps1 hat folgenden Inhalt:
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\Root
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\TrustedPublisher
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\My
Das Konstrukt soll so laufen, dass man die Batch "Als Administrator" startet und dann die Befehle alle ausgeführt werden. Bei PowerShell müsste man über Start - Als Administrator und die PowerShell Datei asuwählen - daher der Umweg über die Batch Datei, die ich direkt mit rechter Maustaste als Administrator starten kann.
Führe ich die PowerShell Zeilen manuell als Administrator aus, ist das Zertifikat in dem richtigen Speicher, sodass es für mich aussieht, als wenn das PowerShell nicht mit ausreichenden Rechten ausgeführt wird.
Jemand eine Idee ? Vielen Dank im Voraus!
wir müssen immer weider .cer Zertifikate auf PCs einspielen, die sich nicht in einer Domäne befinden, sodass GPOs rausfallen.
Ersten Ansätze wären per Batch oder per PowerShell:
Ich habe eine Batch Datei, die folgendes als Administrator ausführt:
Powershell.exe -Command "& {Start-Process Powershell.exe -ArgumentList '-ExecutionPolicy Bypass -File "PSInstallCert.ps1"' -Verb RunAs}"
Die PowerShell Datei PSInstallCert.ps1 hat folgenden Inhalt:
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\Root
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\TrustedPublisher
Import-Certificate -FilePath cacert.cer -CertStoreLocation Cert:\LocalMachine\My
Das Konstrukt soll so laufen, dass man die Batch "Als Administrator" startet und dann die Befehle alle ausgeführt werden. Bei PowerShell müsste man über Start - Als Administrator und die PowerShell Datei asuwählen - daher der Umweg über die Batch Datei, die ich direkt mit rechter Maustaste als Administrator starten kann.
Führe ich die PowerShell Zeilen manuell als Administrator aus, ist das Zertifikat in dem richtigen Speicher, sodass es für mich aussieht, als wenn das PowerShell nicht mit ausreichenden Rechten ausgeführt wird.
Jemand eine Idee ? Vielen Dank im Voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 625220
Url: https://administrator.de/contentid/625220
Ausgedruckt am: 25.11.2024 um 20:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
wie wäre es als Startup Script?
Das geht auch mit lokaler GPO und läuft immer voll eleviert.
Dann einen definierten Ordner festlegen, z.B. "C:\Window\neue Zertifikate" und das Script darin suchen lassen. Wenn es dort ein neues Zertifikat findet, dann importieren. Dann irgendwie merken, dass es ein Zertifikat bereits importiert hat. Bzw. es macht, glaube ich, nichts aus, wenn man den Import eines bereits importierten Zertifikats beim nächsten Start noch einmal ausführt. Da wird nichts doppelt importiert.
E.
wie wäre es als Startup Script?
Das geht auch mit lokaler GPO und läuft immer voll eleviert.
Dann einen definierten Ordner festlegen, z.B. "C:\Window\neue Zertifikate" und das Script darin suchen lassen. Wenn es dort ein neues Zertifikat findet, dann importieren. Dann irgendwie merken, dass es ein Zertifikat bereits importiert hat. Bzw. es macht, glaube ich, nichts aus, wenn man den Import eines bereits importierten Zertifikats beim nächsten Start noch einmal ausführt. Da wird nichts doppelt importiert.
E.
Kannst du einfach doppelt drauf klicken, startet sich selbst elevated wenn noch nicht, PS Commands kannst du selbst ergänzen...
@echo off
:: start elevated if not
net session >nul 2>&1 || (powershell -EP Bypass -NoP -C start "%~0" -verb runas &exit /b)
:: here everything works elevated
powershell -EP Bypass -C "Import-Certificate -FilePath ...................."