Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows 10/11 로그인 화면에서 사용자 계정을 숨기거나 표시하는 방법

Windows 10/11과 Windows Server 2019/2016/2012R2의 로그인 화면은 기본적으로 컴퓨터에 마지막으로 로그인한 사용자의 계정을 표시합니다. 이 기능의 동작 방식은 다양하게 설정할 수 있습니다. 마지막 로그인 사용자 이름을 그대로 보여줄 수도 있고, 숨길 수도 있으며, 심지어 환영 화면(Welcome Screen)에 해당 기기의 모든 로컬 사용자 또는 로그인된 도메인 사용자 목록을 표시하도록 구성할 수도 있습니다.

로그인 화면에 마지막 사용자 이름 표시하지 않기

일반 사용자 입장에서는 로그인 화면에 마지막으로 로그인한 계정 이름이 표시되어 직접 입력할 필요가 없으면 편리합니다. 하지만 이는 공격자에게도 컴퓨터 접근을 쉽게 만들어 줍니다. 공격자는 올바른 비밀번호만 찾아내면 되기 때문입니다. 사회공학(social engineering) 기법, 무차별 대입 공격(brute-force attack), 아니면 모니터에 붙여둔 비밀번호 메모 같은 단순한 방법까지 다양한 경로로 비밀번호를 알아낼 수 있습니다.

Windows 로그인 화면에서 마지막 로그인 사용자 이름을 숨기려면 GPO(그룹 정책)를 활용할 수 있습니다. 도메인 그룹 정책 편집기(gpmc.msc) 또는 로컬 그룹 정책 편집기(gpedit.msc)를 열고 컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 보안 옵션으로 이동합니다. 여기서 "대화형 로그온: 마지막 사용자 이름 표시 안 함(Interactive logon: Do not display last user name)" 정책을 사용으로 설정합니다. 이 정책은 기본적으로 비활성화되어 있습니다.

레지스트리를 통해서도 동일하게 설정할 수 있습니다. 레지스트리 키 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System으로 이동한 후, dontdisplaylastusername이라는 이름의 DWORD 값을 새로 만들고 값을 1로 지정하면 됩니다.

참고로, 화면이 잠겼을 때(Win+L 누름 또는 잠금 화면 GPO 적용 시)에도 사용자 이름이 표시됩니다. 잠금 화면에서도 사용자 이름을 숨기려면 같은 GPO 섹션에서 "대화형 로그온: 세션이 잠겨 있을 때 사용자 정보 표시(Interactive logon: Display user information when the session is locked)" 정책을 사용으로 설정하고 값을 "사용자 정보 표시 안 함"으로 변경해야 합니다.

이 정책에 해당하는 레지스트리 값은 같은 키의 DontDisplayLockedUserId(DWORD)이며, 값 3이 위 정책 설정과 일치합니다. 이 파라미터의 다른 가능한 값은 다음과 같습니다:

  • 1 — 사용자 표시 이름, 도메인, 사용자 이름 모두 표시
  • 2 — 사용자 표시 이름만 표시
  • 3 — 사용자 정보 표시 안 함

설정을 적용하면 컴퓨터 로그인 화면과 Windows 잠금 화면에 빈 사용자 이름 및 비밀번호 입력란만 나타나게 됩니다.

Windows 10/11 로그인 화면에 모든 사용자 표시하기

최신 버전의 Windows(Windows 11 21H2, Windows 10 21H1에서 확인)는 기본적으로 로그인 화면 좌측 하단에 활성화된 로컬 사용자 목록을 항상 표시합니다. 숨김 처리되었거나(아래 참조) 비활성화된 사용자만 목록에서 제외됩니다.

사용자가 컴퓨터에 로그인하려면 원하는 계정을 클릭하고 비밀번호만 입력하면 됩니다. 단, 이 기능은 Active Directory 도메인에 가입되지 않은 컴퓨터에서만 작동합니다. 또한 사용자 계정에 비밀번호가 설정되어 있지 않다면 자동 로그온이 활성화되어 있지 않더라도 해당 사용자는 자동으로 로그인됩니다.

팁: 기본 사용자 아이콘 대신 Active Directory에 등록된 사용자 프로필 사진이 표시되도록 설정할 수도 있습니다.

만약 로그인 화면에 로컬 사용자 목록이 표시되지 않는다면, 다음 로컬 그룹 정책 설정들을 확인해 보세요(gpedit.msc 사용):

  • 대화형 로그온: 마지막 로그인한 사용자 표시 안 함 = 사용 안 함 (컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 보안 옵션)
  • 도메인 가입 컴퓨터에서 로컬 사용자 열거(Enumerate local users on domain-joined computers) = 사용 (컴퓨터 구성 → 관리 템플릿 → 시스템 → 로그온)
  • 도메인 가입 컴퓨터에서 연결된 사용자 열거 안 함(Do not enumerate connected users on domain-joined computer) = 사용 안 함/구성되지 않음 (같은 GPO 섹션)

새 그룹 정책 설정을 적용하려면 컴퓨터를 재시작하세요.

구버전 Windows 10의 UserSwitch 문제 해결

일부 구버전 Windows 10 빌드(1609~1903)에서는 사용자 전환 모드와 관련된 문제 때문에 환영 화면에 모든 로컬 사용자가 표시되지 않는 경우가 있었습니다.

