Назад | Перейти на главную страницу

Как исправить `` Отсутствует сохраненный набор ключей '' в удаленном сеансе PowerShell (без RDP)

Я пытаюсь создать сценарий установки нашего локального агента CI / CD. Частично установка сертификатов

Powershell

Import-Certificate -FilePath self_signed_CA.cer -CertStoreLocation cert:\LocalMachine\root
Import-PfxCertificate -FilePath my_cert.pfx -CertStoreLocation cert:\CurrentUser\TrustedPublisher -Password $password
Import-PfxCertificate -FilePath my_cert.pfx -CertStoreLocation cert:\CurrentUser\My -Password $password

Выполнение signtool.exe после этого

The following certificates were considered:
    Issued to: <our company>
    Issued by: <some ca>
    Expires:   <is valid>
    SHA1 hash: <...>

    Issued to: <...>
    Issued by: <...>
    Expires:   <...>
    SHA1 hash: <...>

After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.

Все это выполняется через удаленные сеансы PowerShell. В тот момент, когда я подключу RDP к машине с той же учетной записью, signtool.exe начинает работать даже удаленно. Меня это сбивает с толку. Почему это происходит?

редактировать

Я могу воспроизвести это с помощью удаленного взаимодействия вручную вот так.

$cred = Get-Credential
$sess = New-PSSession -Credential $cred -Computername <computername>
Enter-PSSession -Session $sess

Я сократил количество шагов для воспроизведения до использования certutil.exe (так что исключая signtool.exe)

Итак, имея RDP сессия открыт для указанной машины. Я получаю следующее в пределах PSSession

> certutil -store -user my

my "Personal"
================ Certificate 0 ================
Serial Number: 01
Issuer: <...>
 NotBefore: <...>
 NotAfter: <...>
Subject: <...>
Non-root Certificate
Cert Hash(sha1): <...>
  Key Container = <...>
  Unique container name: <...>
  Provider = Microsoft Software Key Storage Provider
Private key is NOT exportable
Signature test passed
CertUtil: -store command completed successfully.

Когда я выхожу из сеанса RDP и немного жду (<1 минуты), я получаю следующее в том же самом PSSession

> certutil -store -user my

my "Personal"
================ Certificate 0 ================
Serial Number: 01
Issuer: <...>
 NotBefore: <...>
 NotAfter: <...>
Subject: <...>
Non-root Certificate
Cert Hash(sha1): <...>
  Key Container = <...>
  Provider = Microsoft Software Key Storage Provider
Missing stored keyset
CertUtil: -store command completed successfully.

Образ этой виртуальной машины должен быть достаточно заблокирован, поэтому могут быть некоторые настройки или политики, мешающие тому, чего я пытаюсь достичь. Но пока не удалось выяснить, чем это может быть вызвано.

я нашел другой пост с аналогичными симптомами, но все задействованные учетные записи имеют право «Вход в качестве службы».