如何在Windows 10的登录屏幕中显示/隐藏所有用户帐户?

时间:2020-01-09 10:46:37  来源:igfitidea点击:

默认情况下,Windows 10/8.1和Windows Server 2015/2012 R2中的登录屏幕显示最后一次登录到计算机的用户的帐户(如果未设置用户密码,即使自动登录未启用)。但是,可以在Windows 10的欢迎屏幕上显示所有用户帐户。我们可以配置此功能的不同行为:可以显示最后的登录用户名,将其隐藏,甚至列出所有本地或者登录的域用户。

如何在Windows登录屏幕上隐藏用户帐户?

在Windows登录屏幕上显示帐户名称对用户来说很方便,但是会降低计算机的安全性。拥有本地计算机访问权限的攻击者将只需要输入密码(为此,可以使用多种方式进行社交工程,暴力攻击或者在监视器上带有密码的平庸标签)。

我们可以通过GPO在Windows欢迎屏幕上隐藏上次登录的用户名。打开域(gpmc.msc)或者本地(gpedit.msc)组策略编辑器,然后转到"计算机配置-> Windows设置->安全设置->本地策略->安全选项"部分。启用策略"交互式登录:不显示上一个用户名"。默认情况下,此策略是禁用的。

另外,我们可以通过注册表在登录屏幕上隐藏用户名。为此,请转到注册表项" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System",创建一个名为dontdisplaylastusername的新DWORD参数,其值为'1'。

此外,我们可以在锁定的计算机上隐藏用户名。为此,在同一GPO部分中,我们需要启用策略"交互式登录:会话锁定时显示用户信息",并选择值"不显示用户信息"。

同一注册表项中名为" 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任务必须运行上面显示的命令之一。我们可以使用taskschd.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登录屏幕上,而不是最后一个。

提示。我们可以配置要显示的Active Directory中的用户个人资料照片,而不是标准用户图标。

提示。如果成功触发了任务,但未显示本地用户列表,请确保策略"交互式登录:不显示最后的用户名"(请参阅"计算机配置\ Windows设置\安全设置\本地策略\安全选项") ) 被禁用。

有一个单独的组策略设置,它使在加入域的计算机的"欢迎使用"屏幕上列出本地用户帐户变得更加容易。打开GPO编辑器,转到"计算机配置"->"管理模板"->"系统"->"登录"部分,并启用"枚举加入域的计算机上的本地用户"策略。

在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