为什么我的Powershell脚本要签署一个没有正确执行的jar?

时间:2016-09-29 19:02:16

标签: powershell jar certificate powershell-v3.0 powershell-v4.0

写了这个powershell脚本来尝试签署一个jar文件。在构建正确的命令后,它基本上看起来像这样:

$command = "jarsigner -storetype pkcs12 -keystore $certToUse -signedjar $nameOfSignedJar $nameOfJarToSign $defaultAlias"
Write-Output $command
Invoke-Expression $command

写入输出行打印出来:

jarsigner -storetype pkcs12 -keystore MyCertificate.p12 -signedjar signed_sample.jar sample.jar "this is my test alias, inc.'s comodo ca limited id"

然而,当Invoke-Expression运行时,它基本上只是挂起而没有其他任何事情发生。如果我在powershell中运行这个确切的命令,我会提示输入密码,然后签署我的JAR文件。

我做错了什么,我怎么能这样做,以便当它要求我输入密码然后我可以通过相同的脚本传递它?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您的$ default别名中未转义的引号可能会出现问题:

$defaultalias = "`"this is my test alias, inc.`'s comodo ca limited id`""

答案 1 :(得分:0)

显然问题在于PowerShell ISE。通过powershell直接运行脚本非常合适。