[Windows] 隠し共有と管理共有

  • 投稿日:
  • by
  • カテゴリ:

Windowsでネットワーク越しにフォルダーやファイルを参照するには、フォルダーを共有する必要があります。
(ファイル自体を直接共有することはできない)
共有フォルダーを作成するにはフォルダーの[プロパティ]を開き、[共有]タブを選択して[詳細な共有]ボタンを押下し、[このフォルダーを共有する]チェックボックスをオンにします。
この際[共有名]を入力しますが、フォルダー名と異なる名前でもOKです。また、複数の名前を付けることも可能です。

共有フォルダーをネットワーク上に公開したくない(つまり、「知る人ぞ知る」状態にする)場合、[共有名]の名前の後ろに"$"を付けると非表示になります。
これを隠し共有と呼びます。上記の複数の名前を付ける際、隠し共有と共有することも可能です(あまり意味はありませんが)。
例えばサーバーserver1の共有名「carol」を隠し共有にする場合、共有名は「carol$」となります。
このとき、隠し共有にアクセスするには「\\server1\carol$」となります。
ちなみに共有名が「carol$」なので、サブフォルダーにアクセスする場合は「\\server1\carol$\subfolder」というように"$"の後に"\"を付ける必要があります。

Windowsにはインストール時に自動的に隠し共有として設定されるドライブやフォルダーが存在します。これを管理共有と呼びます。
基本的に全てのドライブは管理共有になっています。なので、「\\server1\C$」とするとserver1のCドライブにアクセスすることができます。
(ただし認証が必要な場合がある)
管理共有を確認するには管理ツールの「コンピューターの管理」で、[システムツール]-[共有フォルダー]-[共有]と展開すると表示されます。
ここで共有を停止することができますが、一時的なものでServerサービスの再起動やシステム再起動時に復活します。
管理共有を一括で無効にするにはレジストリを変更した後再起動する必要があります。

キー: HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters
名前: AutoShareServer(サーバー系OSの場合)、AutoShareWks(クライアント系OSの場合)
型: REG_DWORD
値: 0

値が1、あるいはレジストリが存在しない場合は管理共有が有効になっています。
この方法の場合、ドライブだけでなくシステム用の管理共有(ADMIN$など)も無効となるため、実施する場合はシステムの動作に影響がないことを確認してから実施してください。
管理共有は接続先のコンピューターのIDとパスワードさえ知っていれば(接続先で感知されない状態で)接続できるため、外部からのアクセス方法を絞っている場合は無効化した方がよいかもしれません。

(参考) How to remove administrative shares in Windows Server 2008
https://support.microsoft.com/en-us/kb/954422