-
Aygıt Yöneticisini Gerçek Zamanlı İzleme
Bu betik ile Windows Aygıt Yöneticisi'nde meydana gelen değişiklikleri (örn. bir aygıtın çıkarılması, yeni aygıt eklenmesi vb.) anlık olarak tespit edebilirsiniz.
Kullanım
Bu script bir Python betiğidir, çalıştırabilmek için bilgisayarınızda Python yüklü olmalıdır.
Buraya tıklayarak indirme sayfasına ulaşabilirsiniz.
import sys
import subprocess
import time
from datetime import datetime
def check_and_install_requirements():
try:
import win32com.client
return True
except ImportError:
print("\nUYARI: Bu scriptin çalışması için 'pywin32' kütüphanesinin yüklü olması gerekir.")
while True:
response = input("Kütüphane şimdi yüklensin mi? (E/H): ").strip().lower()
if response in ['e', 'evet']:
try:
print("Yükleniyor, lütfen bekleyin...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "pywin32"])
print("Kurulum başarıyla tamamlandı!\n")
return True
except subprocess.CalledProcessError as e:
print(f"Kurulum başarısız oldu. Hata: {e}")
print("Lütfen terminalden 'pip install pywin32' komutunu manuel olarak çalıştırın.")
return False
elif response in ['h', 'hayır']:
print("Kurulum reddedildi. Program sonlandırılıyor.")
return False
else:
print("Lütfen 'E' (Evet) veya 'H' (Hayır) giriniz.")
def device_monitor():
if not check_and_install_requirements():
return
import win32com.client
print("Windows Aygıt Yöneticisi İzleniyor (WQL Modu)...")
print("Çıkış yapmak için Ctrl+C tuşlarına basın.")
print("-" * 50)
try:
wmi = win32com.client.GetObject("winmgmts:root\\cimv2")
query = "SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_PnPEntity'"
watcher = wmi.ExecNotificationQuery(query)
print("Sistem başarıyla dinleniyor. Lütfen bir USB aygıtı takıp çıkarın.")
while True:
try:
event = watcher.NextEvent()
device = event.TargetInstance
event_type = event.Path_.Class
name = device.Caption or device.Name or "Bilinmeyen Aygıt"
category = device.PNPClass or "Bilinmeyen Kategori"
device_id = device.DeviceID or "Kimlik Yok"
timestamp = datetime.now().strftime("%H:%M:%S")
if event_type == "__InstanceCreationEvent":
print(f"[{timestamp}] [+] {category} kategorisine \"{name}\" adında aygıt EKLENDİ.")
print(f" -> Donanım Kimliği: {device_id}\n")
elif event_type == "__InstanceDeletionEvent":
print(f"[{timestamp}] [-] {category} kategorisinden \"{name}\" adında bir aygıt KALDIRILDI.")
print(f" -> Donanım Kimliği: {device_id}\n")
except Exception as e:
print(f"Hata detayı: {e}")
time.sleep(0.5)
except KeyboardInterrupt:
print("\nİzleme sonlandırıldı.")
except Exception as e:
print(f"\nKritik Hata: {e}")
print("Lütfen scripti yönetici olarak çalıştırmayı deneyin.")
if __name__ == "__main__":
device_monitor()