Я пытаюсь распространить один самозаверяющий сертификат на несколько серверов в личном хранилище сертификатов набора учетных записей служб. Этот сертификат будет использоваться для расшифровки конфиденциальных файлов, которые могут быть прочитаны только учетными записями служб.
Сертификат был создан следующим образом:
New-SelfSignedCertificate -DnsName CredentialVault `
-CertStoreLocation "Cert:\CurrentUser\My" `
-KeyUsage KeyEncipherment,DataEncipherment -Type DocumentEncryptionCert `
-KeyAlgorithm RSA -KeyLength 2048
$computer = 'SERVER123.EXAMPLE.COM'
$cred = New-Object PSCredential 'MYDOMAIN\USER213', `
$(ConvertTo-SecureString -String 'P4$$w0Rd' -AsPlainText -Force)
$scriptBlock = {
Import-PfxCertificate -FilePath 'C:\temp\CredentialVault.pfx' `
-Password $(ConvertTo-SecureString -String '1234' -AsPlainText -Force) `
-CertStoreLocation "Cert:\CurrentUser\My"
}
Invoke-Command -ComputerName $computer -Credential $cred -ScriptBlock $scriptBlock
Я выполнял код на сервере SERVER123.EXAMPLE.COM
(но с другой учетной записью), просто чтобы посмотреть, будет ли он работать, прежде чем пытаться использовать удаленные серверы. Вот почему путь к файлу относится к локальному файлу.
Однако, несмотря на то, что файл доступен для учетной записи MYDOMAIN\USER213
(я тестировал команду Import-PfxCertificate
непосредственно на том же сервере с этим пользователем в первую очередь) PowerShell возвращает System.IO.FileNotFoundException
, как вы можете видеть ниже.
The PFX file could not be found.
+ CategoryInfo : NotSpecified: (:) [Import-PfxCertificate], FileNotFoundException
+ FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.CertificateServices.Commands.ImportPfxCertificate
+ PSComputerName : SERVER123.EXAMPLE.COM
Я понятия не имею, в чем проблема. Предложения приветствуются!
Информация о версии:
- Windows Сервер 2016
- PowerShell 5.1.14393.3471