Для управления ACL для закрытого ключа все, что вам нужно сделать, это отредактировать файл ACL.Хитрость заключается в том, чтобы найти какой файл.
Закрытые ключи хранятся в:
%ProgramData%\Microsoft\Crypto
В XP:
C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto
Здесь вы увидите ключи, организованныеалгоритм, например, DSS, RSA.
Хранилище пользователей будет подпапкой с SID пользователя.Хранилище локального компьютера будет находиться в подпапке:
MachineKeys
Вот способ получить файл, в котором хранится информация о секретном ключе для вашего сертификата.
Сначала перейдите влокальный магазин личных сертификатов:
PS> cd cert:\LocalMachine\My
Теперь вам нужно получить ручку для вашего сертификата.Есть несколько способов сделать это, вот один с использованием отпечатка:
$cert = dir | ? {$_.Thumbprint -eq "232820EEBF7DBFA01EE68A28BA0450671F862AE1"}
Теперь вы можете найти имя файла с секретным ключом, например:
$fileName = $cert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
$keyFile = dir -Path "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto" -Recurse | ? {$_.Name -eq $fileName}
$ keyFile будет объектом FileInfo, для которого можно изменить ACL с помощью Set-ACL или icacls.exe