默认情况下,Windows 10 / 8.1和Windows Server 2016/2012 R2中的登录屏幕显示最后一次登录到计算机的用户的帐户(如果未设置用户密码,则即使该用户也将自动登录自动登录未启用)。但是,可以在Windows 10的欢迎屏幕上显示所有用户帐户。您可以配置此功能的不同行为:您可以显示最后一个登录用户名,将其隐藏,甚至列出所有本地或登录于用户。
如何在Windows登录屏幕上隐藏用户账户?
在Windows登录屏幕上显示账户名称对用户来说很方便,但是会降低计算机的安全性。拥有本地计算机访问权限的攻击者只需要选择一个密码(为此,可以使用多种方式进行社交工程,暴力攻击或在监视器上带有密码的平庸标签)。
您可以通过GPEDIT在Windows欢迎屏幕上隐藏上次登录的用户名。打开域(gpmc.msc)或本地(gpedit.msc)组策略编辑器,然后转到“ 计算机配置-> Windows设置->安全设置->本地策略->安全选项”部分。启用策略“ 交互式登录:不显示最后一个用户名 ”。默认情况下,此策略是禁用的。
另外,您可以通过注册表在登录屏幕上隐藏用户名。为此,请转到注册表项HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System,创建一个名为dontdisplaylastusername的新DWORD参数,其值为1。
此外,您可以在锁定的计算机上隐藏用户名。为此,在同一GPEDIT部分中,您需要启用策略“ 交互式登录:会话锁定时显示用户信息 ”,并选择值“ 不显示用户信息 ”。
同一注册表项中的名为DontDisplayLockedUserId的注册表参数的值为3对应于此策略设置。
现在,在计算机登录屏幕和Windows锁定屏幕上,将显示用于输入用户名和密码的空白字段。
如何在Windows 10的登录屏幕上显示所有本地用户帐户?
在Windows 10 / 8.1中,您可以在欢迎屏幕上列出所有本地用户帐户。要登录到计算机,用户只需点击所需的帐户并指定其密码即可。
若要在Windows登录屏幕上显示所有本地用户,需要在以下注册表项中将Enabled参数的值更改为1:HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Authentication \ LogonUI \ UserSwitch。您可以通过RegEdit GUI,Reg Add cli命令或Set-ItemProperty PowerShell cmdlet 更改此参数:
Reg Add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch /v Enabled /t REG_DWORD /d 1 /f
要么
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch' -Name Enabled -Value 1
但是,Windows会在每次用户登录时自动将Enabled参数的值重置为0。为了始终将注册表值更改为1,在“任务计划程序”中创建一个在用户登录时运行的新任务会更容易。
Scheduler任务必须运行上面显示的命令之一。您可以使用taskchd.msc图形控制台手动创建此任务。但是在我看来,使用PowerShell创建Scheduler任务要容易得多。在我们的情况下,用于创建新任务的命令如下所示:
$Trigger= New-ScheduledTaskTrigger -AtLogOn$User= "NT AUTHORITY\SYSTEM"$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch -Name Enabled -Value 1"Register-ScheduledTask -TaskName "UserSwitch_Enable" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
确保该任务出现在Windows Task Scheduler(taskschd.msc)中。
注销,然后再次登录。该任务必须自动启动,并将“已启用”注册表参数的值更改为1。检查该参数的当前值。如您所见,它是1:
get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch' -Name Enabled
下次重新启动后,所有本地用户账户将显示在Windows 10 / 8.1登录屏幕上,而不是最后一个。
提示。如果成功触发了任务,但未显示本地用户列表,请确保是否禁用了策略“ 交互式登录:不显示上一个用户名”(请参阅“ 计算机配置\ Windows设置\安全设置\本地策略\安全选项”)。
有一个单独的组策略设置,它使在加入域的计算机的“欢迎使用”屏幕上列出本地用户帐户变得更加容易。打开GPEDIT编辑器,转到“计算机配置->管理模板->系统->登录”部分,并启用策略“ 枚举加入域的计算机上的本地用户 ”。
在Windows 10登录屏幕上显示记录的域用户
如果多个域用户使用一台计算机,则在欢迎屏幕上可以显示具有本地活动/断开会话的用户列表(仅当用户登录时才会显示用户,例如,在使用公用计算机,信息亭,RDS时)服务器或其Windows 10类似产品)。
为此,请在计算机配置-> Windows设置->安全设置->本地策略->安全选项中检查是否禁用了以下策略:
- 交互式登录:不显示上次登录状态:已禁用
- 交互式登录:登录时不显示用户名:已禁用
然后在“计算机配置”->“管理模板”->“系统”->“登录”部分中禁用策略:
- 禁止用户在登录时显示账户详细信息:已禁用
- 不要枚举加入域的计算机上的已连接用户:已禁用
此后,欢迎屏幕将显示具有已登录但已断开连接的活动会话的帐户列表。用户登录一次就足够了,然后只需从列表中选择一个账户并输入密码即可。
如何在登录屏幕上隐藏特定的用户账户?
Windows欢迎屏幕显示以下本地组之一的用户:管理员,用户,超级用户,来宾。
您可以通过运行以下命令从Windows 10登录屏幕上的列表中隐藏任何用户:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /t REG_DWORD /f /d 0 /v UserName
,