
デフォルトの場所 ( %SYSTEMDRIVE%\Perflogs
) に CSV ファイルに書き込むパフォーマンス カウンターがいくつかあります。作成されるディレクトリは「特別」です。それらを参照しようとすると、エクスプローラーがエラーを表示します。
「続行」をクリックすると、エクスプローラーでディレクトリを参照する際に問題が起こらなくなります。
ただし、権限が昇格されていない cmd シェル経由でディレクトリにアクセスしようとすると、ACCESS_DENIED が返されます。権限が昇格された cmd を使用すると、問題なくデータ ファイルにアクセスできます。
icacls はディレクトリについてこれを報告します (ディレクトリを参照する前に)
MEMTEST2_20190724-000004 NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
BUILTIN\Performance Log Users:(OI)(R)
私が実行しているユーザーは既に にいますPerformance Log Users
。
- 「このフォルダに永続的にアクセス」すると、実際に何が起こるのでしょうか?
- このディレクトリは、実際には昇格されていないアクセスに対してどのように保護されていますか?
- パフォーマンス カウンターを再構成して別の場所に書き込むことなく、ディレクトリを「保護解除」する良い方法はありますか?
- 私は読むこの答えでは、カウンターの開始時にディレクトリの保護を解除するイベント リスナーを作成する方法が説明されています。他に方法はないのでしょうか?
答え1
この動作は、ユーザー アカウント制御によって発生します。実行するプロセス (Windows エクスプローラーや CMD を含む) には、管理者グループに属していても実際には管理者権限がないため、「管理者として実行」コマンドを使用して明示的に管理者権限を要求する必要があります。ただし、エクスプローラー自体でこれを行うことはできません。エクスプローラーは常に実行されているため、別の昇格されたインスタンスを実行することはできません (最初にエクスプローラーを終了してシェルを失う場合を除きます。これは実行可能ですが、面倒な回避策が必要です)。
しかし、Windowsエクスプローラー自体はUACの仕組みを認識しているため、管理者のみがアクセスできるフォルダにアクセスしようとすると、は管理者のメンバーであるが、管理者モードで実行されていない場合、フォルダーへの「永続的なアクセス」を取得するかどうかを尋ねられます。Continue
ユーザーアカウントの明示的な許可ACEがフォルダに追加されます: これにより、管理者権限に頼るのではなくフォルダーに直接アクセスできるようになり、UAC をバイパスできます。
私が不思議に思うのは、これはUACとエクスプローラーの標準的な(ただし議論の余地はある)動作であるが、管理者権限が関係する場合にのみ発生します; フォルダーにアクセスできる通常の (管理者以外の) グループに属しているためにフォルダーにアクセスできる場合は、UAC はまったく関与しません。
Windows が UAC に関する限り「Performance Log Users」グループを「Administrators」グループと同様に扱い、そのメンバーシップを実際に使用するには昇格が必要になる場合を除きます。この場合、それは私にとっては初めての情報であり、どこにも参照されていません。