google code prettify

2021年8月13日 星期五

[PowerShell] 如何讓PowerShell支援新版的傳輸層安全性 (TLS)

最近拿出作業系統Window7的舊筆電,想要透過PowerShell安裝自動化軟體安裝工具,結果怎麼Shell都Shell不出來,反而頭皮屑倒是Shell了不少😆,雖然window10目前沒有類似問題,但未來更版也許需要升級,避免重工,本篇就來紀錄如何修正此問題。

問題描述:要連線的站台已規定要有支援TLS 1.2,才能連線。
鬼打牆的開始,通常看到這裡,大家應該會去瀏覽器設成TLS1.2、不然就是改Regedit 登錄檔,結果再去跑PowerShell還是紅支支一大串








問題延伸,因為Window7已停止安全性更新,所以要先知道目前的版本是否有支援TLS1.2,所幸Window7跟Server2008 R2,是有支援TLS1.2
補充:雲端管理閘道使用的 Azure 虛擬機器支援 TLS 1.2。 支援的用戶端版本會自動使用 TLS 1.2。

使用PowerShell執行以下語法,檢查目前支援的TLS版本
[Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls12' 
//return true or false

相當然,本案例收到的一定是false,

這時候應該會第二次鬼打牆,開始搜尋如何設定PowerShell Tls版本,然後設定完還是得到結果False,難道是鬼月卡到陰,一樣的PowerShell 語法在Win10可以執行,Win7不行嗎?

月暈效應,其實卡點的原因是通常CMD工具沒人會去升級,PowerShell 也覺得應該一樣。所以會以為語法寫錯或TLS設定錯誤,不斷的Google卻找不到答案。

如何確定PowerShell目前的版本,語法如下,Window7 預設會是PowerShell 2(問題所在)
$PSversionTable
接下來如何升級成新版的PowerShell,請到微軟的官網抓更新檔,抓下來記得保存檔案,免得連結失效





















安裝檔案後,再檢查PowerShell版本變成5.1了,再檢查是否支援TLS新版,這時候就可以透過PowerShell連結到限定TLS的站台了。0.0y

Window10或其他系統的PowerShell,哪天也需要支援新版的TLS,這篇應該就可以再次派上用場。

PS.當初把舊筆電的硬碟換成MLC SSD,記憶體16G,清風扇、塗散熱膏,速度還堪用

Reference

沒有留言:

張貼留言