MacにVNC(画面共有)で入れなくなってしまった件

スポンサードリンク
【7/13 追記】
Apple Remote Desktopのアップデートで問題が解消しました

先日、自宅に置いてあるMacをVNC(画面共有)で操作しようとしたところ、以下のような表示が出て、接続はできていたものの、ログインできず、エラー画面から進むことができませんでした。

選択されたユーザーアカウントは利用できません。
ネットワーク接続を確認して、もう一度ユーザーアカウントに切り替えてください。ネットワークに接続している場合は、システム管理者に問い合わせてください。

原因さがし

なぜ、ちょっと前まで無事に動作していた画面共有が急に使えなくなってしまったのか。ちょっと考えてみました。
このような問題は、アップデートによる不具合の可能性が高いと思ったので、App Storeのアップデートタブを開くと…
Apple Remote Desktopの更新履歴を発見しました。(以下、ARDと表記。)しかし、一度アップデートしたら、元に戻すことはできないようなので、ARDがアップデートされたことだけはわかりましたが、直接の原因は分かりませんでした。

不具合を起こしているアプリケーションの正体

エラーメッセージを読み取ると、

  1. ネットワーク越しにログインする機能が正常に動作していない
  2. アカウントに何らかの変更がなされていて、ネットワーク越しにログインできない

という2つの可能性が予想できます。
1つ目は、ARDが正常に動作していない状態
2つ目は、ユーザーアカウントが壊れてしまっている状態だと考えることができます。
エラーメッセージの画面から一切動けない状態であることから、1つ目を疑ってみました

ARDが正常でないということを裏付けるために、外付けSSDにOS Xをへインストールして、Yosemiteのまっさらな環境を作って、画面共有をやってみました。するとやはり、問題なく動作しました。
しかし、ARDをアップデートすると、同じ現象に陥りました。

ARDの実体は、ARDAgent.appというアプリケーションで、
場所は

System/Library/CoreServices/RemoteManagement/ARDAgent.app

にあります。
RemoteManagementというフォルダには、画面共有に必要なファイルがいくつか入っています。
その中のファイルをARDのアップデート前(まっさらなYosemite環境)とアップデート後とで比較すると、バージョンが違いました。
アップデート前に、ここにあったファイルをバックアップしておいたので、1つずつ置き換えてみました
すると、screensharingd.bundleというファイルが、今回の不具合の原因でした。

結論と解決方法

解決方法は、

  1. ARDをアップデートしない
  2. screensharingd.bundleを、古いバージョンに戻す

のどちらかです。
1番目の、「ARDをアップデートしない」という方法は、「アップデートしてしまった/されてしまった」場合にはとることができません
ARDが「アップデートしてしまった/されてしまった」場合にはどうしたらよいのか、以下にまとめました。

screensharingd.bundleを、古いバージョンに戻すには

  1. OS Xを再インストールする
  2. 外付けSSDにOS Xをへインストールして、Yosemiteのまっさらな環境を作り、古いバージョンのscreensharingd.bundleを取り出す

以上の2つの方法があります。

「OS Xを再インストールする」と聞くと、データがすべて消えてしまうような気がしますが、特にHDをフォーマットしなければ、アプリケーションやデータに触らずOS Xだけ再インストールできます。
私も、最初はどのファイルが原因なのかわからなかったので、再インストールで解決していました。(原因を検証した結果、分かったことをこの記事にしています。)

OS Xの再インストールには抵抗があるという場合は、2番目の方法をとるといいかと思います。
また、未検証ですが、TimeMachineから該当ファイルをコピーしても、よいのかもしれません。

これで、しばらく悩んでいた、VNCが使えない状態から解放されました。
同じ症状でお悩みの方は、ぜひ試してみてください!