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

使用Powershell将证书导入Tomcat中的密钥库,powershell,syntax,certificate,keystore,keytool,Powershell,Syntax,Certificate,Keystore,Keytool,我正在尝试将证书导入位于tomcat/conf目录中的keystore.jks。我在过去使用命令提示符多次这样做。我通常只需将cd放入tomcat/conf目录并输入以下行: “C:\Program Files(x86)\Java\jre7\bin\keytool.exe”-导入-别名“alias CA-30”-文件cert.cer-keystore keystore.jks 然而,他们最近阻止我们使用命令提示符,所以我在Powershell中这样做,这是我以前从未使用过的。这就是我得到的错误:

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

“C:\Program Files(x86)\Java\jre7\bin\keytool.exe”-导入-别名“alias CA-30”-文件cert.cer-keystore keystore.jks

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

必须在“-”运算符的右侧提供值表达式

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


有人能告诉我powershell中此语句的正确语法吗?

开头缺少一个
&
。试试这个:

& "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