我编写了下面的windows power shell脚本,以便将crt SSL证书添加到所有java cacert存储中
$certs = @(Get-Childitem -Path "C:\Program files" -Include *cacerts* -Exclude *.pem -File -Recurse -ErrorAction SilentlyContinue);$keytool = Get-Childitem -Path "C:\Program files" -filter keytool.exe -Recurse -ErrorAction SilentlyContinue | Select -First 1; foreach ( $cert in $certs ){& "$keytool" -import -trustcacerts -alias mycert-ca$(date -format dMyyhm) -file C:\Path\to\my-crt.crt -keystore $cert -storepass changeit -noprompt}
问题是,当我尝试运行它对任何东西比程序文件的搜索需要很长的时间。当我在命令提示符搜索与以下命令dir c:\ /s /b | findstr -i cacerts
我得到结果为整个c驱动器在一分钟内。
是否有与ps等效命令?
1条答案
按热度按时间db2dz4w81#
我在这里张贴我的脚本更新后,我得到的意见,我的问题,我检查了它在我的个人电脑上,它的工作完美。
确保将
-file C:\Path\to\CA\myCertificate.crt
更改为你的证书路径.并且将-alias myCert$(date -format dMyyhm)
更改为你选择的名称.$(date -format dMyyhm)
在那里的情况下,你想有一个选项,以更新证书,而不删除旧的,如果不是这种情况,你可以删除这一部分。在随附的版本中,我只在两个程序文件目录中搜索,因为据我所知,所有包含Java的文件都位于这两个目录中,但您可以将-path标志更改为指向“C:\”或甚至“\”,对于我来说,在1 TB的整个驱动器上搜索需要2分钟。