ripdad Posted January 6, 2017 Posted January 6, 2017 (edited) This function (version 1), was developed solely for applications I needed it for. It was only tested with Class names that was needed in those scripts. And so, I didn't want to release it by itself because I knew it needed some more work before I did that. Recently, I delved back into it after several years and am now releasing version 2, which was mostly rewritten over the past several weeks. What does it do? It retrieves the properties and values pertaining to your computer, operating system and devices. All you need is a valid Win32 Class Name. So, here it is -- let me know if you have any issues! Updated to v2.25, January 14, 2017 Download: _WMI_InstancesOf_v2.25.au3 Edited January 14, 2017 by ripdad argumentum and Trong 2 "The mediocre teacher tells. The Good teacher explains. The superior teacher demonstrates. The great teacher inspires." -William Arthur Ward
ripdad Posted January 10, 2017 Author Posted January 10, 2017 (edited) I tested the class string: Win32_NTLogEvent WHERE Logfile="System" and it returns an error because file is in Logfile. Oh well. Edit: fixed in v2.11 Edited January 11, 2017 by ripdad "The mediocre teacher tells. The Good teacher explains. The superior teacher demonstrates. The great teacher inspires." -William Arthur Ward
ripdad Posted January 11, 2017 Author Posted January 11, 2017 (edited) Updated to v2.11 - Fixed a problem with WHERE statement strings - Now supports horizontal arrays Examples: #include 'array.au3' #include '_WMI_InstancesOf_v2.11.au3' ; Example 1 - vertical array Local $rtn = _WMI_InstancesOf('Win32_OperatingSystem', 1) Local $nError = @error If IsArray($rtn) Then _ArrayDisplay($rtn) Else MsgBox(0, '', 'Error: ' & $nError & @CRLF & $rtn) EndIf Exit #include 'array.au3' #include '_WMI_InstancesOf_v2.11.au3' ; Example 2 - horizontal array Local $sClass = 'Win32_NTLogEvent WHERE Logfile="System"' $sClass &= ' And EventCode="6005"' $sClass &= ' And TimeGenerated>"20160101000000.000000-000"'; date range start (get month, December 2016) $sClass &= ' And TimeGenerated<"20170101000000.000000-000"'; date range end + 1 Local $NoBlanks = 0; include blank values Local $nHorizontal = 1; return horizontal array ($NoBlanks = 0, must be used) Local $nStatement = 1; get these properties only Local $strProperty = 'ComputerName|EventCode|EventIdentifier|TimeGenerated' Local $rtn = _WMI_InstancesOf($sClass, $NoBlanks, $nHorizontal, $nStatement, $strProperty) Local $nError = @error If IsArray($rtn) Then _ArraySort($rtn, 0, 1, 0, 3); <- sort by date column (user dependent) _ArrayDisplay($rtn) Else MsgBox(0, '', 'Error: ' & $nError & @CRLF & $rtn) EndIf Exit #include 'array.au3' #include '_WMI_InstancesOf_v2.11.au3' ; Example 3 - horizontal array Local $strProperty = 'Name|NetConnectionID|Manufacturer|NetConnectionStatus' Local $rtn = _WMI_InstancesOf('Win32_NetworkAdapter', 0, 1, 1, $strProperty) Local $nError = @error If IsArray($rtn) Then _ArrayDisplay($rtn) Else MsgBox(0, '', 'Error: ' & $nError & @CRLF & $rtn) EndIf Exit Edited January 11, 2017 by ripdad "The mediocre teacher tells. The Good teacher explains. The superior teacher demonstrates. The great teacher inspires." -William Arthur Ward
ripdad Posted January 14, 2017 Author Posted January 14, 2017 Updated to v2.25 - see first post This should be it, unless someone has a suggestion or problem with the script. "The mediocre teacher tells. The Good teacher explains. The superior teacher demonstrates. The great teacher inspires." -William Arthur Ward
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now