icacls コマンドで、オブジェクトに削除拒否の設定を行うと、リモートからの接続時にアクセスが拒否されることがあります

現象
以下の icacls コマンドで、削除拒否の設定が行われたファイルやフォルダーに対し、SMBv2 プロトコルを使用してリモートから接続すると、接続時にアクセスが拒否されます。
icacls "<ファイルまたはフォルダーのパス>" /deny <ユーザー名>:(D)
原因
SMBv2 プロトコルでは、アクセスしてきたユーザーに対して、読み取り権限に加え、SYNCHRONIZE のユーザー アクセス権を持っているかどうかについての確認も行います。
SYNCHRONIZE のユーザー アクセス権を持たないユーザーが SMBv2 プロトコルを使用してファイルやフォルダーにリモートから接続すると、接続時にアクセスが拒否されます。
icacls コマンドの (D) オプションは、DELETE と SYNCHRONIZE のユーザー アクセス権を操作します。
/deny オプションとともに用いることで、DELETE と SYNCHRONIZE のユーザー アクセス権の拒否を明示的に設定します。
その結果、icacls コマンドの /deny オプションと (D) オプションで削除拒否の設定が行われたファイルやフォルダーに対し、SMBv2 プロトコルを使用してリモートから接続すると、接続時にアクセスが拒否される事象が発生します。

SMBv2 は、Windows Vista 以降で導入されました。
SMBv2 は、接続元と接続先の両方のコンピューターでサポートされている場合にのみ利用されます。
それ以外の場合 (Windows XP からアクセスしている場合など) は、従来の SMBv1 が利用されます。
SMBv1 を利用してアクセスされた場合は、SYNCHRONIZE のユーザー アクセス権があるかどうかについての確認が行われないため、本事象は発生しません。
ただし、 Windows Vista、Windows Server 2008、Windows Server 2008 R2、Windows 7 において、SMB2 および OpLock を無効化した場合には、SYNCHRONIZE のユーザー アクセス権を確認する動作となります。

解決方法
ファイルやフォルダーに対して削除拒否の設定を行う際、icacls コマンドの (DE) オプションを使用します。
(DE) オプションは、DELETE のユーザー アクセス権のみを操作します。

icacls "<ファイルまたはフォルダーのパス>" /deny <ユーザー名>:(DE)

ファイルやフォルダーに対して SYNCHRONIZE のユーザー アクセス権が拒否されているかどうかを確認するためには、cacls コマンドを実行します。

cacls "<ファイルまたはフォルダーのパス>"
ファイルやフォルダーに対して SYNCHRONIZE のユーザー アクセス権が拒否されている場合の上記 cacls コマンドの実行結果の例を記載します。
-------------------------------------------------------------------------------------
<ファイルまたはフォルダーのパス> <ユーザー名>:(DENY)(特殊なアクセス:)
                               DELETE
                               SYNCHRONIZE
-------------------------------------------------------------------------------------


既にファイルやフォルダーに対して SYNCHRONIZE のユーザー アクセス権の拒否が設定されており、これを修正したい場合には、一度該当ユーザーに対して拒否されたすべての権限を削除したのちに、再度必要な拒否の設定を追加します。 

icacls "<ファイルまたはフォルダーのパス>" /remove:d <ユーザー名>icacls "<ファイルまたはフォルダーのパス>" /deny <ユーザー名>:(DE)
icacls の /removed:d オプションは、SYNCHRONIZE や DELETE 以外にも、指定したユーザーに対するすべての拒否設定を削除します。
DELETE のユーザー アクセス権以外にも、拒否すべきユーザー アクセス権がある場合には、それらについても icacls の /deny オプションで再設定します。
詳細
GUI (ファイルやフォルダーのプロパティ) からは、SYNCHRONIZE のユーザー アクセス権の許可 / 拒否について設定を確認したり、明示的に変更したりする方法はございませんが、GUI からセキュリティ設定を変更し、適用した時点で、SYNCHRONIZE のユーザー アクセス権を拒否する設定が失われます。

注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2784859 - 最終更新日: 09/29/2016 09:39:00 - リビジョン: 3.0

Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Standard, Windows 7 Ultimate, Windows 7 Enterprise, Windows 7 Professional

  • kbtshoot kbhowto kbsetup KB2784859
フィードバック
" /deny <ユーザー名>:(D)(D) オプションは、DELETE と SYNCHRONIZE のユーザー アクセス権を操作します。/deny とともに用いることで、DELETE と SYNCHRONIZE のユーザー アクセス権を明示的に拒否します。SMBv2..." />
" /deny <ユーザー名>:(D)(D) オプションは、DELETE と SYNCHRONIZE のユーザー アクセス権を操作します。/deny とともに用いることで、DELETE と SYNCHRONIZE のユーザー アクセス権を明示的に拒否します。SMBv2..." />