Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

โดยค่าเริ่มต้น หน้าจอล็อกอิน Windows 10/11 และ Windows Server 2019/2016/2012R2 จะแสดงบัญชีของผู้ใช้คนล่าสุดที่เข้าสู่ระบบ คุณสามารถกำหนดพฤติกรรมต่างๆ ได้: แสดงชื่อผู้ใช้ล่าสุด, ซ่อนชื่อ, หรือแสดงรายการผู้ใช้ท้องถิ่น/โดเมนที่เข้าสู่ระบบบนหน้าจอต้อนรับ

ไม่แสดงชื่อผู้ใช้ล่าสุดบนหน้าจอล็อกอิน Windows

ผู้ใช้สะดวกเมื่อเห็นชื่อบัญชีล่าสุดบนหน้าจอล็อกอิน ไม่ต้องพิมพ์เอง แต่นี่ทำให้ผู้โจมตีเข้าถึงเครื่องได้ง่ายขึ้น ต้องหาแค่รหัสผ่านเท่านั้น มีวิธีหลายอย่าง: วิศวกรรมสังคม, โจมตี brute-force, หรือกระดาษติดจอที่มีรหัสผ่าน

ซ่อนชื่อผู้ใช้ล่าสุดผ่าน GPO: เปิด Group Policy Editor โดเมน (gpmc.msc) หรือท้องถิ่น (gpedit.msc) ไปที่ Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options เปิดใช้งาน Policy "Interactive logon: Do not display last user name" Policy นี้ปิดอยู่โดยค่าเริ่มต้น

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

ซ่อนผ่าน Registry ไปที่ Key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System สร้าง DWORD ใหม่ชื่อ dontdisplaylastusername ค่า 1

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

ชื่อผู้ใช้ยังแสดงเมื่อจอถูกล็อก (Win+L หรือผ่าน Lock Screen GPO) ซ่อนชื่อบนหน้าจอล็อกได้: ในส่วน GPO เดียวกัน เปิด Policy "Interactive logon: Display user information when the session is locked" ตั้งค่า "Do not display user information"

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

พารามิเตอร์ Registry ชื่อ DontDisplayLockedUserId ใน Key เดียวกัน ค่า 3 ตรงกับ Policy นี้

ค่าอื่นๆ ที่เป็นไปได้:

  • 1 — แสดงชื่อที่แสดง, โดเมน, และชื่อผู้ใช้
  • 2 — แสดงเฉพาะชื่อที่แสดง
  • 3 — ไม่แสดงข้อมูลผู้ใช้

หน้าจอล็อกอินและหน้าจอล็อก Windows ตอนนี้แสดงช่องชื่อผู้ใช้และรหัสผ่านว่างเปล่า

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

แสดงผู้ใช้ทั้งหมดบนหน้าจอ Sign-in Windows 10/11

Windows เวอร์ชันใหม่ (ทดสอบบน Windows 11 21H2 และ Windows 10 21H1) แสดงรายการผู้ใช้ท้องถิ่นที่เปิดใช้งานอยู่ที่มุมซ้ายล่างของหน้าจอล็อกอินโดยค่าเริ่มต้น แสดงเฉพาะผู้ใช้ที่เปิดใช้งาน ไม่แสดงผู้ใช้ที่ซ่อนหรือปิดใช้งาน

ผู้ใช้เพียงคลิกเลือกบัญชีและใส่รหัสผ่าน เพื่อเข้าสู่ระบบ ทำงานได้เฉพาะคอมพิวเตอร์ที่ไม่ได้ Join โดเมน Active Directory

หากไม่ได้ตั้งรหัสผ่านสำหรับบัญชี ผู้ใช้นั้นจะล็อกอินอัตโนมัติ แม้จะไม่ได้เปิด AutoLogon

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

เคล็ดลับ แทนไอคอนผู้ใช้มาตรฐาน สามารถตั้งค่าให้แสดงรูปโปรไฟล์จาก Active Directory ได้

หากไม่แสดงรายการผู้ใช้ท้องถิ่นบนหน้าจอล็อกอิน ตรวจสอบการตั้งค่า Local Group Policy (gpedit.msc):

  • Interactive Logon: Do not display last signed-in = Disabled (Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options)
  • Enumerate local users on domain-joined computers = Enabled (Computer Configuration → Administrative Templates → System → Logon)
  • Do not enumerate connected users on domain-joined computer = Disabled/Not Configured (ส่วน GPO เดียวกัน)

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

รีสตาร์ทคอมพิวเตอร์เพื่อนำการตั้งค่า GPO ใหม่ไปใช้

บน Windows 10 ビルดเก่า (1609 ถึง 1903) มีปัญหาการแสดงผู้ใช้ท้องถิ่นทั้งหมดบน Welcome Screen เกี่ยวกับโหมดการสลับผู้ใช้

