リモートワークの問題解決集（未解決課題あり）

## 私のリモートワーク環境
+ 接続元PC：macOS（Mac Book Pro：会社備品）
+ 接続先PC：Windows10 Pro 64bit（DELL：会社備品）
+ 入出力デバイス
  - マイク：Mac内臓マイク
  - スピーカー：Mac内臓スピーカー
  - カメラ＝Mac内臓カメラ


## 接続元PCのデバイスが認識されない
3日くらい悩んでしまった。。。

接続元 PC の Mac に RDP アプリ（Microsoft Remote Desktop）をインストールしてあったので、そのまま接続してみた。

が、Mac のスピーカーは認識されるのだが、なんでかマイクとカメラは認識されない。

Google で調べると **Windows 側でリモートデバイスの使用を許可してないのでは？** など出てくるが、既に設定されている。。

### 結論
RDP アプリの設定で 外部デバイスの使用可否 を選択する必要がある。
マイクとカメラは Default で OFF なので、それをONにしないと駄目。

具体的には RDP アプリを開き、リモートPCの編集 ＞ Devices&Audio ＞ Microphone と Cameras を ON にする。

+ リモートPCのアイコン上で編集（鉛筆）ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/6703f974-d92f-f282-ec4c-2ba4c2d15b33.png)

+ Devices&Audio ＞ Microphone と Cameras を ON にする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/4db4a5d5-d32f-cac3-dad4-f805f38f882f.png)

### 接続元PCが Windows の場合：2022/02 追記
**リモートデスクトップ接続** のアプリを使う（Windows 10）

接続画面の下にある **オプション** を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/995961e8-8585-d0e1-77cd-81cf396d922b.png)

**ローカルリソース タブ** の リモートオーディオ の **設定** を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/cdc42b27-697b-a4e1-e9ab-4ec4c739e128.png)

リモートオーディオ再生 の **このコンピュータで再生する** をチェック
　＝＞スピーカーが接続先PCで有効になる
リモートオーディオ録音 の **このコンピュータから録音する** をチェック
　＝＞マイクが接続先PCで有効になる（録音しない になっていることが多い）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/68ec365c-e552-02dd-b826-71cfd8fc9ec4.png)

OKを押して保存すれば完了。
次回の接続から接続先PCでスピーカーとマイクが有効になる。


