Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

WindowsからMacへファイル共有をする

久々にWindowsのファイルをMac側に送りたいなとおもったらプチハマりしたのでメモ
どうせ次やるときにはまた忘れて同じハマりを繰り返すのだ。
いまどきCDやUSBのデバイスを使って転送するのもアレだし
わざわざこれだけのためにクラウドストレージ使うのもあほらしいし、
ローカルネットワーク内で何とかしたいと思ったときにはまりがちなやつ
Windows Defenderでも起こるかも。
Firewallに阻まれるのはよくあること。
この記事は最低限のネットワークの知識がない人には役立たないかもしれない。

環境

ファイル共有側

OS: Windows11
ウィルス対策ソフト: ESET

ファイル取りたい側

OS: macOS Ventura 13.5
ウィルス対策ソフト: ESET

とりあえず長ったらしいので

WindowsからMacへの共有方法はコチラの通り。Write権限は別に与えんでもいい。
WindowsとMacの間でファイル共有をする方法 | パソコン工房 NEXMAG
Windws Defenderかウィルス対策ソフトのファイヤーウォールをOFFってみれば解決すると思うよ!!

症状

DHCPでWi-FiでPCを複数台使っている(※一部固定IPはある)。
同じセグメントにいるのにMacからWindowsのフォルダが読めない。
うちではCIDR表記で192.168.3.0/24がデフォルトの設定になっている。

古き良きSMB、これは慣れてるからさすがにできるだろ、と思ったらできない。
わざわざWindows側でSMBを有効化してsmb://[IPアドレス]の形式でもアクセスできない。
そればかりかpingも通らない。 なぜか逆方向のWindowsからMacからのpingは通る(おいおいどういうことだよESETさんてばよ)。
といった状態だった。 ファイヤーウォール?ファイアウォール?Firewallが怪しくね?(表記どれが正しいの?) と思ったらやっぱりこれだった。

解決策

ここの手順をすれば基本的にWindowsのデフォルト設定で共有できます。 Mac側も何か設定があるとすればネットワーク関連の設定で
WINSの設定でワークグループがWORKGROUPになっていればOK
Macで「WINS」設定を変更する - Apple サポート (日本)
デフォルトで設定されてるはず。

どうせ共有なんて普段しないんだからESETのファイヤーウォールを一時的にOFFる
恒久的な対策はいつか書きます(たぶん)。

おまけ

Thunderbirdを移行したくてやった。
特にメッセージフィルタがアレなんで、あれをあれしてはこれ
Thunderbirdのメッセージフィルタを移行する #thunderbird - Qiita

ブラウザで日本語入力がおかしくなる、うまく入力できなくなることがある

起こっていた問題

特にブラウザのアドレスバー上でGoogle検索をしようと日本語入力をしようとしたときに
まともに日本語が打てなくなる事象がたまに発生します。
ブラウザ以外のテキストエディタ上では特に問題になりません。

環境情報

ちなみに私の環境は以下です。※Mac macOS Ventura13.0のほうでもESETを使っていますがそちらはこの問題が起きてないです。

種別 ソフト バージョン
OS Windows 11 Pro 22H2
ブラウザ Google Chrome 119.0.6045.125
ウィルス対策ソフト ESET Internet Security 16.2.15.0

原因と思われるもの

何だろうと思い探るとESETで問題があると報告がありました。

文字の入力がおかしいです - Google Chrome コミュニティ

ただここで指摘されているバージョンと少し違います。
「キーボード保護」というのをONにすると(デフォルトではオン)
特にパスワードなどの入力で悪意のあるソフトウェアのキーロガーなどからキー入力を盗まれないように保護する機能があり、
ESET側で多分何らかのフックを妨害しているのかな?と推測します。
Windowsにはグローバルフックという何かの処理に割り込んで横取り処理をすることができます。

それであまり欧米人(というかほぼ日本人以外)にはなじみの薄いIMEの漢字変換を伴う
(日本人から見ても非常に複雑な)入力での(おそらくESET側での)不具合により妨害され
まともに入力できなくなるということなのでしょう。
※英語入力では問題になりせんでした。また、この不具合はESET側が悪いのかブラウザ側が悪いのかは外部の人間には判断がつきません。ESETは数あるウィルス対策ソフトの中でもいいものだと思っています(Windows Defenderでよくない?というのはありますが)。

