Saya ingin mendapatkan tanggal pembuatan akun pengguna lokal (Menangkan 7 jika penting). Saya telah melihat objek WMI berikut (dan tentu saja google):
Win32_UserAccount
Win32_NetworkLoginProfile
Objek yang dikembalikan dari NetworkLoginProfile
memiliki waktu login terakhir, tetapi bukan tanggal pembuatan. Memeriksa Date Created
properti folder profil mereka hanya memberikan tanggal folder itu dibuat, belum tentu akun itu sendiri.
windows
powershell
wmi
user-accounts
MDMoore313
sumber
sumber
Jawaban:
Data ada di SAM tetapi tampaknya tidak didokumentasikan secara publik oleh Microsoft dan saya tidak menemukan API resmi untuk mengambilnya. Saya dapat melihat, melihat kode sumber untuk
chntpw
utilitas yang nilainya disimpan dalam kunci registri "F" untuk setiap akun. Quoth kode sumber:The regripper proyek forensik memiliki plugin, samparse yang akan melaporkan tanggal pembuatan akun.
Alat forensik mungkin bukan yang Anda inginkan, tetapi sepertinya Microsoft tidak membuatnya mudah.
Dalam meneliti ini saya merasa lucu bahwa Microsoft MVP tidak tahu bahwa data pembuatan akun disimpan di SAM . Untuk keuntungannya mungkin dia tidak jauh dari
chntpw
utilitas, di situlah saya memulai pencarian saya untuk informasi tentang struktur SAM tidak berdokumen.sumber
Satu-satunya cara untuk benar-benar mengetahuinya adalah mengaktifkan audit manajemen akun pada saat menghitung r ketika akun dibuat. Kemudian, Anda akan melihat EventID 4720 di Log Peristiwa pada tanggal pembuatan. (Artikel tersebut mengatakan Active Directory, tetapi hal yang sama berlaku untuk akun lokal juga; Saya telah memeriksa.)
Tanpa itu, yang paling dekat Anda dapat datang adalah dengan memeriksa tanggal pembuatan pada kumpulan registri pengguna,
ntuser.dat
file, folder profil pengguna dll, tetapi seperti yang disebutkan dalam komentar, ini hanya akurat mengenai login pertama pengguna, karena saat itulah hal-hal dibuat.Sayangnya untuk Anda, ini adalah kasus "jika Anda tidak mencatatnya, maka informasi itu tidak ada."
sumber
Saya baru saja akan memberi Anda skrip PowerShell POC untuk mengekstrak dan menguraikan waktu pembuatan, tetapi saya menyadari bahwa
chntpw
logika itu salah. Nilai yang disebutnya waktu pembuatan sebenarnya adalah kata sandi waktu yang diset terakhir, meskipun nilai-nilai ini sama pada saat pembuatan akun awal. Lihat di sini untuk deskripsi lengkap tentang SAM.Tautan kedua Evan, untuk
samparse
, mungkin bisa melakukannya dengan benar. Melihat itu sebenarnya berfungsi. Jika Anda melihat sumbernya di sini , baris 99:Anda akan melihatnya panggilan
get_timestamp
dari PerlParse::Win32Registry
. Saya cukup yakin itu sebenarnya adalah waktu penulisan kunci terakhir. Karena tampaknya bahwa tombol tertentu (HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>
) hanya menyimpan pointer ke kunci RID yang sesuai, itu tidak boleh berubah setelah pembuatan dan waktu penulisan terakhir akan sama dengan waktu pembuatan.Jika Anda ingin tetap menggunakan lebih banyak alat bawaan, berikut adalah serangkaian artikel dari Scripting Guy yang menjelaskan caranya melalui PowerShell:
Gunakan PowerShell untuk Mengakses Stempel Waktu Modifikasi Terakhir Registri
Menggunakan kembali PowerShell Registry Time Stamp Code
Buat Fungsi Proksi untuk Menampilkan Perangko Waktu Kunci Registri
Leverage Registry Key Time Stamps melalui PowerShell
sumber
Perintah ini di PowerShell harus melakukan trik:
sumber
Menavigasi melalui Komputer Saya ke
C: \ Users dan Anda akan melihat semua akun pengguna yang terdaftar di mesin lokal. Anda dapat mengklik kanan akun pengguna yang sesuai dan pergi ke properti dan itu akan menunjukkan kepada Anda tanggal yang dibuat, ini harus sama dengan pembuatan akun pengguna
Hanya 2 sen saya
sumber