在 Windows 2012 R2 上,winhttpcertcfg -i FileName -a CertAccount -c LOCAL_MACHINE\MY -p Password 将证书安装在受信任的根存储上,而不是 LOCAL_MACHINE\MY。我还需要向 -a 选项指定的帐户授予对私钥的访问权限。有没有办法使用 Powershell/CertUtil 实现相同的功能?
答案1
Winhttpcertcfg 无法在 Server 2008 R2 及更高版本上正确导入证书。下载页面显示它兼容至 Server 2003。请参阅
http://www.microsoft.com/en-us/download/details.aspx?id=19801
替代命令是 certutil。
http://technet.microsoft.com/library/cc732443.aspx
缺少的是一个可以接受参数的工具,比如 Winhttpcertcfg,它可以接受要安装到哪个商店的参数。Certutil 无法做到这一点。
查看 jaspernygaard 的回答
Winhttpcertcfg 确实允许授予 certutil 不具备的帐户访问权限,并且它通过 -g 参数在 Server 2008 R2 至 Server 2012 R2 上运行。
看http://technet.microsoft.com/en-us/library/ee662329.aspx
导入证书并向帐户授予权限的唯一选项是使用 Powershell。请参阅 mao47 的回答,了解如何使用 Powershell 轻松导入证书
请参阅使用 Powershell 导入和授予访问权限的答案 https://stackoverflow.com/questions/20852807/setting-private-key-permissions-with-powershell
如果你想编写一个工具,那么使用 C#
看
http://www.codeproject.com/script/Forums/View.aspx?fid=1649&msg=2062983