如何使用powershell脚本安装证书

时间:2016-04-12 18:40:53

标签: powershell ssl ssl-certificate

我正在尝试通过power-shell脚本安装证书。我正在使用microsoft的power shell网站上建议的Import-Certificate。这是我的代码

$script = {
    $file = ( Get-ChildItem -Path  C:\Users\Administrator\Desktop\newCert.cer )
    $file | Import-Certificate -CertStoreLocation cert:\CurrentUser\Root
    echo $file
    }

invoke-command -Credential $clientCred -ComputerName $ClientIP -ScriptBlock $script

然后我收到以下错误。

UI is not allowed in this operation
    + CategoryInfo          : InvalidArgument: (:) [Import-Certificate], ArgumentException 

不确定这是哪里出错的。如果有人能指出我正确的方向,那将会非常有用。

1 个答案:

答案 0 :(得分:8)

此处的问题是,当您将证书安装到Cert:\CurrentUser\Root(当前用户帐户中的受信任的根CA)时,基础CryptoAPI会调用以下对话框:

enter image description here

这就是错误消息提到UI的原因。由于您尝试在远程会话中安装证书,因此无法按下远程主机的交互式会话中的按钮。这就是禁止使用UI对话框的原因。

您可以做的是将证书安装到本地计算机商店。也就是说,将其安装到Cert:\LocalMachine\Root

请注意,在将根证书安装到本地计算机存储区时,它会自动传播到该计算机上的所有用户帐户。也就是说,可以为可能不会产生这种信任的用户建立无意识的信任。