Dalam lingkungan Windows, setiap domain dan pengguna lokal, grup, dan objek keamanan lainnya diberi pengidentifikasi unik - Keamanan Identifier atau SID. Ini adalah SID, dan bukan nama pengguna, yang digunakan untuk mengontrol akses ke berbagai sumber daya: folder jaringan, kunci registri, objek sistem file, printer, dll. Pada artikel ini, kami akan menunjukkan beberapa cara sederhana untuk mengetahui SID dari pengguna atau grup (lokal atau dari Active Directory), dan prosedur sebaliknya adalah menentukan nama pengguna atau grup Windows dari SID yang dikenal..
Untuk mengonversi nama pengguna menjadi SID, Anda dapat menggunakan perbedaan pada utilitas dari suite Sysinternals - PsGetSid. Tetapi harus diunduh dan diinstal pada setiap komputer secara manual. Contoh menggunakan PsGetSID untuk SID pengguna dengan nama akun:psgetsid pc1 \ jjsmith
Mendapatkan akun dengan SID:
psgetsid S-1-5-21-1175651296-1316133944-203321314-1005
Menurut pendapat saya, cara termudah untuk mengkonversi SID -> Username dan Username -> SID adalah yang termudah untuk menggunakan perintah command line atau cmdlet PowerShell sederhana:
Konten:
- Cara mendapatkan SID pengguna lokal?
- Temukan SID pengguna atau grup dalam domain AD dengan nama
- Cara mengetahui nama akun pengguna atau grup oleh SID?
- Cari objek di Active Directory oleh SID
Cara mendapatkan SID pengguna lokal?
Untuk mendapatkan SID dari akun lokal di komputer ini, Anda dapat menggunakan utilitas wmic, yang memungkinkan Anda untuk mengakses namespace WMI komputer. Untuk mendapatkan SID dari pengguna test_user lokal, Anda dapat menggunakan utilitas WMIC:
wmic useraccount di mana nama = "test_user" mendapatkan sisi
Tim mengembalikan SID dari pengguna yang ditentukan kepada kami - S-1-5-21-1175651296-1316126944-203051354-1005.
Jika Anda perlu mengetahui SID dari pengguna saat ini (di mana perintah dijalankan), gunakan perintah berikut:
wmic useraccount di mana nama = "% nama pengguna%" dapatkan
Menggunakan dua kelas .NET System.Security.Principal.SecurityIdentifier dan System.Security.Principal.NTAccount Anda bisa mendapatkan SID pengguna menggunakan PowerShell:
$ objUser = Sistem Objek Baru. Keamanan.Principal.NTAccount ("LOCAL_USER_NAME")
$ strSID = $ objUser.Translate ([System.Security.Principal.SecurityIdentifier])
$ strSID.Value
Temukan SID pengguna atau grup dalam domain AD dengan nama
Anda dapat mengetahui SID dari akun domain saat ini dengan perintah:
whoami / pengguna
Anda dapat menemukan SID pengguna domain menggunakan WMIC. Dalam hal ini, perintah harus menentukan nama domain:
wmic useraccount di mana (name = 'jjsmith' dan domain = "corp.winitpro.ru") mendapatkan sisi
Untuk mendapatkan SID pengguna domain, Anda dapat menggunakan cmdlet Get-ADUser, yang merupakan bagian dari Modul Direktori Aktif untuk Windows PowerShell. Dapatkan SID untuk akun jjsmith:
Dapatkan-ADUser -Identity 'jjsmith' | pilih SID
Anda bisa mendapatkan SID dari grup AD menggunakan cmdlet lain, Get-ADGroup:
Dapatkan-ADGroup -Filter Nama-like "msk-admin *" | Pilih SID
Jika modul AD untuk PowerShell tidak diinstal di komputer Anda, Anda bisa mendapatkan SID pengguna menggunakan kelas .Net yang disebutkan sebelumnya:
$ objUser = New-Object System.Security.Principal.NTAccount ("corp.wintpro.ru", "jjsmith")
$ strSID = $ objUser.Translate ([System.Security.Principal.SecurityIdentifier])
$ strSID.Value
Perintah PowerShell yang sama pada satu baris:
(new-object security.principal.ntaccount "jjsmith"). terjemahkan ([security.principal.securityidentifier])
Cara mengetahui nama akun pengguna atau grup oleh SID?
Untuk mengetahui nama akun pengguna dengan SID (prosedur terbalik), Anda dapat menggunakan salah satu dari perintah berikut:
wmic useraccount mana sid = "S-1-3-12-12452343106-3544442455-30354867-1434" dapatkan nama
Di PowerShell, Anda bisa mendapatkan nama pengguna dengan SID-nya menggunakan modul AD untuk PowerShell:
Dapatkan-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Untuk menemukan nama grup domain dengan SID yang dikenal, gunakan perintah:
Dapatkan-ADGroup -Identity S-1-5-21-247647651-3952524288-2944781117-23711116
Anda juga dapat mengetahui grup SD dan pengguna menggunakan kelas PowerShell bawaan (tanpa modul tambahan):
$ objSID = Sistem Objek Baru. Keamanan.Principal.SecurityIdentifier ("S-1-5-21-2470456651-3958312488-29145117-23345716")
$ objUser = $ objSID.Translate ([System.Security.Principal.NTAccount])
$ objUser.Value
Cari objek di Active Directory oleh SID
Jika Anda tidak tahu jenis objek AD apa yang dimiliki oleh SID dan cmdlet yang tepat untuk menemukannya (Get-AdUser, Get-ADComputer, atau Get-ADGroup), Anda dapat menggunakan metode universal untuk menemukan objek di Direktori Aktif dengan SID menggunakan Get cmdlet -ADObject.
$ sid = 'S-1-5-21-2470146651-3951111111-2989411117-11119501'
Dapatkan-ADObject -IncludeDeletedObjects -Filter "objectSid -eq '$ sid'" | Pilih-Nama objek, objectClass
SID
Dalam kasus kami, objek AD yang memiliki SID yang diberikan adalah komputer (objectClass).