Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerShell) Backup Windows Current User / Personal Certificates to a .zipDemonstrates how to backup the certificates in the Windows registry-based Current User certificate store (in the "Personal" Logical Store as seen in certmgr.msc), to a zip archive. Certificates having an exportable private key are exported to .pfx files. Certificates with no private key, or with a non-exportable private key, are exported to .cer files. Obviously, this example only runs on Windows computers.
Add-Type -Path "C:\chilkat\ChilkatDotNet47-9.5.0-x64\ChilkatDotNet47.dll" $certStore = New-Object Chilkat.CertStore $readOnly = $true $success = $certStore.OpenCurrentUserStore($readOnly) if (!$success) { $($certStore.LastErrorText) exit } $pfxPassword = "secret" $allSuccess = $true $numSuccess = 0 $zip = New-Object Chilkat.Zip $zip.NewZip("qa_output/personalCerts.zip") $certData = New-Object Chilkat.BinData $sbFilename = New-Object Chilkat.StringBuilder # Iterate over the certificates in the Current User store. $numCerts = $certStore.NumCertificates $i = 0 while ($i -lt $numCerts) { $cert = $certStore.GetCertificate($i) $("DN = " + $cert.SubjectDN) $sbFilename.SetString("cert") $sbFilename.AppendInt($i + 1) $bHasPrivateKey = $cert.HasPrivateKey() if (($bHasPrivateKey -eq $true) -and ($cert.PrivateKeyExportable -eq $true)) { # Export to a .pfx $success = $cert.ExportToPfxBd($pfxPassword,$true,$certData) if ($success -eq $true) { $sbFilename.Append(".pfx") $entry = $zip.AppendBd($sbFilename.GetAsString(),$certData) } } else { # Export to a .cer $success = $cert.ExportCertDerBd($certData) if ($success -eq $true) { $sbFilename.Append(".cer") $entry = $zip.AppendBd($sbFilename.GetAsString(),$certData) } } if ($success -ne $true) { $allSuccess = $false } else { $numSuccess = $numSuccess + 1 } $i = $i + 1 } if ($numSuccess -gt 0) { $success = $zip.WriteZipAndClose() if ($success -ne $true) { $($zip.LastErrorText) $allSuccess = $false } } $("All success = " + $allSuccess) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.