2018/11/06

Invoke-WebRequest で Live.Sysinternals.com からダウンロード失敗の回避

最近、Invoke-WebRequest コマンドレットで Sysinternals のツールをダウンロードしようとしたら、「接続が切断されました:送信時に、予期しないエラーが発生しました」(英語だと The underlying connection was closed: An unexprected error occurred on a send.)と表示されてちょっと焦りました。TLS 1.2 を強制するサイトのあるあるだそうで。


上のように次の 1 行を実行してから再試行すれば回避可能。

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Windows 10 ver 1803 以前の PowerShell 5.1 の既定は SSL3 と TLS になっているので、TLS 1.2 が強制されているサイトへの接続は拒否されます。

Windows 10 ver 1803 以前でシステムの既定値を変更する方法はこちら。



.NET Framework で TLS1.1 および 1.2 を有効化する方法 -まとめ-
https://blogs.technet.microsoft.com/jpieblog/2018/10/11/net-framework-tls11-12-2/

ちなみに、Windows 10 ver 1809 (幻の October 2018 Update)の既定は、TLS、TLS 1.1、TLS 1.2 でした。ので、「接続が切断されました:送信時に、予期しないエラーが発生しました」に出会うことはないでしょう。

最近まで https://live.sysinternals.com では TLS 1.2 は強制されていなかったような気がします(たぶん)。なぜなら、以下のスクリプトは ver 1803 の同じ PC で作ったもの。

関連
Windows Sysinternals 更新情報 (2018 年 10 月 16 日) - BGInfo v4.26、SigCheck v2.70、VMMap v3.22

とにかく何台か試したときは気付かなかった。とりあえず、スクリプトに修正を加え、TLS 1.2 で接続するようにしました。

Live.sysinternals.com が TLS 1.2 を強制していることを改めて確認すると...

ほんまや

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。