対処方法

対処としては別途テキストエディタで入力したものをコピペする
もしくはあまり気が進みませんが、一時的にESETの「キーボード保護」を無効にすると発生しなくなると思います。
怪しいマルウェアが絶対に入ってないと言い切れるならOFFにしてもよいでしょう(ここにたどり着く人はある程度のリテラシーがあるはずなのでまず大丈夫だとは思いますが)。

ESETのメニューから
設定 > 詳細設定 > 保護 > ブラウザー保護
下部のセキュアブラウザーから「キーボード保護」があるのでOFFにします
検索窓が詳細設定にあるのでそこで検索してもよいです。

WSL2を有効化した


WSL2を使いたくて有効化した時のメモ

前提条件

・Hyper-Vは使用済み
・WSL1も有効化済み

やること

2023年3月現時点ではWSL1からWSL2にするには
コマンドプロンプトから管理者権限で

> wsl --set-default-version 2

を打つだけ。あとは新規にディストリビューションを入れるだけ。
コマンドラインからでもWindows Storeからでもどっちでもよいです。

補足

WSL1からディストリビューションをいれてて
移行が必要な場合はもうちょい手順が必要だけどここでは書いてません。

使ってみた感想

WSL2あれば開発でdockerいらないかも。
いや、微妙に用と違うけどさ。開発環境構築だけならこれだけで良い。
現実的にはDocker on WSL2とかになるんだろうけどさ。
ちゃんとしたLinuxでCygwinできる感があって嬉しい。
Windows内のファイルをGrepするのに活用してたGit Bashとかももはや不要。
Macを使う理由が1つ減った感じがある。
しかし、会社の政治的な事情により業務用PCはそもそもVT-x有効化が封じられてるケースが多い。

長い説明

WSL1は有効化しているが別段何もインストールしてなかったという状態
Hyper-Vのおまけで有効化していた状態でした。

ちょっと前からHyper-VとWSL2が共存できるぞという情報は知っていたので、
いつかWSL2ためしたいなーと思うこの頃でした。

Hyper-Vはインストールして有効化しているはずだが、念のため以下を確認
管理者のコマンドプロンプトで実行

> dism.exe /online /get-featureinfo /featurename:VirtualMachinePlatform  

Deployment Image Servicing and Management tool
Version: 10.0.22621.1

Image Version: 10.0.22621.1265

Feature Information:

Feature Name : VirtualMachinePlatform
Display Name : Virtual Machine Platform
Description : Enables platform support for virtual machines
Restart Required : Possible
State : Enabled

Custom Properties:

(No custom properties found)

The operation completed successfully.

これが有効化されてないと何も始まりません。

> wsl -l -v
Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

2って文字がなければWSL1です。たぶん。

デフォルトをWSL2にする

> wsl --set-default-version 2 
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The operation completed successfully.

「WSL2の重要な違いは https://aka.ms/wsl2 見て」 と書いてるが知ってる話なので無視。


--- 以下必要なかったところの記録 ---

> wsl -l -v
Windows Subsystem for Linux has no installed distributions.
Distributions can be installed by visiting the Microsoft Store:
https://aka.ms/wslstore

としかでない。最初と同じ。あれ? 2になってる気配なし…

ドキュメントを漁るも公式にアップグレード手順が書いてない。
WSL のインストール | Microsoft Learn
これはまっさらな状態からの手順で、関係がない。
ググる。
以前のバージョンの WSL の手動インストール手順 | Microsoft Learn
これかなと思ったら違う。
ここからダウンロードしたものをインストールしようと思ったが、
これもすでにインストールされているになってた。

--- 以上必要なかったところの記録 ---

コマンドラインから

> wsl --install -d Ubuntu-22.04

インストールが終わったら
Terminalが立ち上がってユーザー設定を聞いてきた。あれこれもうWSL2じゃん。   再びコマンドプロンプトで見てみる。

> wsl -l -v
  NAME            STATE           VERSION
* Ubuntu-22.04    Running         2

普段起動するときはアプリからUbuntu 22.04とかを選ぶとよい

無事、WSL2を有効化できた。

その他

rootユーザーになるときなど、あとWindowsの環境変数を引き継ぐ、引き継がないあたりはこの辺りを参考に。
WSL2の初歩メモ - Qiita

WindowsでPC起動直後、インターネット接続確立が遅い

