ค้นหาเว็บไซต์

การจัดการรหัสผ่านที่บันทึกไว้โดยใช้ Windows Credential Manager


Windows Credential Manager อนุญาตให้บันทึกข้อมูลรับรอง (ชื่อผู้ใช้และรหัสผ่าน) เพื่อเข้าถึงทรัพยากรเครือข่าย เว็บไซต์ และแอป ด้วย Windows Credential Manager คุณสามารถเชื่อมต่อกับทรัพยากรระยะไกลโดยอัตโนมัติโดยไม่ต้องป้อนรหัสผ่าน แอปสามารถเข้าถึง Credential Manager ได้ด้วยตนเองและใช้รหัสผ่านที่บันทึกไว้

การใช้ Credential Manager เพื่อจัดเก็บรหัสผ่านใน Windows

Credential Manager ปรากฏใน Windows 7 และอยู่ในตำแหน่งที่ค่อนข้างปลอดภัยในการเก็บรหัสผ่านของคุณ

Credential Manager บน Windows 10 สามารถเก็บประเภทบัญชีต่อไปนี้:

  • ข้อมูลประจำตัวของ Windows - ข้อมูลรับรองสำหรับเข้าสู่ระบบ Windows หรือเพื่อเข้าถึงคอมพิวเตอร์ระยะไกล รหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP รหัสผ่านสำหรับเว็บไซต์ที่รองรับการตรวจสอบความถูกต้องของ Windows ในตัว ฯลฯ

    Windows Credential Manager ไม่เก็บข้อมูลประจำตัวสำหรับการเข้าสู่ระบบ Windows หรือโดเมน Cached Credentials โดยอัตโนมัติ

  • ข้อมูลรับรองตามใบรับรอง - เพื่อตรวจสอบสิทธิ์โดยใช้สมาร์ทการ์ด

  • ข้อมูลรับรองทั่วไป - ใช้โดยแอปของบุคคลที่สามที่เข้ากันได้กับ Credential Manager

  • ข้อมูลรับรองเว็บ - รหัสผ่านที่บันทึกไว้ใน Edge และ IE, แอป Microsoft (MS Office, Teams, Outlook, Skype ฯลฯ)

ตัวอย่างเช่น หากคุณเปิดใช้งาน “

Save Password

” ตัวเลือกเมื่อเข้าถึงโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน รหัสผ่านที่คุณป้อนจะถูกบันทึกไว้ใน Credential Manager

ในทำนองเดียวกัน รหัสผ่านสำหรับเชื่อมต่อกับโฮสต์ RDP/RDS ระยะไกลจะถูกบันทึกไว้ในไคลเอนต์ Remote Desktop Connection (mstsc.exe)

นอกจากนี้ Credential Manager จะเก็บรหัสผ่านของผู้ใช้ไว้ หากบันทึกโดยใช้คำสั่ง runas /savecred

คุณสามารถเข้าถึง Credential Manager ใน Windows 10 ได้จากแผงควบคุมแบบคลาสสิก (

Control Panel\User Accounts\Credential Manager

).

อย่างที่คุณเห็น มีรหัสผ่านสองรหัสใน Credential Manager ที่เราบันทึกไว้ก่อนหน้านี้

มีการระบุรหัสผ่านที่บันทึกไว้สำหรับการเชื่อมต่อ RDP ใน

TERMSRV\hostname

รูปแบบ.

ที่นี่คุณสามารถเพิ่มข้อมูลประจำตัวที่บันทึกไว้ แก้ไข (คุณไม่สามารถดูรหัสผ่านที่บันทึกไว้ในอินเทอร์เฟซแบบกราฟิก) หรือลบรายการใดๆ

นอกจากนี้ คุณสามารถใช้อินเทอร์เฟซแบบคลาสสิกของ ชื่อผู้ใช้และรหัสผ่านที่เก็บไว้ เพื่อจัดการรหัสผ่านที่บันทึกไว้ หากต้องการเรียกใช้ ให้รันคำสั่งด้านล่าง:

rundll32.exe keymgr.dll,KRShowKeyMgr

ที่นี่ คุณยังสามารถจัดการข้อมูลรับรองที่บันทึกไว้ และมีคุณสมบัติการสำรองและกู้คืนข้อมูลบางอย่างสำหรับ Credential Manager (คุณสามารถใช้ข้อมูลเหล่านี้เพื่อถ่ายโอนฐานข้อมูล Credential Manager ไปยังคอมพิวเตอร์เครื่องอื่น)

นี้

vaultcmd

เครื่องมือนี้ใช้ในการจัดการ Credential Manager จากพรอมต์คำสั่ง ตัวอย่างเช่น หากต้องการแสดงรายการ Windows Credentials ที่บันทึกไว้ ให้รันคำสั่งนี้:

vaultcmd /listcreds:"Windows Credentials"

Credential schema: Windows Domain Password Credential
Resource: Domain:target=mun-dc01
Identity: RESDOM\j.brion
Hidden: No
Roaming: No
Property (schema element id,value): (100,3)
Property (schema element id,value): (101,SspiPfAc)

คำสั่งต่อไปนี้จะลบรหัสผ่าน RDP ที่บันทึกไว้ทั้งหมดออกจาก Credential Manager:

For /F "tokens=1,2 delims= " %G in ('cmdkey /list ^| findstr "target=TERMSRV"') do cmdkey /delete %H