เพื่อแสดงบัญชีผู้ใช้ท้องถิ่นทั้งหมด ให้เปลี่ยนค่า Parameter Enabled เป็น 1 ใน Registry Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\UserSwitch ตัวเลือกนี้อนุญาตให้สลับผู้ใช้บนหน้าจอ Sign-in แต่ Windows จะรีเซ็ตค่า Enabled กลับเป็น 0 ทุกครั้งที่มีผู้ใช้ล็อกอิน

แก้ไขโดยสร้าง Scheduled Task ที่เปลี่ยนค่า Parameter เป็น 1 ทุกครั้งที่มีผู้ใช้ล็อกอิน

สร้าง Scheduled 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

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

ตรวจสอบว่า Task ปรากฏใน Task Scheduler (taskschd.msc)

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

Log off แล้ว Log on ใหม่ Task จะรันอัตโนมัติและเปลี่ยนค่า Enabled เป็น 1 ตรวจสอบด้วย Get-ItemProperty:

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

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

แสดงผู้ใช้โดเมนที่ล็อกอินอยู่บนหน้าจอล็อกอิน Windows

หากมีผู้ใช้โดเมนหลายคนใช้คอมพิวเตอร์ร่วมกัน สามารถแสดงรายการผู้ใช้ที่มี Session 作用中บนหน้าจอต้อนรับได้ Session 作用中หมายถึงผู้ใช้ที่ล็อกอินอยู่ในคอมพิวเตอร์ เช่น คอมพิวเตอร์ร่วมใช้ (User Switching), Kiosk, Windows Server RDS Hosts, หรือ Windows 11/10 ที่อนุญาตหลายการเชื่อมต่อ RDP

ตรวจสอบใน Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options ให้ Policy ต่อไปนี้เป็น Disabled:

  • Interactive logon: Don't display last signed-in: Disabled
  • Interactive logon: Don't display username at sign-in: Disabled

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

จากนั้นปิด Policy ใน Computer Configuration → Administrative Templates → System → Logon:

  • Block user from showing account details on sign-in: Disabled
  • Do not enumerate connected users on domain-joined computer: Disabled

หลังจากนั้นหน้าจอต้อนรับจะแสดงรายการผู้ใช้ที่ล็อกอินอยู่ ทั้ง Session 作用中และ Session ที่ Disconnected (เช่น RDP Timeout) ผู้ใช้แค่ล็อกอินครั้งแรก แล้วเลือกบัญชีจากรายการและใส่รหัสผ่าน

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

หมายเหตุ: การตั้งค่า GPO บนคอมพิวเตอร์โดเมนอาจถูกจัดการโดย Domain Admin หากการตั้งค่า Local GPO ไม่มีผล ให้ตรวจสอบว่าถูก Override โดย Domain GPO หรือไม่ ใช้ rsop.msc หรือ gpresult เพื่อดู Resultant Group Policy

ซ่อนบัญชีผู้ใช้เฉพาะจากหน้าจอ Sign-in บน Windows 10 และ 11

หน้าจอต้อนรับ Windows แสดงผู้ใช้ที่เป็นสมาชิกกลุ่มท้องถิ่น: Administrators, Users, Power Users, Guests

บัญชีที่ Disabled ไม่แสดงบนหน้าจอ Sign-in

ซ่อนผู้ใช้เฉพาะจากรายการบนหน้าจอต้อนรับผ่าน Registry ใช้ Key HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList สร้าง DWORD Parameter ชื่อ Username ค่า 0 สำหรับแต่ละผู้ใช้ที่ต้องการซ่อน

ดูรายชื่อผู้ใช้ท้องถิ่นด้วย PowerShell หรือ cmd:

Net user หรือ Get-LocalUser | where {$_.enabled –eq $true}

วิธีซ่อน หรือ แสดงบัญชีผู้ใช้บนหน้าจอล็อกอิน Windows 10/11

ซ่อนบัญชีเฉพาะ (เช่น user1) จากหน้าจอต้อนรับ Windows 11/10:

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

หากต้องการแสดงผู้ใช้ที่ซ่อนไว้กลับมา ให้ลบ Registry Parameter นี้ หรือเปลี่ยนค่าเป็น 1

หากบัญชี Administrator built-in เปิดใช้งานอยู่ และ ไม่ใช่บัญชีเดียวที่มีสิทธิ์ Administrator ท้องถิ่น (!!!) สามารถซ่อนได้:

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

หากต้องการซ่อนผู้ใช้ทั้งหมดยกเว้นคนล่าสุดที่ล็อกอิน ให้ตั้งค่า GPO ใน Computer Configuration → Administrative Templates → System → Logon:

  • Enumerate local users on domain-joined computers = Disabled
  • Do not enumerate connected users on domain-joined computer = Enabled