問題

PC起動直後にインターネット接続を必要とするアプリがスタートアップで立ち上がると、
必ずインターネットに接続されていません系のエラーが発生してしまう。
ただし、数秒~数10秒後、再接続を試みるとインターネット接続が成功する。
環境はWindowsで有線LAN。またDHCPではなく固定IPでネットワークにつないでいる。

解決策

Wireshark(Npcap、WinPCap)、Virtualbox、独自のドライバーが付属するVPNサービスなどのように
ネットワーク接続に「フック」して、NICに仮想ネットワークドライバーやサービスを
インストールするソフトウェアを使用している場合、
それらを更新すると問題が解決する可能性があります 。もしくは削除すれば解消します。

この現象はだいぶ前から発生してて、Windows Updateの影響かくらいに思ってて、気にしてなくて
なんだかんだで1年くらい放置していた現象です。
スタートアップに登録しているLINEがインターネット未接続でログインできず、
そのせいで(本来は必要がないのに)パスワードを求められる事態が頻発したのと、
また、Google Chromeとかが対応している、Macを模倣した機能である
「再起動可能なアプリを自動的に保存し、再度サインインしたときに再起動する」
という機能をONにして、PC起動時にChromeの前回状態を復元させることができる機能なんですが
「インターネットに接続されていません」+みんな大好き恐竜出現!になってました。

ちなみに「再起動可能なアプリを自動的に保存し~」って機能の詳細はコチラ。
【Windows11】前回終了時に開いていたアプリを再起動後に自動起動する方法 - ぱそかけ

ちなみに私の環境はWindows 11ですが、この現象Windows 10のある時から発生しています。
Hyper-VはONにしていますが、それ以外はあまり特殊な環境ではありません。

ネットワークがHyper-Vに書き換えられているのもあり、
Hyper-Vが原因か?とも思っていましたが、
Hyper-Vをいれてだいぶ経ってからこの現象が発生するようになったと思われて、
多分違うと予想はしていました。

まじめにググり始める

「can't connect to the Internet immediately after starting up the PC」
とかでとりあえずググる。そしたら...当てにならなかったやつ
The PC doesn't connects immediately to the internet on boot - Microsoft Community
で、でたーwすぐにリセットする奴〜ww
自称エキスパートの素人が素人に回答して泥沼になっているやつ。
これで解決した試しがない。ユーザーが多いせいか、質も低い気がするのだが、
なぜだろう(とはいえこういうサービスがあるのは素晴らしいです)。
気軽にリセット系を薦めるやつは切腹してほしいです。
ユーザーの環境を容易に破壊しようとするなといいたい。
この手のはデータはロストするが問題が解決しないというのが多い。

もうちょっと頑張ってググる

うーん、これ、原因わからず終わるパターンか?と思いかけて
「establishing internet connection is too slow on startup」
とかでググる。
Win 10 slow to establish network on reboot - Windows 10 Support
あぁ、また意味のないnetshコマンドたたかせる奴系かよ…んでセーフブート厨のコンボかいと思ったら、
最後に神が降臨

Are you using any kind of software that "hooks" on to the network connection and thus installs some virtual network driver and/or service on the NIC? Like Wireshark (Npcap, WinPCap), Virtualbox, any VPN service that comes with proprietary driver etc...

If yes, updating those might solve your problem.

あぁ、Npcap入れたわそういや。だいぶ前に…。
VPNのソフトも入ってたりします。でもNpcapがめちゃ怪しい。

犯人捜し

VPNソフトをアンインストールする⇒現象治らず
Npcapをアンインストールする⇒現象治る!
インターネットが即座につながるようになった
VPNソフトをインストールしなおす⇒現象治ったまま
試しにLINEを「Windows起動時に自動実行」にし直してこの状態で再起動
これもうまくいってすべて解消しました。

他に考えられる要因

今回はこのケースではなかったですが、他の原因でありえそうなもの。
「PC起動後 なかなかインターネットに接続されない」 とかでググった。
ネットワークドライブとWi-Fiの関係ない話題が多くヒットする中、たまたま見つかったもの。
【Windows10】PC起動後、なかなかインターネットに接続されない場合の対処法 | KUMALOG
あと、ありがちだが変なDNSを設定してるとか
After boot PC takes about 1 minute to connect to internet | Tom's Hardware Forum