我有一个问题(希望)有人能说清楚.我正在编写一个Powershell脚本,将证书导入本地计算机存储,并将Everyone组读取权限分配给证书上的私钥.
现在,我确实有一个可以完成此任务的工作脚本,但我注意到我有一个名为"LogonSessionId_0_some-random-number"的帐户,它为私钥上的ACL分配了读取权限,如下图所示:
起初我以为这是我的脚本可能这样做,但当我手动导入证书时,我得到相同的结果.
有没有人见过这个或知道为什么会这样?这个帐户究竟是什么以及为什么要分配权限?我试图在这方面寻找一些答案,但是已经做得很短.
不确定它是否有帮助,但这是我的代码中导入证书并分配权限的部分:
$sslCert = gci Cert:\LocalMachine\My | WHERE {$_.Subject -match $getCerts}
$sslCertPrivKey = $sslCert.PrivateKey
$privKeyCertFile = Get-Item -path "$ENV:ProgramData\Microsoft\Crypto\RSA\MachineKeys\*" | WHERE {$_.Name -eq $sslCertPrivKey.CspKeyContainerInfo.UniqueKeyContainerName}
$privKeyAcl = (Get-Item -Path $privKeyCertFile.FullName).GetAccessControl("Access")
$permission = "Everyone","Read","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$privKeyAcl.AddAccessRule($accessRule)
Set-Acl $privKeyCertFile.FullName $privKeyAcl
我正在使用Windows 10 Pro.
非常感谢任何帮助/见解!