神秘的自动登录案例,没有触发该操作的注册表设置

神秘的自动登录案例,没有触发该操作的注册表设置

这个问题与编程有重叠,但我认为它主要属于这里。我正在 AutoIt 中构建一个复杂的脚本,该脚本可打开自动登录,以便可以进行多次无人值守的重启。我还会检查自动登录是否已打开,如果已打开,则我不执行任何操作。

如果没有,我会要求输入密码,通过调用 advapi.dll 的 LogonUser API 检查密码是否有效,然后我根据以下注册表设置http://support.microsoft.com/kb/324737/

RegWrite('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', 'AutoAdminLogon', 'REG_DWORD', 1)
RegWrite('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', 'DefaultUserName', 'REG_SZ', $username)
RegWrite('HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', 'DefaultPassword', 'REG_SZ', $password)

通常情况下,这很有效。但是,有人在该领域工作,刚刚报告说我的脚本在运行 Windows 7 Professional 的计算机上要求输入密码,并且该计算机已启用自动登录。

当我检查注册表时,在 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 下,我找不到任何所需的键,即 AutoAdminLogon、DefaultUserName 和 DefaultPassword。

当我运行 netplwiz 时,它还表明“用户必须输入用户名和密码”才能登录;该复选框已被选中。

那么这是怎么回事?这可能吗?还有其他自动登录机制吗?它是如何工作的,我该如何检测它?不幸的是,这只是现场的一台机器,我现在无法访问它。我只能通过 TeamViewer 查看一次。任何帮助都非常感谢。

答案1

不确定您是否已解决此问题,但 Technet 文档表明 AutoAdminLogon 是 REG_SZ。您将其创建为 REG_DWORD。

看:https://technet.microsoft.com/en-us/library/Cc939702.aspx

当然解释了为什么某些应用程序(如 netplwiz)可能认为它已启用 - REG_DWORD 或 REG_SZ 可能没问题,而 Windows 的其他部分(如启动顺序)可能更严格,并且需要 REG_SZ。

相关内容