Windows Server 2008 R2 - RDSH - Windows 激活突然丢失

Windows Server 2008 R2 - RDSH - Windows 激活突然丢失

2014 年 6 月 17 日,我们有八台 Windows Server 2008 R2 RDSH 服务器(所有成员都属于同一 RDSH 场 {brokered})突然认为用户登录时 Windows 激活丢失。如果用户之前登录过,它们可以正常运行,但没有人可以建立新的登录。如果管理员尝试激活 Windows,则会出现错误代码 0x80070005。这些服务器中的每一台都在运行 ESET File Security for Windows Servers 4.5.12011.0 进行防病毒保护。事件查看器根本无法加载,并且会导致 MMC 崩溃(最终发现事件 ID6001&6004就在他们都疯了的时候,Winlogon 的攻击发生了)。

  1. 搜索TechNet并发现:http://support.microsoft.com/kb/2704233
  2. 检查注册表后发现以下键完全缺失:
    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
  3. 还发现“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist\”中的键丢失:
    Default
    ProfilesDirectory
    ProgramData
    Public
  4. 经过进一步调查,发现 C:\Users\ 中的“默认用户”的符号链接也丢失了(应该链接到 C:\Users\Default 并具有特殊的 NTFS 文件夹权限)。
  5. 发现 C:\Users\Public\Desktop 被命名为“Public Desktop”,尽管“C:\ProgramData\Desktop”的符号链接指向“C:\Users\Public\Desktop”

注意:我将发布修复所需的内容,因为我已经解决了,但我想在 ServerFault.com 上发布信息,以防其他人遇到这个问题。

答案1

以下是我解决问题的方法。这里有一些极其危险和破坏数据的步骤。 如果您没有用户帐户的漫游配置文件和文件夹重定向,那么您应该认真致电 Microsoft 支持,因为这不是解决问题的方法,因为它会删除文件!!!!! 使用这些说明的任何风险均由您自行承担!!!!!

  1. 在 RD 会话主机配置(用户登录模式)中将服务器设置为不允许新登录
  2. 从服务器注销用户(尽可能优雅地注销)
  3. 重新创建丢失的配置文件列表注册表项(参见 MS 文章):
    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
  4. 重新创建 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ 键 (REG_EXPAND_SZ)
    Default > %SystemDrive%\Users\Default
    ProfilesDirectory > %SystemDrive%\Users
    ProgramData > %SystemDrive%\ProgramData
    Public > %SystemDrive%\Users\Public
  5. 用过的Sysinternals 连接点查看“C:\Users\Default User”并重新创建“C:\Users\Default User”以符号链接到“C:\Users\Default”
    安全 - 高级 - 更改权限...
    取消选中“包括可继承的权限...”
    添加“所有人”>应用于“仅此文件夹”>拒绝“列出文件夹/读取数据”
    添加“所有人”>应用于“仅此文件夹”>允许“遍历文件夹/执行文件”+“列出文件夹/读取数据”+“读取属性”+“读取扩展属性”+“读取权限”
    添加“SYSTEM”>应用于“仅此文件夹”>允许“完全控制”
    添加“管理员 (%COMPUTERNAME%\Administrators)”>应用于“仅此文件夹”>允许“完全控制”
  6. 将 NTFS 权限设置为“C:\Users\Default User”以与另一个 RDSH 服务器完全匹配(来自不同的服务器场,因此我知道默认值是什么)
  7. 将“C:\Users\Public\Public Desktop”重命名为“C:\Users\Public\Desktop”
  8. 重启服务器
  9. 重新启动后,Windows 识别到 Windows 已激活并且服务正常运行(Windows Defender 之前曾被炸毁过)。
  10. 系统属性>高级>用户配置文件>未显示任何以前的 RDSH 用户。
  11. 我们使用漫游配置文件和文件夹重定向 GPO,因此用户未显示在配置文件中并不是完全的损失。只需清理 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Profilelist\ 中以前的 RDSH 用户的 ProfileList 注册表项(不要删除本地计算机管理员 %SID% 和 S-1-5-18、S-1-5-19、S-1-5-20 项!!!!!)
  12. 必须清理已删除 ProfileList 项的用户文件夹 C:\Users\ 。
    如果您没有漫游配置文件和文件夹重定向设置(其中用户文件不仅存储在此服务器上),请不要这样做!!!
    选择除以下内容之外的所有文件和文件夹
    所有用户
    管理员
    管理员。{%YOURDOMAINNAME%}
    默认
    默认用户
    公共
    desktop.ini

    永久删除注册表的ProfileList部分中不再存在的配置文件的选定文件夹(SHIFT+DELETE)。
  13. 再次重新启动并验证一切是否正常。
  14. 一旦您对服务器满意,请在 RD 会话主机配置中再次允许新的登录。

注意:如果您正在运行虚拟 RDSH 服务器,并且您想避免这种疯狂的情况,您可能需要从备份中恢复您的 RDSH 服务器(如果您有一个正常运行的备份系统)。

相关内容