SKENARIO
Untuk menyederhanakan ini ke contoh termudah:
Saya memiliki DC standar Windows 2008 R2 dengan peran server DHCP. Ini membagikan IP melalui berbagai cakupan IPv4, tidak ada masalah di sana.
APA YANG SAYA INGIN
Saya ingin cara untuk membuat entri notifikasi / eventlog / serupa setiap kali perangkat mendapat sewa alamat DHCP dan perangkat itu BUKAN domain yang bergabung dengan komputer di Active Directory. Tidak masalah bagi saya apakah itu custom Powershell, dll.
Intinya = Saya ingin mengetahui kapan perangkat non-domain berada di jaringan tanpa menggunakan 802.1X saat ini. Saya tahu ini tidak akan menjelaskan perangkat IP statis. Saya memang memiliki perangkat lunak pemantauan yang akan memindai jaringan dan menemukan perangkat, tetapi ini tidak cukup rinci.
SELESAI PENELITIAN / OPSI YANG DIPERTIMBANGKAN
Saya tidak melihat kemungkinan seperti itu dengan logging bawaan.
Ya, saya mengetahui 802.1X dan memiliki kemampuan untuk mengimplementasikannya dalam jangka panjang di lokasi ini, tetapi kami berada agak jauh dari proyek seperti itu, dan sementara itu akan menyelesaikan masalah otentikasi jaringan, ini masih membantu saya di luar dari 802.1X tujuan.
Saya telah mencari-cari beberapa bit skrip, dll. Yang mungkin terbukti berguna tetapi hal-hal yang saya temukan membuat saya percaya bahwa google-fu saya gagal saat ini.
Saya percaya logika di bawah ini masuk akal ( dengan asumsi tidak ada solusi yang ada ):
- Perangkat menerima alamat DHCP
- Entri log peristiwa dicatat (ID peristiwa 10 dalam log audit DHCP harus berfungsi (karena sewa baru adalah yang paling saya minati, bukan pembaruan): http://technet.microsoft.com/en-us/library /dd759178.aspx )
- Pada titik ini suatu naskah mungkin harus mengambil alih untuk "LANGKAH" yang tersisa di bawah ini.
- Entah bagaimana menanyakan log DHCP ini untuk acara ID 10 ini (Saya ingin push, tapi saya kira tarikan adalah satu-satunya jalan di sini)
- Parsing kueri untuk nama perangkat yang ditugaskan sewa baru
- Permintaan AD untuk nama perangkat
- JIKA tidak ditemukan dalam AD, kirim email notifikasi
Jika ada yang punya ide tentang bagaimana melakukan ini dengan benar, saya akan sangat menghargainya. Saya tidak mencari "beri kode" tetapi ingin tahu apakah ada alternatif untuk daftar di atas atau jika saya tidak berpikir jernih dan ada metode lain untuk mengumpulkan informasi ini. Jika Anda memiliki cuplikan kode / perintah PS yang ingin Anda bagikan untuk membantu menyelesaikan ini, semuanya lebih baik.
Jawaban:
Dengan banyak terima kasih kepada ErikE dan yang lainnya di sini, saya telah menempuh jalan ... Saya tidak akan mengatakan itu jalan yang benar, tetapi skrip Powershell yang saya buat berhasil.
Kode di bawah ini jika ada yang menginginkannya. Jalankan saja menunjuk secara manual pada setiap server DHCP atau jadwalkan (sekali lagi menunjuk ke setiap server DHCP dalam skrip).
Apa yang dilakukan skrip:
Apa yang Anda butuhkan:
Script menggunakan modul AD (
import-module activedirectory
) jadi sebaiknya dijalankan pada AD DC yang menjalankan DHCP. Jika ini bukan masalahnya, Anda dapat menginstal modul AD powershell: http://blogs.msdn.com/b/rkramesh/archive/2012/01/17/how-to-add-active-directory- module-in-powershell-in-windows-7.aspxAnda juga akan memerlukan cmdlet AD Powershell milik Quest yang ditemukan di sini: http://www.quest.com/powershell/activeroles-server.aspx . Instal INI SEBELUM menjalankan skrip atau itu akan gagal.
Script itu sendiri (dibersihkan, Anda harus mengatur beberapa variabel agar sesuai dengan kebutuhan Anda seperti nama file input, domain untuk terhubung, server dhcp untuk terhubung, pengaturan email di dekat akhir, dll.):
Semoga itu bisa membantu orang lain!
sumber
OK, saya tidak yakin saya mengikuti etiket di sini tetapi saya memposting jawaban kedua alih-alih mengedit jawaban saya sebelumnya, karena memang berisi beberapa info yang mungkin berguna untuk seseorang bahkan jika terbukti tidak relevan dengan kasus ini. Jika itu membuat saya idiot di forum ini, silakan memberi tahu saya tentang cara saya yang salah.
Masalahnya dibagi menjadi beberapa bagian, berikut adalah saran untuk yang menurut saya paling menarik. Tanpa contoh dari log ini adalah yang terbaik yang bisa saya lakukan, jadi itu hanya saran bukan solusi.
Untuk mengurai log digunakan
get-content
dengan-wait
parameter. Untuk kasus penggunaan saya, itu cukup untuk menemukan kesalahan dalam log kesalahan.Inilah yang berfungsi untuk kasus penggunaan saya sendiri, maafkan pemformatan:
Alih-alih,
$_ -match "ERROR"
Anda harus memisahkan bidang ID log dan nama komputer. Saya tidak yakin bagaimana cara melakukannya dengan cara terbaik saat ini, tetapi karenawhere-object -match
memberikan dukungan regex saya kira itu bisa menjadi pilihan. Anda juga bisa mulai dengan menyimpan variabel $ _ di variabel baru lainnya, untuk dapat mengambilnya sesuka Anda nanti dalam saluran pipa, di dalam loop foreach bersarang terlebih dahulu dll.Dengan asumsi Anda bisa mendapatkan di computername, saya kira
get-adcomputer
cmdlet akan menjadi cara paling sederhana untuk menanyakan AD Anda (import-module activedirectory
), dan saya kira pada kesalahan mengirim email?Menggunakan
import-csv
tentu saja akan jauh lebih elegan dalam kasus Anda, tapi saya tidak mengetahui cara untuk mengikutinya (jika ada yang membaca ini dan mengetahui trik menaiki lorong itu tolong, silakan berbagi).sumber
Di bawah asumsi bahwa Anda yakin dengan ID Peristiwa, dan bahwa tidak ada peristiwa lain yang masuk ke ID ini di log DHCP tetapi yang Anda minati, push memang pilihan.
1) Buka Server Manager, buka log DHCP di Event Viewer.
2) Temukan entri representatif yang ingin Anda lampirkan tindakan Anda. Pilih dan klik kanan.
3) Pilih "Lampirkan Tugas Ke Acara Ini".
4) Wisaya Pembuatan Tugas terbuka, bawa pergi dari sana ...
Sebenarnya ada opsi email eksplisit, tetapi jika Anda membutuhkan lebih banyak logika dari itu Anda tentu saja bebas menggunakan opsi start-a-program untuk menjalankan powershell.exe dan melampirkan skrip untuk itu. Ada banyak howtos googleable yang sangat baik tentang cara membiarkan Task Manager menjalankan skrip PowerShell jika Anda memerlukan panduan.
Alternatif langsung yang saya lihat adalah menggunakan tarikan dengan mem-parsing Event Log menggunakan PowerShell pada interval yang dijadwalkan. "The Microsoft Scripting Guy", alias Ed Wilson telah menulis beberapa posting blog yang luar biasa tentang cara mem-parsing Event Log menggunakan cmdlet yang tersedia dalam versi PowerShell yang berbeda, jadi menjadikan blognya sebagai titik awal akan menjadi saran saya.
Adapun cmdlet aktual, saya tidak punya waktu sekarang untuk menarik simpanan potongan berguna saya, tetapi akan melihat lagi dalam satu atau dua hari dan dapat berkontribusi jika tidak ada orang lain yang memilih dengan beberapa yang dipilih dengan baik, atau Anda berlindung ´t diselesaikan sendiri :-)
sumber
Applications and Services Logs
(sejauh ini berdasarkan penelitian / pengujian saya)Meskipun ini tidak membahas solusi yang Anda inginkan, opsi yang dapat mencapai tujuan Anda adalah menggunakan
arpwatch
( tautan ) untuk memberi tahu Anda ketika host baru (sebelumnya tidak terlihat) terlihat di jaringan.Alternatif Windows
arpwatch
untuk menjadi decaffeinatid tapi saya tidak pernah menggunakannya jadi tidak bisa berbicara baik atau buruk.sumber