我将 PC 用作服务器,并希望无需手动登录即可运行应用程序。它们无法作为服务运行,并且可以将应用程序转换为服务(如 NSSM)的应用程序也无法完美运行。
因此,基本上,当您远程登录 PC 时,尽管您可以远程访问 PC(因为您已登录),但 PC 本身已被锁定,因此任何能够物理访问我 PC 的人都无法访问它。这就是我的问题:有没有办法在开机时自动登录,这样我的启动应用程序就可以启动(使用 GUI,而不是作为服务),但 PC 被锁定,没有人可以使用它?
我使用 Windows 10。
答案1
是的,这是可能的。
您需要 2 个步骤。第 1 步是启用自动登录。
我创建了一个供自己使用的脚本,因为我的计算机已加入域,这需要事先将内容添加到注册表中。如果您的计算机未加入域,您可能可以使用control userpasswords2
并跳过注册表部分,也不需要脚本。
但无论如何,该脚本很方便,并且无论是否加入域的 PC 都可以工作。
脚本如下:
@echo off
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "1" /f >nul
echo In the following dialog, check and uncheck the
echo "users must enter their username and passwords to login", and hit apply.
echo.
echo Specify the username as: DOMAIN\Administrator or it will attempt to logon
echo locally.
echo.
set /p q=Press {enter} to continue.
control userpasswords2
将以上内容粘贴到 .cmd 文件中并以管理员身份运行。
确保您正确输入了用户名,否则它不会自动登录。您可以根据需要多次运行该脚本,因此请启用它,重新启动并测试它是否自动登录。
第二部分是现在自动锁定计算机。理论上你可以说:我将使用电源管理并设置 1 分钟延迟,但你也可以使用命令来实现。
创建一个新的 .cmd 脚本并将以下代码粘贴到其中:
rundll32.exe user32.dll,LockWorkStation
将此 cmd 放入shell:startup
(在资源管理器地址栏中输入该命令,然后按回车键将带您到正确的位置)
如果计算机启动,它会自动登录,大约 20 秒后,它会锁定计算机。任何在计算机后面的人也会自动被发送到锁定屏幕,只有您才能解锁。它会保持解锁状态,直到您再次手动锁定它。
当然,远程桌面进入计算机无论如何都会保持锁屏处于活动状态。
答案2
你可能正在寻找的是澳大利亚陆军特种作战司令部— Winlogon 自动重启登录。
这是一项组策略,可自动登录在重启/关机时登录的最后一个用户并立即锁定工作站。这样,您的 GUI(即非服务)启动应用程序就像您手动登录一样运行,但此操作在后台执行,而操作系统永远不会经过登录屏幕本身,并提示输入密码。
它是由两项政策设立的*:
- 重启后自动登录并锁定上次交互用户
- 配置重启或冷启动后自动登录并锁定上次交互用户的模式
两者都可以在组策略编辑器中找到,Computer Configuration > Administrative Templates > Windows Components > Windows Logon Options
或者也可以直接通过上面链接的文章中概述的注册表项进行设置。
* — 如果第一个策略未被禁用,则只需要配置第二个策略