PFX-Zertifikat Read-Rechte für Gruppe Benutzer in Powershell
Hi @ All
Ich hänge mit folgendem Problem und bitte um eure Hilfe!
Zur Automatisierung einer Installation ist es notwenig auf ein Zertifikat im Store "Local Computer\LocalMachine\My" Lese-Rechte für die Gruppe "Benutzer" (Lokal) zu vergeben (siehe Bild):
Da funktioniert natürlich wenn man es manuell macht, jedoch nicht automatisiert per Script.
Zur Umsetzung habe ich das Versucht:
https://gist.github.com/milesgratz/38804dfc336df64191f958004953e9b6
https://www.itnator.net/zertifikat-berechtigungen-aendern-mit-powershell ...
hier mein Script:
Beim Auslesen des PrivateKey stelle ich fest, dass mir zwar angezeigt wird, dass ein ProvateKey vorhanden ist, er wird aber nicht angezeigt / ausgegeben.
Kann mir jemand einen Tipp geben wie ich das umsetzen kann oder wo mein Fehler liegt?
Danke für die Unterstützung!
Mayho
Ich hänge mit folgendem Problem und bitte um eure Hilfe!
Zur Automatisierung einer Installation ist es notwenig auf ein Zertifikat im Store "Local Computer\LocalMachine\My" Lese-Rechte für die Gruppe "Benutzer" (Lokal) zu vergeben (siehe Bild):
Da funktioniert natürlich wenn man es manuell macht, jedoch nicht automatisiert per Script.
Zur Umsetzung habe ich das Versucht:
https://gist.github.com/milesgratz/38804dfc336df64191f958004953e9b6
https://www.itnator.net/zertifikat-berechtigungen-aendern-mit-powershell ...
hier mein Script:
$FPrint = @('Add Fingerprint here')
$SID = New-Object System.Security.Principal.SecurityIdentifier "S-1-5-32-545"
foreach ($thumbprint in $FPrint)
{
$Cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Thumbprint -eq $thumbprint }
$privKey = $Cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyPath = "$($env:ProgramData)\Microsoft\Crypto\RSA\MachineKeys\"
$privKeyPath = (Get-Item "$keyPath\$privKey")
$Acl = Get-Acl $privKeyPath
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($SID, "Read", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $privKeyPath.FullName $Acl
$privKey = ([System.Security.Cryptography.X509Certificates.RSACertificateExtensions]::GetRSAPrivateKey($Cert)).key.UniqueName
$keyPath = "$($env:ProgramData)\Microsoft\Crypto\Keys\"
$privKeyPath = (Get-Item "$keyPath\$privKey")
$Acl = Get-Acl $privKeyPath
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($SID, "Read", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl $privKeyPath.FullName $Acl
}
Beim Auslesen des PrivateKey stelle ich fest, dass mir zwar angezeigt wird, dass ein ProvateKey vorhanden ist, er wird aber nicht angezeigt / ausgegeben.
Kann mir jemand einen Tipp geben wie ich das umsetzen kann oder wo mein Fehler liegt?
Danke für die Unterstützung!
Mayho
Please also mark the comments that contributed to the solution of the article
Content-ID: 665526
Url: https://administrator.de/contentid/665526
Printed on: October 8, 2024 at 00:10 o'clock
4 Comments
Latest comment
Zitat von @mayho33:
Perfekt! Danke!
Funktioniert einwandfrei! leider bekomme ich da die Anzeige:
Hast du dazu noch einen Tipp?
Grüße Mayho!
Wenn man beim Import des Schlüssels in der Policy nicht angegeben hat das man den privaten Schlüssel auch wieder exportieren darf dann lässt sich dieser nicht nachträglich exportieren. Dann muss man diesen erneut importieren diesmal aber mit der Option das dieser auch wieder exportiert werden kann.Perfekt! Danke!
Funktioniert einwandfrei! leider bekomme ich da die Anzeige:
Hast du dazu noch einen Tipp?
Grüße Mayho!
Gruß w.