Saya memiliki program C # yang melakukan ini. Saya punya masalah pada Server 2008 R2 di mana log peristiwa tidak selalu mencantumkan alamat IP pengguna (jika mereka terhubung dari klien Remote Desktop yang lebih baru). Beberapa layanan menerapkan penyedia pemeriksaan kredensial mereka sendiri yang tidak memberikan semua informasi yang Anda inginkan.
http://cyberarms.net/security-insights/security-lab/remote-desktop-logging-of-ip-address-%28security-event-log-4625%29.aspx
Untuk Remote Desktop namun saya menemukan bahwa masuk ke "Remote Desktop Session Host Configuration" dan mengubah koneksi RDP-TCP untuk memiliki lapisan keamanan "RDP Security Layer" alih-alih "Negosiasi" atau "SSL (TLS 1.0)" mengembalikan Alamat IP.
Apakah Anda benar-benar ingin melakukan ini adalah pertanyaan lain untuk Anda, "Jika Anda memilih RDP Security Layer, Anda tidak dapat menggunakan Otentikasi Tingkat Jaringan."
Saya menemukan http://www.windowsecurity.com/articles/logon-types.html untuk membantu. Saya menggunakan EventLogWatcher dan terikat ke "* [System / EventID = 4625 atau System / EventID = 4624]" sehingga saya dapat mengatur ulang hitungan buruk pada kesuksesan jika pengguna benar-benar salah memasukkan kata sandi. Saya juga masuk daftar putih :: 1, 0.0.0.0, 127.0.0.1 dan "-". Anda mungkin ingin atau tidak ingin membuat daftar putih LAN / IP manajemen.
Saya menggunakan Forefront TMG jadi saya menggunakan API untuk menambahkan alamat IP yang buruk ke sekelompok IP dengan cara itu dan saya telah meminta Cisco untuk menambahkan akses API ke salah satu router SMB mereka (yang mereka telah meyakinkan saya bahwa mereka mungkin saja melakukannya!)
Jika Anda ingin menggunakan Firewall Windows asli untuk memblokirnya, lihat API untuk itu ("netsh advfirewall").
Saya mengizinkan x sejumlah upaya sebelum saya mencekal dan sukses akan mengatur ulang hitungan.