python wmi模塊,delphi中WMI的使用(一)

 2023-12-06 阅读 25 评论 0

摘要:WMI(Windows Management Instrumentation,Windows 管理規范)是一項核心的 Windows 管理技術;用戶可以使用 WMI 管理本地和遠程計算機。 通過使用WMI,我們可以很方便的獲取到電腦的系統信息,但是很遺憾的是,我在網上找到的基本上都是

WMI(Windows Management Instrumentation,Windows 管理規范)是一項核心的 Windows 管理技術;用戶可以使用 WMI 管理本地和遠程計算機。

通過使用WMI,我們可以很方便的獲取到電腦的系統信息,但是很遺憾的是,我在網上找到的基本上都是對于某個功能的實現,比如查詢IP,獲取計算機名稱,檢測操作系統信息等等,如果只是在工作中用到了來查一下是沒有問題的,但是,要想全面的了解WMI中的類庫,來系統的掌握就很困難,WMI中有哪些系統的類,里面有哪些屬性,這些屬性都代表什么意思?MSND上面對于vbscript腳本實現的教程很詳細,但是具體在delphi中對應的類型和參數名稱是不一樣的。

先做一個通用一點的調用函數,具體的信息可以傳遞參數進來獲取到:

function GetWMIProperty(WMIType, WMIProperty: string): string;
var Wmi, Objs, Obj: OleVariant;C: Cardinal;i,Len:integer;tempItem:IEnumVariant;
beginWmi:= CreateOleObject('WbemScripting.SWbemLocator');Objs := Wmi.ConnectServer('.','root\cimv2').ExecQuery('Select * from Win32_' + WMIType);tempItem:=IEnumVariant(IUnknown(Objs._NewEnum));Result:='';while (tempItem.Next(1, obj, c) = S_OK) dobeginObj := Obj.Properties_.Item(WMIProperty, 0).Value;if not VarIsNull(obj) thenbeginResult :=Result +trim(Obj);break;end;end;
end;

因為WMI中通用的類大多是Win32_開頭的,這里只需要傳遞后面的部分。

那么下一步,怎么知道我需要的是什么參數呢?以獲取計算機名為例:

str := GetWMIProperty('OperatingSystem','CSName');即可獲得。

當然,計算機名信息是比較常用的,在好幾個類里面都有。

Win32_開頭的類有:

Win32_Account
Win32_ActiveRoute
Win32_AutochkSetting
Win32_BaseBoard
Win32_BaseService
Win32_BIOS
Win32_BootConfiguration
Win32_Bus
Win32_ComputerSystem
Win32_ComputerSystemWindowsProductActivation
Win32_Desktop
Win32_DesktopMonitor
Win32_DeviceSettings
Win32_DiskDrive
Win32_DiskDrivePhysicalMedia
Win32_DisplayConfiguration
Win32_Environment
Win32_FontIntoAction
Win32_Group
Win32_IDEController
Win32_IP4PersistedRouteTable
Win32_IP4RouteTable
Win32_Keyboard
Win32_LogicalDisk
Win32_LogicalProgramGroup
Win32_LogonSession
Win32_MappedLogicalDisk
Win32_MemoryDevice
Win32_MotherboardDevice
Win32_NetworkAdapter
Win32_NetworkAdapterConfiguration
Win32_NetworkAdapterSetting
Win32_NetworkClient
Win32_NetworkConnection
Win32_OperatingSystem
Win32_PerfFormattedData_RemoteAccess_RASPort
Win32_PerfFormattedData_RemoteAccess_RASTotal
Win32_PerfRawData_RemoteAccess_RASPort
Win32_PhysicalMedia
Win32_PhysicalMemory
Win32_PNPDevice
Win32_PortConnector
Win32_POTSModem
Win32_POTSModemToSerialPort
Win32_Printer
Win32_PrinterConfiguration
Win32_Process
Win32_Processor
Win32_Product
Win32_ProgramGroup
Win32_ScheduledJob
Win32_SerialPort
Win32_SerialPortConfiguration
Win32_SerialPortSetting
Win32_Service
Win32_ServiceControl
Win32_SoundDevice
Win32_StartupCommand
Win32_SystemAccount
Win32_SystemBIOS
Win32_SystemSetting
Win32_SystemTimeZone
Win32_SystemUsers
Win32_TapeDrive
Win32_TemperatureProbe?
Win32_USBController
Win32_USBControllerDevice
Win32_UserAccount
Win32_VideoController
Win32_VideoSettings
Win32_WindowsProductActivation
不過常用的也就那么幾個,這些類型中的屬性,我會在后面的文章中慢慢的總結。

轉載于:https://www.cnblogs.com/jinshizuofei/p/3418642.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/192868.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息