## キーボード配列がおかしくなる
Mac から Windows に繋げると、キーボード配列がおかしくなり、
＠（アットマーク）キーを押したのに[（左角括弧）が入力されたりする。

英数、かなボタンで英字とかなの入力切り替えもできない。

色々調べた結果、幾つか解決策がある模様。

### 方法1：レジストリを書き換る（荒療治）
手順

+ ファイル名を指定して実行 ＞ regedit ＞ レジストリエディタを開く
+ 以下のパスに移動
  - コンピューター\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000411
+ Layout File を開く
+ KBDJPN.DLL => kbd106.dll に変える
+ 適用して Windows を再起動する
+ キー配列が戻る
  - 英数、かなキーで英字とかなの入力切り替えもできる

※本対応については、Microsoft の公式回答にも記載がある

+ https://docs.microsoft.com/ja-jp/archive/blogs/askcorejp/rs4-rdp-keyboardlayout
  - 出典：*Microsoft Docs => Windows 10 RS4 へのリモート デスクトップ接続時に、UWP アプリへの入力時のみキーボード配列が異なる事象について*


### 方法2：サインアウトで対応（安全策）
以下の対応方法は同僚から聞いた話で、試してはいないため参考までに。

Windows のキー配列は最初にサインイン（ログオン）したときのキーボードの配列が認識される模様。
今回の事象は、JP 配列の Windows でサインインした PC に
US 配列の Mac で接続したため、不整合が起きたのでは、とのこと。

つまり、Mac（接続元PC）でサインアウト＝＞サインインすれば US の配列が引き継がれるかもしれない。


## Beep 音で反応が遅延する
外部デバイスで音を鳴らしているせいか、Beep 音が発生する操作を行うと数秒フリーズすることがある。

特に Teraterm で補完機能を使うときの Beep で毎回止まる。
Beep 音を消したところこれが解消した。

### 対処1：開発時はこれでOK
+ Teraterm
  - TERATERM.INI を開く
    - 標準だと、C:\Program Files (x86)\teraterm 配下にある
  - Beep 行を探す
    - Beep=on の行
  - Beep=off にして保存
+ 一般的なテキストエディタで検索対象が無いときの警告音
  - Windows のタスクバーのサウンドアイコンを右クリック ＞ サウンド ＞ サウンドウィンドウが開く
  - サウンドタブ ＞ プログラムイベント枠
  - "メッセージ（情報）" の サウンド を （なし） にして適用
+ Eclipse で検索して最終行に達した時の Beep
  - Windows のタスクバーのサウンドアイコンを右クリック ＞ サウンド ＞ サウンドウィンドウが開く
  - サウンドタブ ＞ プログラムイベント枠
  - "一般の警告音" の サウンド を （なし） にして適用

### 対処2：リモート会議の場合
対処1は通常作業時の遅延をなくす点では有効だが、
この現象が発生した際はリモート会議などの音声出力でもフリーズしてしまうので、それは困る。

どうやら接続元PC（私の場合はMac）を再起動すると治る模様。

ただし、この現象は再発するので、
リモート会議の前には 対策1 の手順でサウンドウィンドウを開き、
ちゃんと音声が再生できるか確認し、
フリーズするようなら接続元PCを再起動して聞こえるようにしておかないと危ない。

なんでたまにフリーズするようになるんだろう。。不明


## 接続先PCに繋がらなくなるとき
リモートワークで一番困る問題。
Windows が Sleep してしまったり、NWアダプタが Sleep すると繋げなくなる模様。

とりあえず色々試している最中。

### 解決策１
Windows10 のスリープを無効にする。

+ スタートメニュー ＞ 歯車 ＞ システム ＞ 電源とスリープ ＞ スリープ枠
なし に変更

※以前、Windows がスリープしてしまい、接続できなくなった；

### 解決策２
NW アダプタのスリープを無効にする

+ Windows のタスクバーのネットワークアイコンを右クリック ＞ ネットワークとインターネットの設定を開く
  - 設定ウィンドウが開く
+ 右側にある アダプターのオプションを変更する を開く
  - ネットワーク接続ウィンドウが開く
+ イーサネットを右クリック ＞ プロパティ ＞ 構成
  - プロパティウィンドウが開く
+ 電源の管理タブ ＞ 電力の節約のために～ をオフにする（画像参照）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/7c13901c-ccd6-d245-f2b9-b516261f5c89.png)


## 接続先PCに繋がらなくなるとき：メモリ不足編
前述の対応をしても RDPが繋がらなくなる事象が発生した。
マシンの再起動を現地メンバーに協力頂き復旧。原因を調査した。

まず、イベントログを確認
ログインに失敗していた時間帯に以下のログが大量に出ていた

~~~
[ソース]
Service Control Manager

[全般タブの内容]
* パターン1
Microsoft Account Sign-in Assistant サービスを、次のエラーが原因で開始できませんでした: 
ReadProcessMemory 要求または WriteProcessMemory 要求の一部だけを完了しました。

* パターン2
WMI Performance Adapter サービスを、次のエラーが原因で開始できませんでした: 
システム リソースが不足しているため、要求されたサービスを完了できません。
~~~

夜間にも同様のリソース不足のエラーが幾つかでていた。
最後にログインできていた日の午後には パターン1 のエラーが数件確認できた。

また、ログインできていた日のイベントログには
上述のリソース不足のエラーは出ていないことから、
これが接続できなかった原因だと思われる。

接続先PCを再起動後、タスクマネージャを確認。
メモリ使用率が95%に達していた！
電力の消費が 非常に高い になっているプロセスも。。。

このことから、メモリが枯渇し、
リモートセッションのメモリを確保できなくなったことが原因と考えられる。

### 根本原因解消
リソース不足（メモリ高負荷）解消する。

#### 対策1：VM のメモリ
VirtualBOX に指定していた VM のメモリが大きすぎた。
1台当たり2GB割り当てていた。
当方のマシンはメモリが 16GB なので 12.5% も使用していた
ローカルで動かすだけなら 1GB あれば十分。

~~~
c.vm.provider :virtualbox do |p|
 p.memory = "1048"
