2013-11-12 5 views
3

Я пытаюсь импортировать сертификат в файл keystore.jks, расположенный в моем каталоге tomcat/conf. Я делал это много раз в прошлом с помощью командной строки. Я обычно просто подключился к директории tomcat/conf и ввел следующую строку:Импорт сертификата в хранилище ключей в Tomcat с использованием Powershell

«C: \ Program Files (x86) \ Java \ jre7 \ bin \ keytool.exe" -import -alias "alias CA-30" -file cert.cer -keystore keystore.jks

Однако они недавно заблокировали нас от использования командной строки, и поэтому я делаю это в Powershell, чего я никогда раньше не использовал. Это ошибка, я получаю:

Вы должны указать выражение значения на правой стороне «-» оператора

И это указывает на первый «-» прямо перед «импорта».

Может ли кто-нибудь сказать мне правильный синтаксис этого утверждения в powershell?

ответ

4

Вам не хватает & в начале. Попробуйте это:

& "C:\Program Files (x86)\Java\jre7\bin\keytool.exe" -import -alias "alias CA-30" -file cert.cer -keystore keystore.jks 

PowerShell можно запустить ехе, но также оценивает выражения, например:

C:\PS> 3 + 4 
7 
C:\PS> "Hello world!" 
Hello world! 

Как вы можете видеть, когда PowerShell видит строку в начале трубопровода, он оценивает строку по запись строки на хост. Для того, чтобы получить PowerShell для выполнения строки в качестве имени (или путь к) команды, вы должны поместить оператор вызова & перед ним:

& "path-with-spaces-has-to-be-quoted.exe" 

или

$cmd = "Get-Date" 
& $cmd 
Смежные вопросы