ฉันไม่คิดว่าจะมีรายการที่ดีที่สุดของบัญชีที่เป็นไปได้ทั้งหมด
มีชื่อประเภทต่าง ๆ ที่คุณสามารถใช้ในฟิลด์อินพุตของผู้ใช้เช่นในกล่องโต้ตอบการอนุญาต
อันดับแรกคือ Win32_Accounts มาตรฐานเพื่อรับรายการทั้งหมดเปิดเซสชัน PowerShell และเรียกใช้:
get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName
เหล่านี้เป็นผู้ใช้ปกติกลุ่มและบัญชี builtin
ตั้งแต่ Vista มีคลาสใหม่ของบัญชีที่เรียกว่าบัญชีเสมือนเพราะพวกเขาจะไม่ปรากฏในเครื่องมือการจัดการตามปกติ บางครั้งเรียกว่าบัญชีบริการเช่นกันและมีอย่างน้อยสามประเภทเหล่านี้:
เนื่องจาก Vista ทุกบริการ windows มีบัญชีเสมือนที่เชื่อมโยงกับบริการถึงแม้ว่ามันจะทำงานภายใต้บัญชีผู้ใช้ที่แตกต่างกันและแม้ว่ามันจะไม่ทำงานเลยก็ตาม ดูเหมือนว่าNT Service\MSSQLSERVER
เพื่อรับรายการการใช้งานเหล่านั้น:
get-service | foreach {Write-Host NT Service\$($_.Name)}
แต่ละแอปพลิเคชัน IIS ที่ทำงานภายใต้ ApplicationPoolIdentity จะทำงานภายใต้บัญชีพิเศษที่เรียกว่า IIS APPPOOL\NameOfThePool
สมมติว่าคุณมีเครื่องมือสคริปต์ IIS Management ติดตั้งอยู่คุณสามารถเรียกใช้:
Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
บน Server 2008+ และ Windows 8+ คุณมี Hyper-V เครื่องเสมือนแต่ละเครื่องจะสร้างบัญชีเสมือนของตนเองซึ่งมีลักษณะดังนี้:
NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
เพื่อรับรายการใช้:
get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}
แม้ว่าบัญชีเหล่านี้จะไม่ได้รับการยอมรับในกล่องโต้ตอบการอนุญาตคุณสามารถใช้บัญชีเหล่านั้นกับ icacls.exe เพื่อตั้งค่าการอนุญาต
นอกจากนี้ยังมีกลุ่มพิเศษNT Virtual Machine\Virtual Machines
ที่ไม่ปรากฏในที่อื่น บัญชีเครื่องเสมือนทั้งหมดเป็นสมาชิกของกลุ่มนี้ดังนั้นคุณสามารถใช้สิ่งนี้เพื่อตั้งค่าการอนุญาตสำหรับไฟล์ VM ทั้งหมด
ชื่อเหล่านี้เป็นภาษาเฉพาะเช่นในภาษาเยอรมันมีชื่อ NT Virtual Machine\Virtuelle Computer
กระบวนการ dvm.exe (ตัวจัดการหน้าต่างเดสก์ท็อป) ทำงานภายใต้ผู้ใช้ Windows Manager\DWM-1
อีกครั้งคุณไม่สามารถใช้ผู้ใช้ประเภทนี้ในกล่องโต้ตอบการอนุญาต เป็นไปไม่ได้ที่จะระบุสิ่งเหล่านี้อย่างใดอย่างหนึ่งเพราะมีอยู่ในแต่ละ 'เซสชันเดสก์ท็อป' ดังนั้นเมื่อใช้สองเซสชัน RDP คุณจะมีDWM-2
และDWM-3
นอกเหนือจากDVM-1
นั้น ดังนั้นมีมากเท่าที่มีเดสก์ท็อป
ในบางกรณีคุณสามารถใช้ชื่อคอมพิวเตอร์ในกล่องโต้ตอบการอนุญาตโดยปกติเมื่อเป็นส่วนหนึ่งของโดเมน Active Directory
- ผู้ใช้เสมือนของ Windows Remoting
เมื่อใช้ PowerShell และ 'JEA (เพียงพอสำหรับการบริหาร)' และเชื่อมต่อกับเซิร์ฟเวอร์ที่มีเซสชันระยะไกล PS ผู้ใช้เสมือนชั่วคราวอาจถูกสร้างขึ้น
สิ่งเหล่านี้มีรูปแบบต่อไปนี้:
winrm virtual users\winrm va_x_computername_username
และ SID ที่ขึ้นต้นด้วย S-1-5-94-
'x' คือตัวเลขจำนวนเต็ม
บัญชีเหล่านี้สามารถใช้ได้เมื่อกำหนดสิทธิ์ NTFS แต่ฉันไม่ทราบวิธีแสดงรายชื่อผู้ใช้เสมือนที่เป็นไปได้ทั้งหมด
ในขณะที่อยู่ในเซสชั่น JEA คุณสามารถใช้whoami
เพื่อหาชื่อบัญชีปัจจุบัน
แม้แต่รายการเหล่านี้ก็ไม่ได้ให้บัญชีทุกบัญชีที่เป็นไปได้
ตัวอย่างเช่นคุณสามารถสร้างกลุ่มแอปพลิเคชันFooBarPool
จากนั้นลบอีกครั้งคุณยังสามารถใช้IIS APPPOOL\FooBarPool
ในกล่องโต้ตอบการอนุญาตดังนั้นจะต้องมีรายการภายในบางแห่ง