Windows エクスプローラーでフォルダー アクセスに [続行] を選択すると、ユーザー アカウントがフォルダーの ACL に追加されます

この記事では、[ 続行] を選択して、読み取りアクセス許可のないファイル システム フォルダーにアクセスする場合の問題の解決策を示します。

適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 950934

概要

この記事では、Windows エクスプローラーが [続行] を選択して、読み取りアクセス許可のないファイル システム フォルダーにアクセスするように求めるシナリオについて説明します。 また、この動作の特定の側面を回避するための回避策についても説明します。 この問題は、Windows Vista 以降のバージョンの Windows および Windows Server 2008 以降のバージョンの Windows Server で発生します。 Windows エクスプローラー は、Windows 8 以降のバージョンでは エクスプローラー と呼ばれます。

詳細

ユーザー アカウント制御 (UAC) が有効になっており、Windows エクスプローラーを使用して、読み取りアクセス許可のないフォルダーにアクセスするとします。 さらに、フォルダーは非表示属性とシステム属性の両方でマークされません。 このような場合、Windows エクスプローラーは、次のメッセージを表示するダイアログ ボックスを表示します。

現在、このフォルダーにアクセスするためのアクセス許可がありません。 [続行] をクリックして、このフォルダーに完全にアクセスします。

注:

Windows Vista および Windows Server 2008 では、2 番目の文には単語が永続的に含まれません。 [続行] と表示され、このフォルダーにアクセスできます。

その後、[ 続行 ] または [キャンセル] を選択できます。 ([続行] は既定で選択されています)。 [続行] を選択すると、UAC はユーザーに代わって管理者権限の取得を試みます。 UAC 昇格プロンプトの動作を制御する UAC セキュリティ設定と、Administrators グループのメンバーであるかどうかに応じて、同意または資格情報の入力を求められる場合があります。 または、まったくプロンプトが表示されない場合があります。 UAC が管理者権限を取得できる場合、バックグラウンド プロセスによって、フォルダーとそのすべてのサブフォルダーとファイルに対するアクセス許可が変更され、ユーザー アカウントにアクセス権が付与されます。 Windows Vista と Windows Server 2008 では、バックグラウンド プロセスによってユーザー アカウントに読み取りと実行のアクセス許可が付与されます。 以降のバージョンの Windows では、このプロセスによってユーザー アカウントにフル コントロールが付与されます。

この動作は仕様です。 ただし、UAC 昇格の一般的なパターンは管理者権限を持つ昇格されたプログラムのインスタンスを実行するため、ユーザーは[続行] を選択することで、Windows エクスプローラーの昇格されたインスタンスを生成し、ファイル システムのアクセス許可を永続的に変更しないことを期待できます。 ただし、Windows エクスプローラーの設計では、対話型ユーザー セッションで異なるセキュリティ コンテキストでの複数のプロセス インスタンスの実行がサポートされていないため、この期待は不可能です。

UAC が無効になっている場合、UAC 昇格はできません。 Windows エクスプローラーを含む Administrators グループのメンバーによって実行されるすべてのプログラムには、常に管理者権限があります。 そのため、管理者は昇格を使用して管理者権限を必要とするリソースにアクセスする必要はありません。 たとえば、フォルダーが Administrators グループとシステム アカウントにのみアクセスを許可する場合、管理者はフォルダーのアクセス許可を変更するように求められることなく、直接参照できます。 ユーザーに読み取りアクセス許可がない場合、Windows エクスプローラーは前に説明したダイアログ ボックスを表示します。 ただし、UAC が無効になっている場合、WINDOWS は UAC 昇格プロンプトを使用してユーザーの管理者資格情報を要求できません。 そのため、Windows は、ファイル システムのアクセス許可を変更するための管理アクセス許可を持つバックグラウンド プロセスを開始しません。

ただし、ユーザーが [ 続行 ] を選択し、フォルダーの現在のセキュリティ記述子がオブジェクトのアクセス許可の読み取りと変更の両方に対するアクセス許可をユーザーに付与する場合、Windows はユーザーの現在のセキュリティ コンテキストでバックグラウンド プロセスを開始し、前述のようにフォルダーのアクセス許可を変更してユーザーにより大きなアクセス許可を付与します。 ユーザーは、オブジェクトの所有権またはオブジェクトのアクセス制御リスト (ACL) からオブジェクトのアクセス許可を読み取り、変更するためのアクセス許可を持つことができます。

既知の問題

この機能により、予期しない動作が発生する可能性があります。 たとえば、Administrators グループに属していて、Windows エクスプローラーを使用して管理アクセスが必要なフォルダーにアクセスするとします。 アクセス許可が変更された後、ユーザー アカウントを介して実行されているプログラムは、プログラムが昇格されていない場合でも、アカウントが Administrators グループから削除された後でも、フォルダーを完全に制御できます。 このような変更されたアクセス許可は、organizationのセキュリティ ポリシーに違反する可能性があり、セキュリティ監査でフラグが設定される可能性があります。 さらに、プログラムがファイル システムのアクセス許可を確認した場合、アクセス許可が変更された場合に実行を拒否する可能性があります。

Windows Server でユーザー アカウント制御 (UAC) を無効にする方法」で説明されている制約付き状況を除き、すべてのケースで UAC を有効にしたままにする必要があります。

回避策 1

管理者のみがアクセスできるフォルダー内のアクセス許可を変更しないようにするには、Windows エクスプローラーを使用するのではなく、管理者特権で実行できる別のプログラムを使用することを検討してください。 たとえば、共有管理用のコマンド プロンプト、PowerShell、コンピューター管理 MMC スナップインなどがあります。

回避策 2

通常のユーザーがアクセスできないようにロックダウンされているアプリケーション固有のフォルダーがある場合は、カスタム グループのアクセス許可を追加してから、承認されたユーザーをそのグループに追加することもできます。 たとえば、アプリケーション固有のフォルダーが Administrators グループとシステム アカウントにのみアクセスを許可するシナリオを考えてみましょう。 このような場合は、ドメインまたはローカル AppManagers グループを作成し、承認されたユーザーを追加します。 次に、icacls.exe、フォルダーの [プロパティ] ダイアログ ボックスの [セキュリティ] タブ、PowerShell Set-Acl コマンドレットなどのユーティリティを使用して、既存のアクセス許可に加えて、AppManagers グループにフォルダーのフル コントロールを付与します。

AppManagers のメンバーであるユーザーは、フォルダーのアクセス許可を変更しなくても、Windows エクスプローラーを使用してフォルダーを参照できます。 この代替方法は、アプリケーション固有のフォルダーにのみ適用されます。 Windows オペレーティング システムの一部であるフォルダー (など C:\Windows\ServiceProfiles) にアクセス許可を変更しないでください。