この記事では、 Continue を選択して、読み取りアクセス許可のないファイル システム フォルダーにアクセスする際の問題の解決策について説明します。
元の KB 番号: 950934
はじめに
この記事では、Windows エクスプローラーで Continue を選択して、読み取りアクセス許可のないファイル システム フォルダーにアクセスするように求めるシナリオについて説明します。 また、この動作の特定の側面を回避するための回避策についても説明します。 この問題は、Windows Vista 以降のバージョンの Windows および Windows Server 2008 以降のバージョンの Windows Server で発生します。 Windows エクスプローラーは、Windows 8 以降のバージョンではエクスプローラーと呼ばれます。
詳細
ユーザー アカウント制御 (UAC) が有効になっており、Windows エクスプローラーを使用して、読み取りアクセス許可がないフォルダーにアクセスするとします。 さらに、フォルダーは非表示属性とシステム属性の両方でマークされません。 この場合、Windows エクスプローラーに次のメッセージが表示されるダイアログ ボックスが表示されます。
現在、このフォルダーにアクセスするアクセス許可がありません。 [続行] をクリックすると、このフォルダーに完全にアクセスできます。
Note
Windows Vista および Windows Server 2008 では、2 番目の文には単語が完全に含まれません。このフォルダーにアクセスするには、 Click Continue と表示されます。
その後、 Continue または Cancel を選択できます。 ([続行] は既定で選択されています)。 Continue を選択した場合、UAC はユーザーに代わって管理者権限の取得を試みます。 UAC 昇格プロンプトの動作を制御する UAC セキュリティ設定に応じて、管理者グループのメンバーであるかどうかに応じて、同意または資格情報の入力を求められる場合があります。 または、プロンプトがまったく表示されない場合があります。 UAC が管理者権限を取得できる場合、バックグラウンド プロセスによって、フォルダーとそのすべてのサブフォルダーとファイルに対するアクセス許可が変更され、ユーザー アカウントにアクセス権が付与されます。 Windows Vista および Windows Server 2008 では、バックグラウンド プロセスによってユーザー アカウントに読み取りと実行のアクセス許可が付与されます。 新しいバージョンの Windows では、このプロセスによってユーザー アカウントにフル コントロールが付与されます。
この動作は仕様によるものです。 ただし、UAC 昇格の一般的なパターンは管理者権限で昇格されたプログラムのインスタンスを実行するため、ユーザーは Continue を選択すると、Windows エクスプローラーの昇格されたインスタンスが生成され、ファイル システムのアクセス許可に永続的な変更を加えないことを期待できます。 ただし、Windows エクスプローラーの設計では、対話型ユーザー セッション内の異なるセキュリティ コンテキストでの複数のプロセス インスタンスの実行がサポートされていないため、この想定は不可能です。
UAC が無効になっている場合、UAC 昇格はできません。 Windows エクスプローラーを含め、Administrators グループのメンバーによって実行されるすべてのプログラムには、常に管理者権限があります。 そのため、管理者は、管理者権限を必要とするリソースにアクセスするために昇格を使用する必要はありません。 たとえば、フォルダーが Administrators グループとシステム アカウントにのみアクセス権を付与する場合、管理者はフォルダーのアクセス許可を変更するように求められることなく、フォルダーを直接参照できます。 ユーザーが読み取りアクセス許可を持っていない場合、Windows エクスプローラーには、前に説明したダイアログ ボックスが表示されます。 ただし、UAC が無効になっている場合、Windows は UAC 昇格プロンプトを使用してユーザーの管理者資格情報を要求できません。 そのため、Windows は、ファイル システムのアクセス許可を変更するための管理アクセス許可を持つバックグラウンド プロセスを開始しません。
ただし、ユーザーが Continue を選択し、フォルダーの現在のセキュリティ記述子がオブジェクトのアクセス許可の読み取りと変更の両方に対するアクセス許可をユーザーに付与した場合、Windows はユーザーの現在のセキュリティ コンテキストでバックグラウンド プロセスを開始し、フォルダーのアクセス許可を変更して、前述のようにユーザーにより大きなアクセス許可を付与します。 ユーザーは、オブジェクトの所有権またはオブジェクトのアクセス制御リスト (ACL) からオブジェクトのアクセス許可を読み取り、変更するアクセス許可を持つことができます。
既知の問題
この機能により、予期しない動作が発生する可能性があります。 たとえば、管理者グループに属していて、Windows エクスプローラーを使用して管理アクセスが必要なフォルダーにアクセスするとします。 アクセス許可が変更された後、ユーザー アカウントを介して実行されているプログラムは、プログラムが昇格されていない場合でも、アカウントが Administrators グループから削除された後でも、フォルダーを完全に制御できます。 このような変更されたアクセス許可は、組織のセキュリティ ポリシーに違反する可能性があり、セキュリティ監査でフラグが設定される可能性があります。 さらに、プログラムがファイル システムのアクセス許可を確認した場合、アクセス許可が変更された場合は実行を拒否する可能性があります。
UAC は、「Windows Server でユーザー アカウント制御 (UAC) を無効にする方法に関するページで説明されている制約のある状況を除き、すべてのケースで有効にしておく必要があります。
回避策 1
管理者のみがアクセスできるフォルダーのアクセス許可を変更しないようにするには、Windows エクスプローラーを使用する代わりに、管理者特権で実行できる別のプログラムを使用することを検討してください。 たとえば、コマンド プロンプト、PowerShell、共有管理用のコンピューター管理 MMC スナップインなどがあります。
回避策 2
通常のユーザーがアクセスできないようにロックダウンされたアプリケーション固有のフォルダーがある場合は、カスタム グループのアクセス許可を追加してから、承認されたユーザーをそのグループに追加することもできます。 たとえば、アプリケーション固有のフォルダーが Administrators グループとシステム アカウントにのみアクセス権を付与するシナリオを考えてみます。 このような場合は、ドメインまたはローカルの AppManagers グループを作成し、承認されたユーザーを追加します。 次に、icacls.exe、フォルダーの [プロパティ] ダイアログ ボックスの [セキュリティ] タブ、PowerShell Set-Acl コマンドレットなどのユーティリティを使用して、既存のアクセス許可に加えて、AppManagers グループにフォルダーのフル コントロールを付与します。
AppManagers のメンバーであるユーザーは、Windows エクスプローラーを使用してフォルダーを参照できます。UAC でフォルダーのアクセス許可を変更する必要はありません。 この代替方法は、アプリケーション固有のフォルダーにのみ適用されます。 C:\Windows\ServiceProfiles
など、Windows オペレーティング システムの一部であるフォルダーにアクセス許可を変更しないでください。