如何正确清理Windows服务及其帐户?

时间:2019-10-02 07:36:32

标签: windows service code-cleanup

我们拥有的这项服务需要一些特殊的文件权限,因此我们需要在他自己的虚拟服务帐户中运行该服务:

  1. 使用installutil.exe c:\ path_to \ MyService.exe安装服务exe
  2. 使用LOCALSYSTEM完成服务安装
  3. 在serviceinstaller中的最后一步,登录帐户被切换为“ NT SERVICE \ MyService”

一切正常,但是由于该服务用作运行该服务的帐户,因此将创建并使用Windows配置文件。

使用命令行installutil.exe / u c:\ path_to \ MyService.exe删除服务后,将保留一堆文件和注册表项:

  • %SystemRoot%\ ServiceProfiles \ LansweeperLocalDbService
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ IdentityStore \ Cache \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ ProfileService \ References \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows 搜索\ UninstalledStoreApps \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226
  • HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows 搜索\ UninstalledStoreApps \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226
  • HKEY_USERS \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226
  • HKEY_USERS \ S-1-5-80-3871198407-3985681096-187537395-327373503-1498934226_Classs

卸载完成并删除了服务后,“系统>高级>用户配置文件”中仍会列出“ NT SERVICE \ MyService”,并且无法删除。

重新启动后,此配置文件被列为“未知帐户”,虽然可以手动删除该配置文件,但注册表项和文件仍然保留,并且某些项似乎已锁定。

只有在使用GUI手动删除了“帐户未知的配置文件”并重新启动计算机后,注册表项和文件才消失。即使在这个阶段,由于访问被拒绝(或正在使用?),我仍然无法手动删除某些注册表项。

我应该如何以及如何正确地自动删除服务帐户?

0 个答案:

没有答案