6 Eylül 2020 Pazar

Windows Management Instrumentation

Giriş
Windows Management Instrumentation (WMI) teknolojisi ile işletim sistemindeki bir çok bilgiye erişmek mümkün.

PowerShell ile Kullanımı
get-wmiobject ile wmi nesnelerine erişilebilir.
>get-wmiobject Win32_LogicalDisk

C# ile Kullanımı
wmi C# ile de kullanılabiliyor.

Nesneler
Sanırım bir sürü nesne çeşidi var. Şimdiye kadar karşıma çıkanlar şunlar.
  • Win32_DiskDrive
  • Win32_LogicalDisk
  • Win32_MappedLogicalDisk
  • Win32_NetworkAdapterConfiguration
  • Win32_SerialPort
  • Win32_PhysicalMedia
ManagementScope sınıfı
Constructor
Şöyle yaparız.
ManagementScope scope = new ManagementScope();
Başka bir bilgisayara erişmek için şöyle yaparız.
var options = new ConnectionOptions();
options.Authentication = AuthenticationLevel.Default;
options.Impersonation = ImpersonationLevel.Impersonate;
options.EnablePrivileges = true;

scope = new ManagementScope(@"\\" + machine + "\\root\\CIMV2", options);
Connect metoduŞöyle yaparız.
scope.Connect();
ManagementObjectSearcher sınıfı
ManagementObjectSearcher sınıfı yazısına taşıdım

ManagementObjectCollection Sınıfı
Şu satırı dahil ederiz.
using System.Management;
FirstOrDefault metodu
Örnek
Şöyle yaparız
ManagementObject managementObject = moc.FirstOrDefault();
if (managementObject == null) {
  // Handle error (output text or throw exception)
  Console.WriteLine("Could not find a management object!");
} else {
  ...
}
Örnek
Bu sınıfı döngü içinde kullanmak için şöyle yaparız.
ManagementObjectSearcher mSearch;
= new ManagementObjectSearcher("Select * from ...");
ManagementObjectCollection mReturn = mSearch.Get();

foreach (ManagementObject mObj in mReturn)
{
  ...
}

Hiç yorum yok:

Yorum Gönder