Windows

附加 deployment.properties 以啟用 TLS

  • May 8, 2018

我需要能夠附加每個人的 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 為整個企業做到這一點。無需替換原始的 deployment.properties 文件並使用正確的格式。多謝你們!

$env:userprofile\AppData\LocalLow\Sun\Java\Deployment\deployment.properties"文件具有(大概)ANSI(或UTF-8)編碼。

另一方面,about_Redirection幫助主題說:

…當您寫入文件時,重定向運算符使用 Unicode編碼。如果文件具有不同的編碼,則輸出的格式可能不正確……

要將內容重定向到非 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使用者登錄。

引用自:https://serverfault.com/questions/911333