0

标题说了算。我正在寻找一种方法来确定该可执行文件正在尝试访问哪个文件/注册表项。我尝试使用 Windows审核功能Process Monitor来确定故障发生的位置,但是,此故障不会产生审核失败事件或在 Process Monitor 中显示为拒绝访问。

当然,如果有人经历过这种情况并且可以提供直接解决错误的解决方案,那将几乎一样好。

背景:

我正在使用 moveuser.exe,它是Windows Server 2003 资源工具包工具的一部分,用于转换多个 Windows XP 工作站上本地用户配置文件的安全性。

症状:

有时,moveuser.exe 将无法转换配置文件的安全性,并出现错误“错误:5 访问被拒绝”。我无法确定失败帐户或它们所在的计算机之间的任何共性。一台给定的计算机可能有 6 个主机配置文件,其中 5 个转换没有问题,1 个产生错误。

我确信有几个因素:

- 我用来运行 moveuser.exe 的帐户对本地计算机和配置文件安全性转换到的域具有完全的管理员权限。

- 失败与配置文件目录中的文件权限无关(整个目录可以移动、重命名、删除或通过变通方法成功转换)。

我已经为这些情况开发了一个可靠的解决方法,但是它相当复杂,我更愿意了解这个错误的根本原因并先发制人地纠正它。

我的解决方法(很高兴分享它,为了简洁而省略)似乎表明失败与 HKEY_LOCAL_MACHINE \ SOFTWARE\ Microsoft\ Windows NT \ CurrentVersion \ ProfileList 注册表项有关,但是我无法确定确切的方式/原因。

4

4 回答 4

0

您是否尝试使用“regini”命令行工具来获取管理员帐户的注册表权限?

于 2009-02-08T09:28:40.007 回答
0

使用 FileMon 和 RegMon(现在是 Microsoft,以前的 SysInternals,仍然免费)监控正在访问的内容、方式以及请求的权限/访问权限。

我没有方便的 URL,但 Google 搜索应该能够让您使用这些工具。

于 2009-02-10T19:13:20.880 回答
0

我会尝试一些项目。首先,可能是用户已登录并且计算机尚未重新启动。Microsoft 有一个名为UPHClent的产品,它有助于卸载不需要的用户配置单元。

接下来我想知道的是,如果您在运行 moveuser 可执行文件之前尝试重新启动。此对话似乎表明这将有助于解决此类错误。

于 2009-02-15T02:36:39.500 回答
0

发布此消息两天后,我找到了问题的根源。事实证明,正如 Rob Haupt 建议的与卡住的用户蜂巢有关。我正在运行的程序 moveuser 正在读取在下面找到的 Refcount 键HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows NT\ CurrentVersion\ ProfileList\ <SID>\并立即结束。

将 Refcount 设置为 0 立即解决了问题

先发制人地向所有目标机器推出UPHClean几乎消除了问题,上周我们能够在数百台机器上成功转换配置文件。

关于 UPHClean 的重要说明:

我之前尝试过安装它,但它似乎没有帮助。我太不耐烦了,UPHClean 自述文件显示该服务只需要时间来完成它的工作。

于 2009-02-18T06:47:44.037 回答