로그인 화면에 모든 로컬 사용자 계정을 표시하려면 다음 레지스트리 키에서 Enabled 파라미터 값을 1로 변경해야 합니다: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch. 이 옵션은 Windows 로그인 화면에서 현재 사용자를 전환할 수 있게 해줍니다. 하지만 Windows는 사용자가 로그인할 때마다 Enabled 값을 자동으로 0으로 초기화합니다.

이 문제를 해결하려면 사용자가 로그인할 때마다 해당 값을 1로 되돌리는 예약 작업(Scheduler Task)을 생성해야 합니다.

PowerShell로 새 예약 작업을 생성하는 방법은 다음과 같습니다:

$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

작업 스케줄러(taskschd.msc)에서 해당 작업이 정상적으로 등록되었는지 확인하세요.

로그아웃 후 다시 로그인하면 예약 작업이 자동으로 실행되어 Enabled 레지스트리 값을 1로 변경합니다. Get-ItemProperty 명령으로 현재 값을 확인할 수 있습니다:

get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch' -Name Enabled

Windows 로그인 화면에 로그인된 도메인 사용자 표시하기

여러 도메인 사용자가 하나의 컴퓨터를 함께 사용하는 환경이라면, 환영 화면에 활성 세션을 가진 사용자 목록을 표시할 수 있습니다. 활성 세션이란 사용자가 해당 컴퓨터에 로그인되어 있는 상태를 의미합니다. 사용자 전환 모드로 운영되는 공용 PC, 키오스크, Windows Server RDS 호스트, 여러 RDP 연결을 허용하는 Windows 10/11 장치 등이 여기에 해당합니다.

이를 위해서는 먼저 컴퓨터 구성 → Windows 설정 → 보안 설정 → 로컬 정책 → 보안 옵션에서 다음 정책들이 비활성화되어 있는지 확인합니다:

  • 대화형 로그온: 마지막 로그인한 사용자 표시 안 함: 사용 안 함
  • 대화형 로그온: 로그인 시 사용자 이름 표시 안 함: 사용 안 함

그다음 컴퓨터 구성 → 관리 템플릿 → 시스템 → 로그온 섹션에서 다음 정책들을 비활성화합니다:

  • 로그인 시 계정 정보 표시 차단(Block user from showing account details on sign-in): 사용 안 함
  • 도메인 가입 컴퓨터에서 연결된 사용자 열거 안 함: 사용 안 함

설정 완료 후에는 환영 화면에 로그인된 사용자 목록이 표시됩니다. 여기에는 활성 세션뿐만 아니라 연결 끊김 상태의 세션(예: RDP 시간 초과)도 함께 표시됩니다. 사용자는 한 번만 로그인하면 이후에는 목록에서 계정을 선택하고 비밀번호만 입력하면 됩니다.

주의할 점은, 도메인에 가입된 컴퓨터의 그룹 정책 설정은 도메인 관리자가 관리할 수 있다는 것입니다. 특정 로컬 GPO 설정이 컴퓨터에 적용되지 않는다면 도메인 GPO에 의해 덮어써졌는지 확인해 보세요. rsop.msc 또는 gpresult 명령을 사용하면 해당 기기에 적용된 최종 그룹 정책 설정을 확인할 수 있습니다.

Windows 10/11 로그인 화면에서 특정 사용자 계정 숨기기

Windows 환영 화면에는 Administrators, Users, Power Users, Guests 중 하나의 로컬 그룹에 속한 사용자가 항상 표시됩니다. 반면 비활성화(disabled)된 사용자는 로그인 화면에 나타나지 않습니다.

특정 사용자를 환영 화면 목록에서 숨기려면 레지스트리를 활용해야 합니다. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList 레지스트리 키를 사용하며, 숨기고자 하는 각 사용자에 대해 사용자 이름과 동일한 이름의 DWORD 값을 만들고 값은 0으로 지정합니다.

PowerShell 또는 cmd로 로컬 사용자 이름 목록을 먼저 확인할 수 있습니다:

Net user

또는:

Get-LocalUser | where {$_.enabled –eq $true}

Windows 11 또는 10 환영 화면에서 특정 사용자 계정(예: user1)을 숨기려면 다음 명령을 실행합니다:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /t REG_DWORD /f /d 0 /v UserName

숨긴 사용자를 다시 로그인 화면에 표시하려면 해당 레지스트리 값을 삭제하거나 값을 1로 변경하면 됩니다.

컴퓨터에서 내장 Administrator 계정이 활성화되어 있고, 해당 계정이 컴퓨터에서 유일한 로컬 관리자 권한 계정이 아닌 경우에 한해(중요!) 이 계정 역시 숨길 수 있습니다:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /t REG_DWORD /f /d 0 /v administrator

마지막으로, 마지막으로 로그인한 사용자 외의 모든 사용자를 숨기고 싶다면 컴퓨터 구성 → 관리 템플릿 → 시스템 → 로그온에서 다음 GPO 설정을 구성하세요:

  • 도메인 가입 컴퓨터에서 로컬 사용자 열거 = 사용 안 함
  • 도메인 가입 컴퓨터에서 연결된 사용자 열거 안 함 = 사용