end
~~~
#### 対策2：Teams アプリ
会議中以外はアプリを落とした。
200 MBも減った。

#### 対策3：Chrome（ブラウザ）
メールやTeams、UI開発などでTABを多く開いているせいか、メモリ使用率の総数が 900MB を超えていた。
Tab Memory Purge という Chrome アプリでタブを非活性化したところ、メモリ使用率が 200MB 台まで減少。

起動オプションに "--disable-gpu" を追加し、GPUのメモリ使用率を下げてみるのもいいらしい。
ただし、テキストがギザギザになりかなり見辛くなるので注意。

+ Chrome のショートカットを右クリック > プロパティ
+ リンク先の最後に "--disable-gpu" を追加


### 結果
メモリ使用率を 70% まで落とすことができた。
IDE の Eclipse が少し重い（高負荷時は 500 MB くらい使う）けれど、
これ以上は減らせるものが無い（細かいものはあるかもしれない）ので、
ひとまずこれで様子を見る。

また、作業完了後（退勤後）は、VM、IDE、ブラウザを落とすことで、
メモリ使用率が 30% 台まで減った。
休日中も接続先 PC はつけっぱなしなので、こうして少しでもメモリ使用率を減らしてあげたい。


## Mac キーボードで Windows のあの操作をするには
操作 | Windows のキー | Mac のキー | 補足
--- | --- | --- | ---
スクロールUp/Down | PageUP / PageDown | fn + ↑ / ↓ | 大体 fn つければ再現可能
TAB切り替え | ctrl + PageUP / Down | fn + ctrl + ↑ / ↓ | 
行の先頭、終端 | Home / End | fn + ← / → | 
ファイルの先頭、終端 | ctrl + Home / End | fn + ctrl + ↑ / ↓ | 
現在位置から右を全て選択 | shift + → | fn + shift + → | 
スクリーンショット | Windowsキー + shift + s | command + shift + s | 部分選択版
右クリック | 右Windowsキー | fn + shift + F10 or shift + F10 ※1 | これは一番使う
ファイル名変更 | F2 | fn + F2 or F2 ※1 | 他のFxキーも同じ操作で再現可能※1
teraterm で貼りつけ | 右クリック | alt(option) + v | 実はリモートでなくても同じ

※1：以下の設定を行うと、ファンクションキー（Fxキー）を使う操作を fn キーを押さずに実行できる。
ただし、Mac 側の設定も変わるので注意。

+ Mac 側の システム環境設定 > キーボード > キーボードタブ を開く
+ "F1, F2 などのキーを標準のファンクションキーとして使用" にチェックを入れる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/85715b0d-4f9f-b4b3-134a-14468860a75f.png)


## 接続先の画面が真っ黒になる事象（部分的に解決）
接続元と接続先が両方 Windows の場合、まれに 接続には成功するが画面は真っ黒 というケースがあるらしい（同僚の体験談）。

検索したところ、以下のページ解決策がいくつか提示されていた（試してはいない）。

+ https://itojisan.xyz/trouble/13339/#i
  - 出典：*ITHOOK => Windows10 – リモートデスクトップ接続で黒い画面になる時の対処法*

### 2025/02 追記
Windows11 の場合でも発生。
以下は実際の事象と繋がるまでの対応。

1. 接続先PCにて、モニタの出力ケーブル、または電源を抜いた（マルチディスプレイの1台目）
1. リモート接続すると、画面が真っ黒のままになった
1. 接続先PCにて、マルチディスプレイの設定を元に戻したが、リモート接続では画面が真っ黒のまま
1. 接続先PCを再起動すると、リモート接続もできるようになった

◆まとめ
接続先PCのモニタの出力ケーブル、または電源を抜いた場合、念のため接続先PC自体も再起動した方が良い。
※画面が真っ黒になる詳細な理由は不明


## プロキシ認証を毎回聞かれて困る（未解決）
リモート接続で作業しているとたまに以下の Window が出てくる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568441/248aa085-1637-b1ae-59fe-6572b1a2d2f4.png)

プロキシなんて使用していないのになぜ出てくるのだろうか。
VPN の 詳細＞プロキシ で何一つONにしていないのに。。。

とりあえず毎回キャンセルで消しているけれど、何が原因で出るのだろう？