在特定条件下删除注册表项

在特定条件下删除注册表项

我有一个棘手的问题需要解决。浏览互联网一段时间了,但到目前为止还没有解决它。如果这个问题已经在其他地方得到解答,请见谅。

我负责一个呼叫中心。我们的域内有大约 70 台电脑。每天大约有 120 名员工使用这些电脑。当他们第一次登录电脑时,会创建一个用户配置文件。

我们使用来自不同供应商的呼叫中心专用软件。它们中的大多数都是基于“每个配置文件”而不是“每个 PC”运行的。这意味着所有设置都存储在用户配置文件中。随着时间的推移,这变成了一个巨大的混乱,因为每个用户的软件设置都不同。现在,当我想实施一个设置时,它并不适用于所有用户/配置文件/PC,因为有些设置是矛盾的,不能同时使用。我需要根据每个配置文件来处理这种情况。想象一下噩梦——70 台 PC x 120 个用户——这根本不可行。

我想要/需要统一设置。为此,我开始开发一个脚本,可以将所需的设置复制到配置文件中;但是,我很快意识到变量太多,“if”语句列表无穷无尽。

我发现清理混乱的最佳解决方案是从每台电脑中删除所有用户。这样我就可以在域用户下次登录电脑时自动复制所需的设置(在创建其个人资料时)。

这还将允许我恢复一些硬盘空间 - 我们的员工流动率非常高,虽然旧用户已从域中删除,但他们的用户配置文件仍然存在于每台机器上。检查一些电脑后,我发现有数百个过时的用户。

我发现删除每台计算机的用户配置文件可以一举两得。问题是我想正确地完成这件事。我发现有两种方法可以做到这一点。一种方法是使用 Windows GUI - 允许一次只选择一个配置文件;因此,完全不适合我的情况。

另一种方法是删除所有所需文件夹,然后删除相关注册表项。问题是我想删除除三个之外的所有配置文件。它们存在于每台 PC 上 - “Default”、“piotr”(我的配置文件)和“confirmit”(我们用于某些任务的配置文件)。

我已经用 .bat 文件完成了第一部分(删除文件夹)。现在我需要执行第二部分(删除注册表项);但是,我完全不知道从哪里开始。

麻烦的是,我需要删除“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList”键中除五个子键之外的所有子键。前三个(S-1-5-18、S-1-5-19、S-1-5-20)是系统子键,然后是 S-1-5-21-* 中的两个子键,它们与域用户相关。

个人资料列表

我可以通过名称识别前 3 个;但是,后 2 个需要通过其子键的值来识别。对我来说最有意义的(并且可能在所有 PC 上具有相同的值)是“ProfileImagePath”。它将为我的个人资料设置“C:\Users\piotr”,为“confirmit”个人资料设置“C:\Users\confirmit”。

个人资料图片路径

因此,我想保持不变的键的完整列表如下: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-18 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-19 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-20 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-* 其中“ProfileImagePath”的值为“C:\Users\piotr” HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-* 其中“ProfileImagePath”的值为“C:\Users\confirmit”

其余的都需要删除。

我尝试理解 CMD“REG”命令(尤其是“QUERY”和“COPY”),但失败了。我想使用批处理文件,所以这将是一个完美的组合,如果我能让它工作的话:)

弄乱注册表总是有风险的,所以我不想在这里太自大。相反,我决定向专家寻求帮助;因此,我在这里发了帖子。

我想我的问题是是否有人可以给我最终的解决方案;因此,如果你们愿意接受挑战,那就太好了;然而,我知道,这并不总是可能的,所以如果有人给我指明正确的方向,我会同样感激。

我知道这是一个非常具体的问题,并不是每个人都熟悉这个话题。我将非常感激在这里得到的所有帮助,并期待收到您的建议。

先感谢您。

答案1

不要去翻找注册表,除非你真的需要。使用现有工具清理用户配置文件,例如delprof2

delprof2 /ed:piotr /ed:confirmit

该程序还提供根据上次使用时间删除配置文件的选项。

相关内容