使用Powershell将证书导入Tomcat中的密钥库

时间:2013-11-12 15:22:07

标签: powershell syntax certificate keystore keytool

我正在尝试将证书导入位于tomcat / conf目录中的keystore.jks。我过去使用命令提示符已经多次这样做了。我通常只需cd进入tomcat / conf目录并输入以下行:

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

然而,他们最近阻止我们使用命令提示符,所以我在Powershell中这样做,我以前从未使用过。这是我得到的错误:

您必须在' - '运算符

的右侧提供值表达式

它指向“导入”之前的第一个“ - ”。

有人可以在powershell中告诉我这句话的正确语法吗?

1 个答案:

答案 0 :(得分:4)

您在开始时错过了&。试试这个:

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

PowerShell可以运行exe,但它也会评估表达式,例如:

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