命令行设置证书读取权限

4

有人能指点我正确的方向,让我了解如何通过命令行管理证书的读取权限吗?我正在编写脚本进行证书安装,并需要允许 NetworkService 访问“本地计算机\个人\Certificates”存储中的两个证书。

提前致谢。

1个回答

4

我已经完成了这个步骤,以授权我们的网页应用访问安装在Windows中的证书私钥。

以下是一个PowerShell脚本。它依赖于微软的FindPrivateKey.exe

# Use FindPrivateKey.exe (From Windows SDK) to get the file name of the private key.
$s = cmd /c "FindPrivateKey.exe My LocalMachine -t   `"9D1F685D554E5B04C591D7967FB0D151153A25D8`" -a"

# Grant read access on the private key
cmd /c "cacls.exe `"$s`" /E /G `"IIS_IUSRS`":R"

我想我从Windows Communication Foundation (WCF) Samples @ http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459获取了FindPrivateKey.exe。 - Jamey
谢谢,我已经得到了FindPrivateKey.exe - 我会试试看的! - jaspernygaard
是的,使用完全相同的控制台来调用findprivatekey.exe方法。当从批处理文件内部调用时,它不返回证书路径 - 当直接在控制台中运行时,它可以完美地找到它。奇怪... - jaspernygaard
在我的DOS和PowerShell上可以运行。你确定引号正确吗?上面的示例假定你在PowerShell中。对于DOS,引号略有不同。 我创建了一个.bat文件,如下所示:echo find from dos shell FindPrivateKey.exe My LocalMachine -t "9D1F685D554E5B04C591D7967FB0D151153A25D8" -aecho find from powershell powershell -command ./find-privatekey.ps1暂停 - Jamey
啊,我正在通过名称获取密钥,不幸的是字符串中有本地化字符。所以这是一个基本的UTF8错误。感谢您的帮助! - jaspernygaard
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接