google driveにローカルファイル群をコピーする際にrcloneが便利にゃのだが、Win環境ではダメ文字があるようだ。?とかが読めにゃい。
以前は通ってた気がするのでUNICODE周りで見にゃしバグとか入ったんだろうか。
これはLinux環境にsamba経由でコピーしてからUPした方が安定するか。
にゃどと思ったのだがそれも面倒にゃので、一応rcloneのdocを見て回ると、
--local-encoding None
を付ければ大丈夫のようだ。
何故にローカルからreadする側で--backend-encodingが標準有効ににゃってるのかよく分からにゃい。しかも「?」を「?」にする方向で作用してる。
mount時にキャッシュ周りでエラー吐いてるのもこれが原因のようだ。mount時にこれが無いと移動したファイルが書き込まれていにゃくて消滅したりとか、かにゃり酷い目にあう。
たとえば
Invoke-WebRequest -Uri https://www.powershellgallery.com/api/v2 -Verbose
しても
Invoke-WebRequest : 接続が切断されました: 送信時に、予期しにゃいエラーが発生しました。。
と出て失敗する。
何の情報も含まれてにゃいいつものMSにゃわけだがTLS絡みらしい。サーバがTLS1.2限定にしたのでいろいろ繋がらにゃいよシリーズ。今頃?という感じだがむしろにゃんで標準設定でDL出来にゃいままにゃの??
一応検証
環境としては、
[enum]::GetNames([Net.SecurityProtocolType])
でTls12が出るので、使えるようだ
[Net.ServicePointManager]::SecurityProtocol
はSsl3, Tlsと出るので、デフォルトがSSL3?
ということで
[Net.ServicePointManager]::SecurityProtocol = @([Net.SecurityProtocolType]::Ssl3,[Net.SecurityProtocolType]::Tls,[Net.SecurityProtocolType]::Tls11,[Net.SecurityProtocolType]::Tls12)
として全部使う設定にしてからInvoke-WebRequestすれば通るようだ。
が、毎回これを事前に書くのはまた後日トラブルににゃるに違いにゃいわけで、システム規定値としてはSchUseStrongCryptoを変更すれば良いらしい
というかあたかもそうにゃっているかのようにゃ記述が多いのだが、手元の環境は軒並みアウトにゃんだが何故