我需要能够附加每个人的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-File
或Add-Content
cmdlet 及其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
在用户登录时执行。