【问题标题】:How to find the root cause for some Access Denied error on a windows machine?如何在 Windows 机器上找到某些 Access Denied 错误的根本原因?
【发布时间】:2011-04-11 07:34:16
【问题描述】:

我想知道是否有一种方法可以发现 Windows 框上的访问被拒绝错误的确切原因。

例如,我的这段代码在 Win2008R2 上运行时因访问被拒绝而崩溃。我希望 ProcMon 能准确地告诉我哪个资源被拒绝访问 - 它没有,尽管我没有过滤事件。

所以,我有点迷茫 - 我到底应该如何解决它?

作为参考,我尝试运行的代码是ICertAdmin2.ResubmitRequest。它在提升时运行正常,但在未提升时运行时拒绝访问失败:

System.UnauthorizedAccessException: CCertAdmin::ResubmitRequest: Access is denied. 0x80070005 (WIN32: 5)
   at CERTADMINLib.ICertAdmin2.ResubmitRequest(String strConfig, Int32 RequestId)

在此先感谢所有好心人。

【问题讨论】:

    标签: security permissions privileges


    【解决方案1】:

    ProcMon 不会,但 filemon 可能会。它会告诉您成功/拒绝和搜索。

    它可能会尝试写入程序文件(但不限于此),但 filemon 会告诉你

    【讨论】:

    • ProcMon 取代了 FileMon 和 RegMon。事实上,SysinternalsSuite 不包含后者。
    • 没有,但是老filemon很擅长快速磨练这些东西,我还有那个老的。
    • 我没有任何理由相信 ProcMon 不及 FileMon。我曾经使用 FileMon,现在我使用 ProcMon,但我从来没有看到前者比后者有任何优势。无论如何,Sysinternals 不再支持 FileMon。
    • Sysinternals 不幸被 MS 收购了。好的,但是如果您无法找到失败的文件,这将很难解决,因为以前我总是找到失败的文件并且没有任何逃脱的文件。
    • 问题在于,它可能毕竟不是文件对象。这就是 ProcMon 看不到它的原因。 (并不是因为它不如 FileMon,事实并非如此)。
    【解决方案2】:

    您收到的错误代码类似于 COM HRESULT 错误代码。所有这些都有特定的含义。查看here 了解更多如何解释它们。

    【讨论】:

    • 我不需要这个网站。 Microsoft Windows SDK 中的 WinError.h 文件包含以下内容: // // 一般访问被拒绝错误 // #define E_ACCESSDENIED _HRESULT_TYPEDEF_(0x80070005L)
    • 这是网络访问被拒绝还是仅在本地计算机上?
    • 这是本地机器。 CA 和我的实用程序都在同一台机器上运行。不涉及共享文件夹。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多