Как решить проблему с бессистемной проблемой создания закрытого ключа в PowerShell? - PullRequest
0 голосов
/ 29 мая 2019

Один из наших серверов должен запускать сценарии с определенными параметрами, к сожалению, он прекратил создавать закрытые ключи, и я недолго задерживался на этой проблеме.Каждый раз, когда я запускаю сценарий с одинаковыми условиями (одна и та же учетная запись, сервер, сценарий, приложение), он работает, но в большинстве запусков, запускаемых из приложения ServiceDesk, он заканчивается ошибкой.

И самое странное в ситуации, когда скрипт работал без изменений годами.

Я уже пытался создать фоновый процесс с созданием закрытого ключа, запустить скрипт под разными пользователями AD, сменить провайдера в строке ProviderName, найти любые решения в сети.

Сервер "Windows Server 2012 R2", версия PS 4

Часть кода, в которой возникает проблема:

$PrivateKey = New-Object -ComObject "X509Enrollment.CX509PrivateKey"
$PrivateKey.ProviderName = "Microsoft Enhanced Cryptographic Provider v1.0"
$PrivateKey.ExportPolicy = 0x1
$PrivateKey.KeyUsage = 0xffffff
$PrivateKey.KeySpec = 0x1
$PrivateKey.KeyProtection = 0x0
$PrivateKey.Length = 2048
$PrivateKey.MachineContext = $False
$PrivateKey.Create()

Ошибка:

Exception calling "Create" with "0" argument(s): "CertEnroll::CX509PrivateKey::
Create: The system cannot find the file specified. 0x80070002 (WIN32: 2 ERROR_F
ILE_NOT_FOUND)"
At C:\Scripts\SD\VPN\ca_renew_cert_company.ps1:125 char:5
+     $PrivateKey.Create()
+     ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

Iнужна любая информация о том, как решить проблему, какие-либо ссылки на метод работы, что-нибудь полезное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...