รหัสผ่านที่บันทึกไว้ทั้งหมดจะถูกจัดเก็บไว้ใน Windows Vault Windows Vault เป็นที่เก็บที่มีการป้องกันเพื่อเก็บความลับ รหัสผ่าน และข้อมูลผู้ใช้ที่ละเอียดอ่อนอื่นๆ ใน Windows Vault ข้อมูลมีโครงสร้างและดูเหมือนชุดของรายการที่เป็นของโครงร่างห้องนิรภัย ชุดคีย์การเข้ารหัสสำหรับรายการ Windows Vault จะถูกจัดเก็บไว้ในไฟล์ Policy.vpol

สำหรับผู้ใช้โดเมนจะอยู่ใน

%userprofile%\AppData\Roaming\Microsoft\Vault

สำหรับผู้ใช้ในท้องถิ่น คุณสามารถค้นหาได้ใน

%userprofile%\AppData\Local\Microsoft\Vault

บริการ VaultSvc จะต้องทำงานเมื่อใช้ Credential Manager:

Get-Service VaultSvc

หากปิดใช้งานบริการ คุณจะเห็นข้อผิดพลาดต่อไปนี้เมื่อพยายามเข้าถึง Credential Manager:

Credential Manager Error
The Credential Manager Service is not running. You can start the service manually using the Services snap-in or restart your computer to start the service.
Error code: 0x800706B5
Error Message: The interface is unknown.

หากคุณต้องการป้องกันไม่ให้ผู้ใช้บันทึกรหัสผ่านเครือข่ายใน Credential Manager ให้เปิดใช้งานตัวเลือก การเข้าถึงเครือข่าย: ไม่อนุญาตให้จัดเก็บรหัสผ่านและข้อมูลรับรองสำหรับการตรวจสอบสิทธิ์เครือข่าย GPO ภายใต้การกำหนดค่าคอมพิวเตอร์ -> การตั้งค่า Windows -> ความปลอดภัย การตั้งค่า -> นโยบายท้องถิ่น -> ตัวเลือกความปลอดภัย

จากนั้น หากผู้ใช้พยายามบันทึกรหัสผ่านไปยัง Windows Vault store พวกเขาจะเห็นข้อผิดพลาดต่อไปนี้:

Credential Manager Error
Unable to save credentials. To save credentials in this vault, check your computer configuration.
Error code: 0x80070520
Error Message: A specified logon session does not exist. It may already have been terminated.

การเข้าถึง Windows Credential Manager จาก PowerShell

Windows ไม่มี cmdlet ในตัวเพื่อเข้าถึงที่เก็บ PasswordVault จาก PowerShell แต่คุณสามารถใช้โมดูล CredentialManager จากแกลเลอรี PowerShell

ติดตั้งโมดูล:

Install-Module CredentialManager

คุณสามารถแสดงรายการ cmdlet ในโมดูล CredentialManager:

Get-Command -module CredentialManager

โมดูลมีเพียง 4 cmdlets:

  • Get-StoredCredential

    - เพื่อรับข้อมูลประจำตัวจาก Windows Vault;

  • Get-StrongPassword

    - เพื่อสร้างรหัสผ่านแบบสุ่ม

  • New-StoredCredential

    - เพื่อเพิ่มข้อมูลประจำตัว;

  • Remove-StoredCredential

    - เพื่อลบข้อมูลประจำตัว

ในการเพิ่มข้อมูลรับรองใหม่ให้กับ Windows Credential Manager ให้รันคำสั่งนี้:

New-StoredCredential -Target 'a-d' -Type Generic -UserName 'maxbak@a-d.site' -Password 'Pass321-b' -Persist 'LocalMachine'

เพื่อให้แน่ใจว่ามีข้อมูลรับรองผู้ใช้ที่บันทึกไว้ใน Credential Manager หรือไม่:

Get-StoredCredential -Target a-d

คุณสามารถใช้รหัสผ่านที่บันทึกไว้จาก Credential Manager ในสคริปต์ PowerShell ของคุณได้ ตัวอย่างเช่น ฉันสามารถรับชื่อและรหัสผ่านที่บันทึกไว้จาก Windows Vault เป็นวัตถุ PSCredential และเชื่อมต่อกับ Exchange Online จาก PowerShell:

$psCred = Get-StoredCredential -Target "a-d"
Connect-MSolService -Credential $psCred

นอกจากนี้ โปรดสังเกตโมดูล PowerShell Secret Management ใหม่ที่คุณสามารถใช้เพื่อจัดเก็บรหัสผ่านอย่างปลอดภัยใน Windows รองรับตู้นิรภัยรหัสผ่านจำนวนมาก: KeePass, LastPass, HashiCorp Vault, Azure Key Vault, Bitwarden

หากต้องการลบข้อมูลประจำตัวออกจาก Windows Vault ให้รันคำสั่งนี้:

Remove-StoredCredential -Target a-d

คุณไม่สามารถแสดงรหัสผ่านเป็นข้อความธรรมดาโดยใช้เครื่องมือ CLI ในตัว แต่คุณสามารถใช้ยูทิลิตี้คล้าย Mimikatz เพื่อรับรหัสผ่านที่บันทึกไว้ได้

credman

เป็นข้อความธรรมดา (ดูตัวอย่างที่นี่)

บทความที่เกี่ยวข้อง