我们有一台会议室计算机,供许多人使用。因此,每次有人登录时,从登录到响应式桌面需要长达 10 分钟的时间。用户登录一次后,登录时间不超过 2 分钟。我猜登录时间长是由于生成用户配置文件文件夹造成的。除了用 ssd 替换硬盘外,还有其他加快新配置文件生成速度的想法吗?请记住,登录必须使用域帐户,而不是本地帐户,而且我们事先不知道用户名。
答案1
也许有助于提前创建配置文件的场景。
场景 1:用对 mstsc 的调用替换脚本上的 shell 资源管理器。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Shell REG_SZ <script name>
准备:
- 在终端服务器上创建配置文件。
- 调整自动登录的站点
脚本主体:
- 调用 mstsc。
- 脚本的 Logof 部分。(此步骤使工作站处于注销-登录循环中,而不会让用户在 mstsc shell 之外对工作站执行恶意操作。)
您可以一直按住 Shift 键,然后就会自动加入,并且会向您显示登录 Windows 域的密码。
但如果该站不在该域内,这个技巧就无济于事。
情景补充:
- 无需重启
- 配置文件(包括其设置和软件)
- 高安全性(该站不一定在域内)
缺点:
- 编写用户登录脚本
- 需要 RDP 服务器基础设施
场景 2:借助脚本连接到会议的资源配置文件。
准备:
- 仅为会议创建个人资料。
- 创建一个需要登录名和密码的脚本。
按需连接脚本资源。
- 将配置文件设置为工作状态。保存配置文件并将其用作模板(会议前)。
- 保存用户的结果(在会议上)。
- 恢复会议的空用户配置文件(会议结束后)。
由于可以提供进一步的子选项,在存储详细信息中添加和删除用户道具,但这可能会造成资源冲突。
情景补充:
- 无需重启
- 通过登录名和密码连接任何用户的资源
缺点:
- 编写用户登录脚本
- 可能需要创建或修改架构来为用户提供资源。
场景三:使用通用配置文件提前创建用户配置文件。
准备:
- 创建适合所有用户的个人资料。
Domain Users
向配置文件注册表项和配置文件文件夹添加适当的权限。- 恢复个人资料的副本。
需要重命名键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID-Universal>]
=>
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID-Conference-user-logon>]
重命名记录:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist]
\REGISTRY\USER\<SID-Universal> REG_SZ
\REGISTRY\USER\<SID-Conference-user-logon> REG_SZ
=>
\REGISTRY\USER\<SID-Universal>_Class REG_SZ
\REGISTRY\USER\<SID-Conference-user-logon>_Classes REG_SZ
情景补充:
- 清理个人资料(如果用户对您的个人资料有疑问,他们不会在这里)
- 用户安全属性。
缺点:
- 清理配置文件(不会是熟悉的用户环境)。
- 需要重新启动。
场景4:提前创建用户配置文件并提前将用户配置文件的副本传输到机器上。
准备:
- 以用户身份登录以创建个人资料。
- 将用户配置文件复制到您刚刚创建的配置文件。
- 更改权限并更正注册表中的条目
情景补充:
- 个人资料用户(包括其设置,以及部分不带软件的随行人员)
- 用户安全属性。
缺点:
- 个人资料用户(个人资料问题可能会导致无法加载)
- 需要重新启动
添加:
用户名和默认域
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
AltDefaultUserName REG_SZ <username>
DefaultUserName REG_SZ <username>
AltDefaultDomainName REG_SZ <domain>
DefaultDomainName REG_SZ <domain>
CachePrimaryDomain REG_SZ <domain>
如有必要,隐藏不想显示的帐户:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
<username1> DWORD 0
<username2> DWORD 0
...
<usernameN> DWORD 0