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

Nin*_*ina 3 syntax powershell 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中告诉我此语句的正确语法吗?

Kei*_*ill 5

开始时您缺少一个&。尝试这个:

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

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

C:\PS> 3 + 4
7
C:\PS> "Hello world!"
Hello world!
Run Code Online (Sandbox Code Playgroud)

如您所见,当PowerShell在管道的开头看到一个字符串时,它将通过将该字符串写入主机来评估该字符串。为了使PowerShell将字符串作为命令的名称(或路径)执行,您需要&在其前面放置call运算符:

& "path-with-spaces-has-to-be-quoted.exe" 
Run Code Online (Sandbox Code Playgroud)

要么

$cmd = "Get-Date"
& $cmd
Run Code Online (Sandbox Code Playgroud)