2015-03-06 3 views
2

Следуя этим Install certificate with PowerShell on remote serverУстановите сертификат PFX на удаленном сервере с помощью PowerShell

Я пытаюсь установить сертификат PFX на удаленном сервере с помощью следующей команды Powershell,

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 

Пожалуйста, помогите мне в этом.

ответ

1

Командлет Import-PfxCertificate не существует на целевой машине. Возможно, потому, что на нем работает версия Powershell меньше 3.

Если возможно, вам потребуется установить более новую версию PowerShell или найти другой способ импорта сертификата.

+0

Благодарим за быстрый ответ. Не могли бы вы рассказать о том, как достичь этого другим способом? Мне нужно вызвать этот скрипт powershell в коде C#. –

+0

StackOverflow на самом деле не работает. Вам нужно будет исследовать альтернативные методы самостоятельно. Если вы застряли, вернитесь и задайте другой вопрос, где. Сайт не является сервисом написания кода, его вряд ли кто-нибудь напишет весь скрипт для вас! – arco444

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.

2

Ошибка: Import-PfxCertificate является частью модуля PKIClient.

ИПК Client командлетов в Windows PowerShell доступны только на

  • ОС Windows 8.1
  • Windows PowerShell 4.0
  • Windows Server 2012 R2

Попытка загрузить клиент 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, чтобы просмотреть все командлеты.

+0

Кажется, что он должен быть как минимум Windows 8.1/Windows Server 2012 R2 (см. Https://technet.microsoft.com/en-us/library/hh848625(v=wps.630).aspx), то есть более актуальный версия PowerShell, такая как 4.0 или 5.0, не достаточна. – anre

Смежные вопросы