我在一个容器中有一个 PowerShell 脚本,用于查询我们的内部 CA 是否存在证书。我在这里按照Microsoft 的建议创建了 gMSA 帐户,
然后使用
docker run --security-opt "credentialspec=file://gmsa_CredSpec.json" --restart=always --hostname HOSTNAME -d --name webapp1 webapp:latest
其中 HOSTNAME 是托管 docker 引擎的寡妇服务器的实际主机名运行 docker。
我的挑战是试图理解为什么我会ERROR_NO_SUCH_LOGON_SESSION
像 $result = Get-Certificate -Template ServiceTemplate -Url ldap: -CertStoreLocation Cert:\localmachine\My -SubjectName "CN=${name}" -verbose ;
下面的脚本一样继续这样做。
$name = "app.company.com
$cert = (Get-ChildItem -Path Cert:\LocalMachine\My | where-object { $_.Subject -contains "CN=${name}"})
if ($cert.notafter -le (get-date))
{
Write-Host "Requesting certificate"
$result = Get-Certificate -Template ServiceTemplate -Url ldap: -CertStoreLocation Cert:\localmachine\My -SubjectName "CN=${name}" -verbose ;
$cert = $result.Certificate;
} else {
write-host "Certificate is valid"
}
完整的错误
VERBOSE: Performing the operation "Get-Certificate" on target "ldap:".
Get-Certificate : CertEnroll::CX509EnrollmentPolicyActiveDirectory::GetTemplates: A specified logon session does not
exist. It may already have been terminated. 0x80070520 (WIN32: 1312 ERROR_NO_SUCH_LOGON_SESSION)
At C:\Get-Certificate.ps1:28 char:15
... $result = Get-Certificate -Template ServiceTemplate -Url ldap: -Cert ...
我将不胜感激,因为我所有的研究总是会导致同样的错误