通过以下方式, Install certificate with PowerShell on remote server
我尝试使用以下Powershell命令在远程服务器上安装pfx证书,
Invoke-command -ComputerName myservername -scriptblock { Import-PfxCertificate –FilePath D:\pfxcert.pfx cert:\localMachine\my -Password (ConvertTo-SecureString -String "mypassword" -Force –AsPlainText) }
这给我以下错误消息...
The term 'Import-PfxCertificate' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo : ObjectNotFound: (Import-PfxCertificate:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
+ PSComputerName : myservername
请帮我解决这个问题。
答案 0 :(得分:2)
Cmdlet Import-PfxCertificate
是模块PKIClient
的一部分。
Windows PowerShell中的PKI客户端Cmdlet仅在
上可用尝试在脚本中加载PKI客户端:
Invoke-command -ComputerName myservername -scriptblock
{
Get-Command -Module PKIClient;
Import-PfxCertificate –FilePath D:\pfxcert.pfx cert:\localMachine\my -Password (ConvertTo-SecureString -String "mypassword" -Force –AsPlainText)
}
您可以尝试Get-Command -Module PKIClient
查看所有cmdlet。
答案 1 :(得分:1)
目标计算机上不存在Import-PfxCertificate
cmdlet。可能是因为它运行的Powershell版本少于3个。
如果可能,您必须安装较新版本的PowerShell,或者找到导入证书的其他方法。
答案 2 :(得分:0)
好吧,如果你需要从C#调用它,那么从C#安装它可能是值得的,比如
using System.Security.Cryptography.X509Certificates;
X509Certificate2 certificate = new X509Certificate2("C:\TEMP\yourcerthere.pfx", "yourpasswordhere");
X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);
store.Close();
实际上它与powershell中的代码大致相同,因为除了使用.net系统类或某些工具(如this)之外别无他法。