我正在尝试将证书导入位于我的 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中告诉我这个语句的正确语法吗?
最佳答案
您在开头缺少 &
。试试这个:
& "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
关于powershell - 使用 Powershell 将证书导入到 Tomcat 中的 keystore ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19933042/