附加 deploy.properties 以启用 TLS

附加 deploy.properties 以启用 TLS

我需要能够附加每个人的deployment.properties文件以添加额外的行来启用所有版本的TLS。大型企业使用多个不同版本的Java,并且多个不同部门使用不同的例外情况。我尝试使用powershell附加文件,但它在每个字母之间插入行空格。

这是我发现的唯一能够插入文件的 PS 脚本。

echo "`r`n deployment.security.SSLv3=true" >> "c:\users\%userprofile%\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

注意它在最后一行之后进入并且不让我返回

这是我需要插入的代码

# Advanced Security Settings\Use TLS 1.0
deployment.security.TLSv1=true
deployment.security.TLSv1.locked
# Advanced Security Settings\Use TLS 1.1
deployment.security.TLSv1.1=false
deployment.security.TLSv1.1.locked
# Advanced Security Settings\Use TLS 1.2
deployment.security.TLSv1.2=false
deployment.security.TLSv1.2.locked
# Miscellaneous\Place Java icon in system tray
# Miscellaneous\Java Quick Starter
deployment.system.tray.icon=false
deployment.system.tray.icon.locked

我只需要知道如何通过脚本或 powershell 为整个企业执行此操作。无需替换原始的 deploy.properties 文件,并采用正确的格式。谢谢大家!

答案1

$env:userprofile\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"文件具有(可能)ANSI(或UTF-8)编码。

另一方面,about_Redirection帮助主题说:

…当你写入文件时,重定向操作符使用 统一码编码。如果文件具有不同的编码,则输出格式可能不正确……

要将内容重定向到非 Unicode 文件,请使用Out-FileAdd-Contentcmdlet 及其Encoding参数。例如,

$CodeToInsert = @'
# Advanced Security Settings\Use TLS 1.0
deployment.security.TLSv1=true
deployment.security.TLSv1.locked
# Advanced Security Settings\Use TLS 1.1
deployment.security.TLSv1.1=false
deployment.security.TLSv1.1.locked
# Advanced Security Settings\Use TLS 1.2
deployment.security.TLSv1.2=false
deployment.security.TLSv1.2.locked
# Miscellaneous\Place Java icon in system tray
# Miscellaneous\Java Quick Starter
deployment.system.tray.icon=false
deployment.system.tray.icon.locked
'@
$FilePath = "$env:USERPROFILE\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"

Add-Content -Path $FilePath -Value $CodeToInsert -Encoding default

也可以看看

笔记:您可以查询file.encoding属性或Charset.defaultCharset()查找当前默认编码在 Java 中。

对于整个企业,您可以将上述脚本配置为Run Once在用户登录时执行。

相关内容