<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.autoitscript.com/w/index.php?action=history&amp;feed=atom&amp;title=RemoteWmiInfo</id>
	<title>RemoteWmiInfo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.autoitscript.com/w/index.php?action=history&amp;feed=atom&amp;title=RemoteWmiInfo"/>
	<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;action=history"/>
	<updated>2026-04-21T20:25:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=11485&amp;oldid=prev</id>
		<title>IEvKI3gv9Wrkd41u: add to: Category:Samples</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=11485&amp;oldid=prev"/>
		<updated>2012-12-11T06:17:07Z</updated>

		<summary type="html">&lt;p&gt;add to: Category:Samples&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:17, 11 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Samples]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;Script:&amp;lt;/b&amp;gt; remoteWMIInfo&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;b&amp;gt;Script:&amp;lt;/b&amp;gt; remoteWMIInfo&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>IEvKI3gv9Wrkd41u</name></author>
	</entry>
	<entry>
		<id>https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=8209&amp;oldid=prev</id>
		<title>TMA-2: Removed reference to internal AD stuff in a comment.</title>
		<link rel="alternate" type="text/html" href="https://www.autoitscript.com/w/index.php?title=RemoteWmiInfo&amp;diff=8209&amp;oldid=prev"/>
		<updated>2009-09-26T18:54:27Z</updated>

		<summary type="html">&lt;p&gt;Removed reference to internal AD stuff in a comment.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;b&amp;gt;Script:&amp;lt;/b&amp;gt; remoteWMIInfo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt; Jon Dunham&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Description:&amp;lt;/b&amp;gt; Mostly-functioning example script for how to retrieve WMI information, as well as working with GUI controls. I currently use it a lot in my job, and works quite well at this point. It&amp;#039;s commented sparingly thus far, but I&amp;#039;ll try and and comment more of it for educational purposes. Please don&amp;#039;t hesitate to contact me if you find problems with it or have ideas on improving its efficiency.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt; The Remote and Logoff buttons are disabled by default, as they&amp;#039;re dependent on whether you have access to an internal LANDesk management suite URL (which is what I use specifically, it could also easily be changed to use WinVNC and the like), as well as the psShutdown tool. Also, bear this in mind:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;my code is a dog&amp;#039;s code&amp;quot; - &amp;lt;i&amp;gt;R. Beef Kazenzakis&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
; UDF&lt;br /&gt;
#include &amp;lt;date.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ie.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;array.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;misc.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;guiStatusBar.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Standard&lt;br /&gt;
#include &amp;lt;EditConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstantsEx.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;StaticConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;WindowsConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;ButtonConstants.au3&amp;gt;&lt;br /&gt;
#include &amp;lt;Constants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; -( remoteWmiInfo )--------------------&lt;br /&gt;
;&lt;br /&gt;
; © Jon Dunham 2009&lt;br /&gt;
;&lt;br /&gt;
; displays WMI and AD info including;&lt;br /&gt;
; 	0: Computer model&lt;br /&gt;
;	1: Serial Number &amp;amp; Asset (if found)&lt;br /&gt;
;	2: BIOS Version&lt;br /&gt;
;	3: total RAM&lt;br /&gt;
;	4: Operating system &amp;amp; service pack&lt;br /&gt;
;	5: MAC Address&lt;br /&gt;
;   6; private IP&lt;br /&gt;
;	7: current domain/user, including display name and SID (in a tooltip)&lt;br /&gt;
;	8: DefaultUserName, including display name and SID (in a tooltip)&lt;br /&gt;
;	9: time to connect in ms &amp;amp; ping&lt;br /&gt;
;  10: Bottom-level OU&lt;br /&gt;
;  11; IP address&lt;br /&gt;
;  12; wireless info from wirelessInfo.au3&lt;br /&gt;
;  13; active monitor model&lt;br /&gt;
;  14; active monitor serial (to some extent)&lt;br /&gt;
;  BLAH BLAH I&amp;#039;M NOT UPDATING THIS ANY MORE&lt;br /&gt;
;&lt;br /&gt;
; also uses psShutdown and LANDesk&lt;br /&gt;
;  for remoting convenience&lt;br /&gt;
;&lt;br /&gt;
; ======================================&lt;br /&gt;
&lt;br /&gt;
Dim $compName, $go, $done&lt;br /&gt;
Global Const $version = &amp;quot;0.4.10&amp;quot;&lt;br /&gt;
Global $debug = 0&lt;br /&gt;
Global $pathSave = @MyDocumentsDir &amp;amp; &amp;quot;\remoteWmiInfo Queries\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AutoItSetOption(&amp;quot;TrayAutoPause&amp;quot;, 0)&lt;br /&gt;
AutoItSetOption(&amp;quot;GUICloseOnESC&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
;HotKeySet( &amp;quot;{ENTER}&amp;quot;, &amp;quot;hotkey_enter&amp;quot; )&lt;br /&gt;
;HotKeySet( &amp;quot;{F1}&amp;quot;, &amp;quot;aboutDiag&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
; make sure icons exist&lt;br /&gt;
DirCreate(&amp;quot;Icons&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;, &amp;quot;Icons\Dialog-Apply.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;, &amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;, &amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;)&lt;br /&gt;
If Not FileExists(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;) Then _&lt;br /&gt;
		FileInstall(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;, &amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Region ### START Koda GUI section ### Form=&lt;br /&gt;
$frmInfo = GUICreate(&amp;quot;remoteWmiInfo &amp;quot; &amp;amp; $version, 337, 377, @DesktopWidth / 2, @DesktopHeight * 0.3)&lt;br /&gt;
$winSize = WinGetClientSize($frmInfo)&lt;br /&gt;
GUISetBkColor(0xEEEEEE)&lt;br /&gt;
GUISetIcon(&amp;quot;Icons\Gnome-System-Search.ico&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;	Top Controls&lt;br /&gt;
$editComp = GUICtrlCreateInput(@ComputerName, 4, 30, 329, 21, $ES_UPPERCASE)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Dialog-Apply.ico&amp;quot;, -1, 4, 4, 21, 21)&lt;br /&gt;
$btnGo = GUICtrlCreateButton(&amp;quot;Query&amp;quot;, 27, 4, 45, 21, $BS_DEFPUSHBUTTON)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Document-Save.ico&amp;quot;, -1, 74, 4, 21, 21)&lt;br /&gt;
$btnSave = GUICtrlCreateButton(&amp;quot;Save&amp;quot;, 97, 4, 45, 21)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Preferences-Desktop-Remote-Desktop.ico&amp;quot;, -1, 144, 4, 21, 21)&lt;br /&gt;
$btnRC = GUICtrlCreateButton(&amp;quot;Remote&amp;quot;, 167, 4, 45, 21)&lt;br /&gt;
GUICtrlCreateIcon(&amp;quot;Icons\Gnome-Application-Exit.ico&amp;quot;, -1, 214, 4, 21, 21)&lt;br /&gt;
GUICtrlSetState($btnRC, $GUI_DISABLE)&lt;br /&gt;
$btnLO = GUICtrlCreateButton(&amp;quot;Logoff&amp;quot;, 237, 4, 45, 21)&lt;br /&gt;
GUICtrlSetState($btnLO, $GUI_DISABLE)&lt;br /&gt;
;$btnADQ = GUICtrlCreateButton( &amp;quot;dsQuery&amp;quot;, 102, 29, 45, 21 )&lt;br /&gt;
&lt;br /&gt;
$Tab1 = GUICtrlCreateTab(4, 56, 330, 297)&lt;br /&gt;
GUICtrlSetResizing($Tab1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)&lt;br /&gt;
$TabSheet1 = GUICtrlCreateTabItem(&amp;quot;General&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
;	Labels&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Model:&amp;quot;, 12, 81, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Serial / Asset:&amp;quot;, 12, 105, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;BIOS Version:&amp;quot;, 12, 129, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Total RAM:&amp;quot;, 12, 153, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;OS:&amp;quot;, 12, 177, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;MAC:&amp;quot;, 12, 201, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;IP:&amp;quot;, 12, 225, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;OU:&amp;quot;, 12, 249, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Current User:&amp;quot;, 12, 273, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Default User:&amp;quot;, 12, 297, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Ping:&amp;quot;, 12, 321, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
&lt;br /&gt;
;	Edit controls&lt;br /&gt;
&lt;br /&gt;
$editModel = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 81, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editSerial = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 105, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editBIOS = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 129, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editRAM = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 153, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editOS = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 177, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editMAC = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 201, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editIP = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 225, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDN = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 249, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editUser = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 273, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDefaultUser = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 297, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editPing = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 321, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;	Wireless info&lt;br /&gt;
$TabSheet2 = GUICtrlCreateTabItem(&amp;quot;Wireless&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;SSID:&amp;quot;, 12, 81, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;BSSID:&amp;quot;, 12, 105, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Signal:&amp;quot;, 12, 129, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Noise:&amp;quot;, 12, 153, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Channel:&amp;quot;, 12, 177, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
&lt;br /&gt;
;	Edits&lt;br /&gt;
&lt;br /&gt;
$editSSID = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 81, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editBSSID = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 105, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editSignal = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 129, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editNoise = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 153, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editChannel = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 177, 228, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
;	Misc info (incl. monitor)&lt;br /&gt;
$TabSheet3 = GUICtrlCreateTabItem(&amp;quot;Misc&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$Group1 = GUICtrlCreateGroup(&amp;quot;Monitor&amp;quot;, 12, 86, 313, 102)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Model:&amp;quot;, 20, 106, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Serial:&amp;quot;, 20, 130, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Description:&amp;quot;, 20, 154, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editDmName = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 106, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDmSerial = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 130, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editDmDesc = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 154, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
$Group2 = GUICtrlCreateGroup(&amp;quot;Software&amp;quot;, 12, 190, 313, 102)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;IE:&amp;quot;, 20, 210, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Java RE:&amp;quot;, 20, 234, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;LANDesk:&amp;quot;, 20, 258, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editVerIE = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 210, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editVerJava = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 234, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
$editLD = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 258, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
; default printer&lt;br /&gt;
&lt;br /&gt;
GUICtrlCreateLabel(&amp;quot;Printer:&amp;quot;, 20, 300, 70, 17)&lt;br /&gt;
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)&lt;br /&gt;
$editPrinter = GUICtrlCreateInput(&amp;quot;&amp;quot;, 96, 300, 212, 22, BitOR($ES_AUTOHSCROLL, $ES_READONLY))&lt;br /&gt;
&lt;br /&gt;
;	End tab section&lt;br /&gt;
GUICtrlCreateTabItem(&amp;quot;&amp;quot;)&lt;br /&gt;
GUISetState(@SW_SHOW)&lt;br /&gt;
;$background = GUICtrlCreatePic( &amp;quot;c:\temp\osxclonebg.jpg&amp;quot;, 0, 0, 350, 274)&lt;br /&gt;
&lt;br /&gt;
GUICtrlSetTip($btnGo, &amp;quot;Attempt to query the specified computer.&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnSave, &amp;quot;Save all fields to &amp;quot; &amp;amp; $pathSave &amp;amp; &amp;quot;COMPUTERNAME-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnRC, &amp;quot;Start a remote control session with the specified computer.&amp;quot;)&lt;br /&gt;
GUICtrlSetTip($btnLO, &amp;quot;Logoff the current user (please make sure nobody is using it before doing this!!!).&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$statusBar = _GUICtrlStatusBar_Create($frmInfo)&lt;br /&gt;
; try to make a dynamically-sized status size&lt;br /&gt;
Dim $StatusBar1_PartsWidth[2] = [StringLen(_NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;) * 6.5, -1]&lt;br /&gt;
_GUICtrlStatusBar_SetParts($statusBar, $StatusBar1_PartsWidth)&lt;br /&gt;
_GUICtrlStatusBar_SetText($statusBar, _NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;, 0)&lt;br /&gt;
_GUICtrlStatusBar_SetText($statusBar, &amp;quot;&amp;quot;, 1)&lt;br /&gt;
_GUICtrlStatusBar_SetMinHeight($statusBar, 20)&lt;br /&gt;
#EndRegion ### END Koda GUI section ###&lt;br /&gt;
&lt;br /&gt;
Dim $goState, $logoffCheck&lt;br /&gt;
&lt;br /&gt;
While 1 ; main loop&lt;br /&gt;
	$guiMsg = GUIGetMsg()&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		; Close window&lt;br /&gt;
		Case $guiMsg = $GUI_EVENT_CLOSE&lt;br /&gt;
			GUIDelete()&lt;br /&gt;
			Exit&lt;br /&gt;
			; Save info&lt;br /&gt;
		Case $guiMsg = $btnSave&lt;br /&gt;
&lt;br /&gt;
			; Check that model field isn&amp;#039;t blank&lt;br /&gt;
			If GUICtrlRead($editModel) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				Dim $stateWrite, $file&lt;br /&gt;
&lt;br /&gt;
				If Not FileExists($pathSave) Then&lt;br /&gt;
					DirCreate($pathSave)&lt;br /&gt;
				EndIf&lt;br /&gt;
&lt;br /&gt;
				; this needs to be updated for all fields&lt;br /&gt;
				$stateWrite = FileWrite($pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt&amp;quot;, _&lt;br /&gt;
						&amp;quot;-( General )------------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editModel) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSerial) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editBIOS) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editRAM) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editOS) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editMAC) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editIP) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDN) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editUser) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDefaultUser) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editPing) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						&amp;quot;-( Wireless )-----------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSSID) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editBSSID) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editSignal) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editNoise) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editChannel) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						&amp;quot;-( Monitor )------------------------------&amp;quot; &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmName) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmSerial) &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
						GUICtrlRead($editDmDesc))&lt;br /&gt;
&lt;br /&gt;
				If $stateWrite Then&lt;br /&gt;
					upStatus(&amp;quot;Info saved to [ &amp;quot; &amp;amp; $pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt ]&amp;quot;)&lt;br /&gt;
				Else&lt;br /&gt;
					upStatus(&amp;quot;Could not write file to [ &amp;quot; &amp;amp; $pathSave &amp;amp; GUICtrlRead($editComp) &amp;amp; &amp;quot;-&amp;quot; &amp;amp; @YEAR &amp;amp; @MON &amp;amp; @MDAY &amp;amp; &amp;quot;.txt ]&amp;quot;, 1)&lt;br /&gt;
				EndIf&lt;br /&gt;
&lt;br /&gt;
			Else&lt;br /&gt;
				upStatus(&amp;quot;No data to write!&amp;quot;, 1)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; Start the WMI query&lt;br /&gt;
		Case $guiMsg = $btnGo&lt;br /&gt;
			GUISetState(@SW_DISABLE)&lt;br /&gt;
			$goState = _go()&lt;br /&gt;
			GUISetState(@SW_ENABLE)&lt;br /&gt;
			WinActivate($frmInfo)&lt;br /&gt;
			; Start a LANDesk remote session&lt;br /&gt;
		Case $guiMsg = $btnRC&lt;br /&gt;
			If GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				Select&lt;br /&gt;
					Case $goState = 1&lt;br /&gt;
						Dim $rcWin = _IECreate(&amp;quot;http://landesk/RemoteSession.aspx?machine=&amp;quot; &amp;amp; _&lt;br /&gt;
							GUICtrlRead($editComp) &amp;amp; &amp;quot;&amp;amp;operation=rc&amp;quot;, 0, 0)&lt;br /&gt;
						_IEQuit($rcWin)&lt;br /&gt;
						$goState = 0&lt;br /&gt;
					Case $goState = 2&lt;br /&gt;
						upStatus(&amp;quot;Computer was not contactable.&amp;quot;, 1)&lt;br /&gt;
					Case $goState = 0&lt;br /&gt;
						upStatus(&amp;quot;Please query the computer first.&amp;quot;, 1)&lt;br /&gt;
				EndSelect&lt;br /&gt;
			Else&lt;br /&gt;
				upStatus(&amp;quot;Please enter a computer name.&amp;quot;, 1)&lt;br /&gt;
			EndIf&lt;br /&gt;
			; Run the logoff process if user clicks &amp;#039;Yes&amp;#039; to the msgbox&lt;br /&gt;
		Case $guiMsg = $btnLO&lt;br /&gt;
			If GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; And GUICtrlRead($editUser) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				$logoffCheck = MsgBox(51, &amp;quot;Remote WMI Info&amp;quot;, &amp;quot;This will log off the current user: &amp;quot; &amp;amp; _&lt;br /&gt;
					_currentUser(GUICtrlRead($editComp)) &amp;amp; &amp;quot;.&amp;quot; &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; &amp;quot;Have you checked &amp;quot; &amp;amp; _&lt;br /&gt;
					&amp;quot;that the computer is not in use?&amp;quot;)&lt;br /&gt;
				If $logoffCheck = 6 Then&lt;br /&gt;
					ShellExecute(&amp;quot;psTools\psshutdown.exe&amp;quot;, &amp;quot;-o \\&amp;quot; &amp;amp; GUICtrlRead($editComp))&lt;br /&gt;
				EndIf&lt;br /&gt;
			Else&lt;br /&gt;
				MsgBox(0, &amp;quot;&amp;quot;, &amp;quot;No computer entered or no user currently logged on.&amp;quot;)&lt;br /&gt;
			EndIf&lt;br /&gt;
			#cs&lt;br /&gt;
				Case $guiMsg = $btnADQ&lt;br /&gt;
				if GUICtrlRead($editComp) &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
				ShellExecute( &amp;quot;rundll32&amp;quot;, &amp;quot;dsquery,OpenQueryWindow&amp;quot; )&lt;br /&gt;
				WinWaitActive( &amp;quot;Find Users&amp;quot; )&lt;br /&gt;
				ControlCommand( &amp;quot;Find Users&amp;quot;, &amp;quot;&amp;quot;, 16897, &amp;quot;SelectString&amp;quot;, &amp;#039;Computers&amp;#039; )&lt;br /&gt;
				Sleep(2000)&lt;br /&gt;
				WinWait( &amp;quot;Find Computers&amp;quot; )&lt;br /&gt;
				ControlSetText( &amp;quot;Find Computers&amp;quot;, &amp;quot;&amp;quot;, 1224, GUICtrlRead($editComp) )&lt;br /&gt;
				ControlClick( &amp;quot;Find Computers&amp;quot;, &amp;quot;&amp;quot;, 16901 )&lt;br /&gt;
				EndIf&lt;br /&gt;
			#ce&lt;br /&gt;
&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	Sleep(10)&lt;br /&gt;
&lt;br /&gt;
WEnd ; &amp;lt;== main loop&lt;br /&gt;
&lt;br /&gt;
Func _go()&lt;br /&gt;
	$compName = GUICtrlRead($editComp)&lt;br /&gt;
&lt;br /&gt;
	; Populate the array with WMI info, if possible&lt;br /&gt;
	$info = _wmiInfo($compName)&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		; Ping failed&lt;br /&gt;
		Case @error = 7&lt;br /&gt;
			upStatus($info, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Computername contained illegal characters&lt;br /&gt;
		Case @error = 8&lt;br /&gt;
			upStatus(&amp;quot;Please enter a valid name.&amp;quot;, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Unable to get WMI info from computer after successful ping (this shouldn&amp;#039;t really happen ever)&lt;br /&gt;
		Case @error = 9&lt;br /&gt;
			upStatus(&amp;quot;Unable to retrieve computer info after &amp;quot; &amp;amp; Round(@extended / 1000, 1) &amp;amp; &amp;quot;s.&amp;quot;, 1)&lt;br /&gt;
			guiFlash($editComp, 0xFF0000, 200)&lt;br /&gt;
			Return 2&lt;br /&gt;
			; Everything OK? DISPLAY THE INFO THEN DAMN&lt;br /&gt;
		Case Not @error&lt;br /&gt;
			upStatus($compName &amp;amp; &amp;quot; queried in &amp;quot; &amp;amp; $info[5])&lt;br /&gt;
			If Not WinActive($frmInfo) Then&lt;br /&gt;
				WinFlash($frmInfo, &amp;quot;&amp;quot;, 4, 250)&lt;br /&gt;
			Else&lt;br /&gt;
				guiFlash($editComp, 0x00FF00, 200)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; general info&lt;br /&gt;
			GUICtrlSetData($editModel, $info[0])&lt;br /&gt;
			GUICtrlSetData($editSerial, $info[1] &amp;amp; &amp;quot; / &amp;quot; &amp;amp; $info[10])&lt;br /&gt;
			GUICtrlSetData($editBIOS, $info[2])&lt;br /&gt;
			GUICtrlSetData($editRAM, $info[3] &amp;amp; &amp;quot; GB&amp;quot;)&lt;br /&gt;
			; Set field BkColor to red if below 1 GB&lt;br /&gt;
			If $info[3] &amp;lt; 0.98 Then&lt;br /&gt;
				GUICtrlSetBkColor($editRAM, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editRAM, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editOS, $info[4])&lt;br /&gt;
			; Set field BkColor to red if not Windows XP&lt;br /&gt;
			If Not StringInStr($info[4], &amp;quot;XP&amp;quot;) Then&lt;br /&gt;
				GUICtrlSetBkColor($editOS, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editOS, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editMAC, $info[9])&lt;br /&gt;
			GUICtrlSetData($editDN, $info[8])&lt;br /&gt;
			GUICtrlSetData($editUser, $info[6]); &amp;amp; &amp;quot; (&amp;quot; &amp;amp; _ADDNToDisplayName($info[6]) &amp;amp; &amp;quot;)&amp;quot; )&lt;br /&gt;
			GUICtrlSetData($editDefaultUser, $info[7]); &amp;amp; &amp;quot; (&amp;quot; &amp;amp; _ADDNToDisplayName($info[7]) &amp;amp; &amp;quot;)&amp;quot; )&lt;br /&gt;
			GUICtrlSetData($editPing, $info[17])&lt;br /&gt;
			GUICtrlSetData($editIP, $info[11])&lt;br /&gt;
&lt;br /&gt;
			; wireless&lt;br /&gt;
			GUICtrlSetData($editSSID, $info[12])&lt;br /&gt;
			GUICtrlSetData($editSignal, $info[13])&lt;br /&gt;
			GUICtrlSetData($editNoise, $info[14])&lt;br /&gt;
			GUICtrlSetData($editChannel, $info[15])&lt;br /&gt;
			GUICtrlSetData($editBSSID, $info[18])&lt;br /&gt;
&lt;br /&gt;
			; misc&lt;br /&gt;
			GUICtrlSetData($editDmName, $info[19])&lt;br /&gt;
			GUICtrlSetData($editDmSerial, $info[20])&lt;br /&gt;
			GUICtrlSetData($editDmDesc, $info[21])&lt;br /&gt;
			GUICtrlSetData($editVerIE, $info[26])&lt;br /&gt;
			; Set field BkColor to red if below v7&lt;br /&gt;
			If StringLeft($info[26], 1) &amp;lt; 7 Then&lt;br /&gt;
				GUICtrlSetBkColor($editVerIE, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editVerIE, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editVerJava, $info[27])&lt;br /&gt;
			; Set field BkColor to red if below v1.4&lt;br /&gt;
			If $info[27] &amp;lt; 1.4 Or $info[27] = &amp;quot;&amp;quot; Then&lt;br /&gt;
				GUICtrlSetBkColor($editVerJava, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editVerJava, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
			GUICtrlSetData($editLD, $info[28])&lt;br /&gt;
			; Set field BkColor to red if below v1.4&lt;br /&gt;
			If $info[28] = &amp;quot;Not running.&amp;quot; Then&lt;br /&gt;
				GUICtrlSetBkColor($editLD, 0xEECCCC)&lt;br /&gt;
			Else&lt;br /&gt;
				GUICtrlSetBkColor($editLD, Default)&lt;br /&gt;
			EndIf&lt;br /&gt;
&lt;br /&gt;
			; printer&lt;br /&gt;
			GUICtrlSetData($editPrinter, $info[29])&lt;br /&gt;
&lt;br /&gt;
			GUICtrlSetTip($editUser, $info[24], $info[22], 1)&lt;br /&gt;
			GUICtrlSetTip($editDefaultUser, $info[25], $info[23], 1)&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	Return 1&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_go&lt;br /&gt;
&lt;br /&gt;
Exit&lt;br /&gt;
&lt;br /&gt;
Func _wmiInfo($compName)&lt;br /&gt;
&lt;br /&gt;
	; seterror if the computername string contains illegal characters&lt;br /&gt;
	If Not _computerNameLegal($compName) Then&lt;br /&gt;
		SetError(8)&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; init object variables&lt;br /&gt;
	Dim $objWMIService, $objAccount&lt;br /&gt;
	Dim $colBios, $colCSP, $colLMC, $colOS, $colNic, $colSysEnc, $colDM&lt;br /&gt;
	Dim $dmEDID, $dmPNPDID, $dmName&lt;br /&gt;
	Dim $arrCU&lt;br /&gt;
	Dim $ping = Ping($compName, 1000)&lt;br /&gt;
&lt;br /&gt;
	If @error Then&lt;br /&gt;
		Select&lt;br /&gt;
			Case @error = 1&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Computer is offline.&amp;quot;&lt;br /&gt;
			Case @error = 2&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Computer is unreachable.&amp;quot;&lt;br /&gt;
			Case @error = 3&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Bad destination, please check the name.&amp;quot;&lt;br /&gt;
			Case @error = 4&lt;br /&gt;
				SetError(7)&lt;br /&gt;
				Return &amp;quot;Problem contacting address.&amp;quot;&lt;br /&gt;
		EndSelect&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; init arrays we&amp;#039;ll return&lt;br /&gt;
	Dim $info[31], $mInfo, $infoW, $SID&lt;br /&gt;
&lt;br /&gt;
	; get IP for no good damn reason&lt;br /&gt;
	TCPStartup()&lt;br /&gt;
	$info[11] = TCPNameToIP($compName)&lt;br /&gt;
	TCPShutdown()&lt;br /&gt;
&lt;br /&gt;
	; start the response timer&lt;br /&gt;
	Dim $timer = TimerInit()&lt;br /&gt;
&lt;br /&gt;
	; get the WIM object&lt;br /&gt;
	$objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
	;$objRegistry = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after WMI connection: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; get defaultusername &amp;amp; software versions from the registry&lt;br /&gt;
	$info[7] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon&amp;quot;, &amp;quot;DefaultUserName&amp;quot;)&lt;br /&gt;
	$info[30] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon&amp;quot;, &amp;quot;DefaultDomainName&amp;quot;)&lt;br /&gt;
	$info[26] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\Microsoft\Internet Explorer&amp;quot;, &amp;quot;Version&amp;quot;)&lt;br /&gt;
	$info[27] = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SOFTWARE\JavaSoft\Java Runtime Environment&amp;quot;, &amp;quot;CurrentVersion&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after registry: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; check to see if the WMI object exists; if not, seterror and return&lt;br /&gt;
	; this check should now be deprecated due to the use of ping()&lt;br /&gt;
	If Not IsObj($objWMIService) Then&lt;br /&gt;
		SetError(9, TimerDiff($timer))&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$info[17] = Round($ping, -1) &amp;amp; &amp;quot;ms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; check if LD remote agent (issuser) is running&lt;br /&gt;
	$info[28] = _processExists(&amp;quot;issuser.exe&amp;quot;, $compName)&lt;br /&gt;
&lt;br /&gt;
	If Not $info[28] Then&lt;br /&gt;
		$info[28] = &amp;quot;Not running.&amp;quot;&lt;br /&gt;
	Else&lt;br /&gt;
		$info[28] = &amp;quot;Running (PID: &amp;quot; &amp;amp; $info[28] &amp;amp; &amp;quot;)&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; execquery on all the info groups we&amp;#039;ll need&lt;br /&gt;
	$colBios = $objWMIService.execquery(&amp;quot;Select * From Win32_BIOS&amp;quot;)&lt;br /&gt;
	$colSysEnc = $objWMIService.execquery(&amp;quot;Select * From Win32_SystemEnclosure&amp;quot;)&lt;br /&gt;
	$colCSP = $objWMIService.execquery(&amp;quot;Select * from Win32_ComputerSystem&amp;quot;)&lt;br /&gt;
	$colLMC = $objWMIService.execquery(&amp;quot;Select * from Win32_LogicalMemoryConfiguration&amp;quot;)&lt;br /&gt;
	$colOS = $objWMIService.execquery(&amp;quot;Select * from Win32_OperatingSystem&amp;quot;)&lt;br /&gt;
	$colNic = $objWMIService.execquery(&amp;quot;SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True&amp;quot;)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after queries: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	$info[8] = _extractOU(_getDN($compName))&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after DN: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	; get monitor info&lt;br /&gt;
	$mInfo = monitorInfo($compName)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after monitorInfo: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
	If IsArray($mInfo) Then&lt;br /&gt;
		$info[19] = $mInfo[0] ; model&lt;br /&gt;
		$info[20] = $mInfo[1] ; serial&lt;br /&gt;
		$info[21] = $mInfo[2] ; name&lt;br /&gt;
	Else&lt;br /&gt;
		$info[19] = &amp;quot;No valid EDID found.&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; grab computer model &amp;amp; current user&lt;br /&gt;
	For $objCSP In $colCSP&lt;br /&gt;
		$info[0] = StringStripWS($objCSP.Manufacturer, 2) &amp;amp; &amp;quot; &amp;quot; &amp;amp; $objCSP.Model&lt;br /&gt;
		$info[6] = $objCSP.UserName&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; get current user full name and description&lt;br /&gt;
	If $info[6] &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
		$arrCU = StringSplit($info[6], &amp;quot;\&amp;quot;, 2)&lt;br /&gt;
		$objAccount = $objWMIService.Get(&amp;#039;Win32_UserAccount.Name=&amp;quot;&amp;#039; &amp;amp; $arrCU[1] &amp;amp; &amp;#039;&amp;quot;,Domain=&amp;quot;&amp;#039; &amp;amp; $arrCU[0] &amp;amp; &amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
		If IsObj($objAccount) Then&lt;br /&gt;
			$info[22] = $objAccount.FullName&lt;br /&gt;
			$info[24] = $objAccount.Description&lt;br /&gt;
			$SID = $objAccount.SID&lt;br /&gt;
		EndIf&lt;br /&gt;
	EndIf&lt;br /&gt;
	;if $debug Then ConsoleWrite( $arrCU[1] &amp;amp; &amp;quot; SID: &amp;quot; &amp;amp; $SID &amp;amp; @CRLF )&lt;br /&gt;
&lt;br /&gt;
	; get default user full name and description&lt;br /&gt;
	$objAccount = $objWMIService.Get(&amp;quot;Win32_UserAccount.Name=&amp;#039;&amp;quot; &amp;amp; $info[7] &amp;amp; &amp;quot;&amp;#039;,Domain=&amp;#039;&amp;quot; &amp;amp; $info[30] &amp;amp; &amp;quot;&amp;#039;&amp;quot;)&lt;br /&gt;
	If IsObj($objAccount) Then&lt;br /&gt;
		$info[23] = $objAccount.FullName&lt;br /&gt;
		$info[25] = $objAccount.Description&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	; grab the serial and BIOS version&lt;br /&gt;
	For $objBios In $colBios&lt;br /&gt;
		$info[1] = $objBios.SerialNumber&lt;br /&gt;
		$info[2] = $objBios.SMBIOSBIOSVersion&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab the asset tag, if available (it will be on HP dc7900s and possibly others)&lt;br /&gt;
	For $objSysEnc In $colSysEnc&lt;br /&gt;
		$info[10] = $objSysEnc.SMBIOSAssetTag&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; set to N/A if it didn&amp;#039;t exist for returning purposes&lt;br /&gt;
	If StringIsSpace($info[10]) Then $info[10] = &amp;quot;Asset tag not set&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	; grab RAM, convert to GB (&amp;#039;cause who the fuck has less than 1GB nowadays)&lt;br /&gt;
	For $objLMC In $colLMC&lt;br /&gt;
		$info[3] = Round($objLMC.TotalPhysicalMemory / 1048576, 2)&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab OS&lt;br /&gt;
	For $objOS In $colOS&lt;br /&gt;
		$info[4] = $objOS.Caption &amp;amp; &amp;quot; &amp;quot; &amp;amp; $objOS.CSDVersion&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; grab MAC&lt;br /&gt;
	For $objNic In $colNic&lt;br /&gt;
		$info[9] = $objNic.MACAddress&lt;br /&gt;
		; check if static IP or not, indicating QS or otherwise special-purpose machine&lt;br /&gt;
		$info[16] = $objNic.DHCPEnabled&lt;br /&gt;
		If $debug Then ConsoleWrite(&amp;quot;DHCPEnabled: &amp;quot; &amp;amp; VarGetType($info[16]) &amp;amp; &amp;quot; | Length: &amp;quot; &amp;amp; StringLen($info[16]) &amp;amp; @LF)&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after objWMI grabbing: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; get wireless info if available&lt;br /&gt;
	$infoW = wirelessInfo($compName)&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Time after wireless stats: &amp;quot; &amp;amp; TimerDiff($timer) &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	; ssid&lt;br /&gt;
	$info[12] = $infoW[0]&lt;br /&gt;
	; signal&lt;br /&gt;
	$info[13] = $infoW[1]&lt;br /&gt;
	; noise&lt;br /&gt;
	$info[14] = $infoW[2]&lt;br /&gt;
	; channel&lt;br /&gt;
	$info[15] = $infoW[3]&lt;br /&gt;
	; BSSID&lt;br /&gt;
	$info[18] = $infoW[4]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	; Strip whitespace from end of model string, &amp;#039;cause there&amp;#039;s usually a lot&lt;br /&gt;
	$info[0] = StringStripWS($info[0], 2)&lt;br /&gt;
&lt;br /&gt;
	; get the TOTAL query time now&lt;br /&gt;
	$info[5] = Round(TimerDiff($timer), -1) &amp;amp; &amp;quot;ms&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	If $SID Then _&lt;br /&gt;
			$info[29] = defPrinterInfo($SID, $compName)&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_wmiInfo&lt;br /&gt;
&lt;br /&gt;
Func _currentUser($compName)&lt;br /&gt;
	Dim $objWMIService&lt;br /&gt;
	Dim $colCSP&lt;br /&gt;
	Dim $user&lt;br /&gt;
&lt;br /&gt;
	$objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	If Not IsObj($objWMIService) Then Return&lt;br /&gt;
&lt;br /&gt;
	$colCSP = $objWMIService.execquery(&amp;quot;Select * from Win32_ComputerSystem&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objCSP In $colCSP&lt;br /&gt;
		$user = $objCSP.UserName&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	Return $user&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_currentUser&lt;br /&gt;
&lt;br /&gt;
Func _getDN($compName)&lt;br /&gt;
	Dim $objTrans, $objDomain&lt;br /&gt;
	Const $ADS_NAME_TYPE_1779 = 1&lt;br /&gt;
	Const $ADS_NAME_INITTYPE_GC = 3&lt;br /&gt;
	Const $ADS_NAME_TYPE_NT4 = 3&lt;br /&gt;
&lt;br /&gt;
	$objTranslate = ObjCreate(&amp;quot;NameTranslate&amp;quot;)&lt;br /&gt;
	$objDomain = ObjGet(&amp;quot;LDAP://rootDse&amp;quot;)&lt;br /&gt;
	If @error Then&lt;br /&gt;
		Return &amp;quot;Could not contact domain controller.&amp;quot;&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	$objTranslate.Init($ADS_NAME_INITTYPE_GC, &amp;quot;&amp;quot;)&lt;br /&gt;
	$objTranslate.Set($ADS_NAME_TYPE_NT4, @LogonDomain &amp;amp; &amp;quot;\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;$&amp;quot;)&lt;br /&gt;
	$compDN = $objTranslate.Get($ADS_NAME_TYPE_1779)&lt;br /&gt;
	;Set DN to upper Case&lt;br /&gt;
	$compDN = StringUpper($compDN)&lt;br /&gt;
&lt;br /&gt;
	Return $compDN&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_getDN&lt;br /&gt;
&lt;br /&gt;
Func upStatus($msg, $flash = 0, $color = 0x88DDCC)&lt;br /&gt;
	_GUICtrlStatusBar_SetText($statusBar, _NowTime(5) &amp;amp; &amp;quot; &amp;gt;&amp;quot;, 0)&lt;br /&gt;
	_GUICtrlStatusBar_SetText($statusBar, $msg, 1)&lt;br /&gt;
&lt;br /&gt;
	If $flash Then&lt;br /&gt;
		;for $i=0 to 3&lt;br /&gt;
		;	_GUICtrlStatusBar_SetBkColor($statusBar, $color)&lt;br /&gt;
		;	Sleep(500)&lt;br /&gt;
		;	_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_DEFAULT)&lt;br /&gt;
		;	Sleep(500)&lt;br /&gt;
		;Next&lt;br /&gt;
	Else&lt;br /&gt;
		_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_MONEYGREEN)&lt;br /&gt;
		Sleep(250)&lt;br /&gt;
		_GUICtrlStatusBar_SetBkColor($statusBar, $CLR_DEFAULT)&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;upStatus&lt;br /&gt;
&lt;br /&gt;
Func _extractOU($DN)&lt;br /&gt;
	; We want to turn this&lt;br /&gt;
	; CN=compName,OU=Group3,OU=Group2,OU=Group1,DC=site,DC=com&lt;br /&gt;
	; into this&lt;br /&gt;
	; Group3&lt;br /&gt;
	;&lt;br /&gt;
	; HAHA THIS WAS SO EASY, THANKS StringSplit()&lt;br /&gt;
	If $DN = &amp;quot;Could not contact domain controller.&amp;quot; Then Return $DN&lt;br /&gt;
&lt;br /&gt;
	Dim $OU, $arrDN&lt;br /&gt;
	$arrDN = StringSplit($DN, &amp;quot;,&amp;quot;, 2)&lt;br /&gt;
	$OU = StringTrimLeft($arrDN[1], 3)&lt;br /&gt;
&lt;br /&gt;
	Return $OU&lt;br /&gt;
EndFunc   ;==&amp;gt;_extractOU&lt;br /&gt;
&lt;br /&gt;
Func _displayName($logon)&lt;br /&gt;
	$objDomain = ObjGet(&amp;quot;LDAP://rootDse&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	;$objDomain.&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;_displayName&lt;br /&gt;
&lt;br /&gt;
Func _computerNameLegal($compName)&lt;br /&gt;
	Dim $i&lt;br /&gt;
	Const $illegalChars = StringToASCIIArray(&amp;quot;`~!@#$ ^&amp;amp;*()=+[]{}\|;:&amp;#039;,&amp;lt;&amp;gt;/?&amp;quot;&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($illegalChars) - 1&lt;br /&gt;
		If StringInStr($compName, Chr($illegalChars[$i])) Then&lt;br /&gt;
			; return 0 if computer name contains bad characters&lt;br /&gt;
			Return 0&lt;br /&gt;
		EndIf&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; return 1 if computer name is OK, in keeping with 1=success/0=failure autoit function return codes&lt;br /&gt;
	Return 1&lt;br /&gt;
EndFunc   ;==&amp;gt;_computerNameLegal&lt;br /&gt;
&lt;br /&gt;
Func aboutDiag()&lt;br /&gt;
	GUISetState(@SW_DISABLE)&lt;br /&gt;
	MsgBox(64, &amp;quot;About&amp;quot;, &amp;quot;remoteWmiInfo &amp;quot; &amp;amp; $version &amp;amp; @CR &amp;amp; _&lt;br /&gt;
			&amp;quot;© Jon Dunham 2009&amp;quot; &amp;amp; @CR &amp;amp; _&lt;br /&gt;
			&amp;quot;dunham.jon@gmail.com&amp;quot; &amp;amp; @CR &amp;amp; @CR)&lt;br /&gt;
	GUISetState(@SW_ENABLE)&lt;br /&gt;
	WinActivate($frmInfo)&lt;br /&gt;
EndFunc   ;==&amp;gt;aboutDiag&lt;br /&gt;
&lt;br /&gt;
Func monitorInfo($compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	; Dell serial - 78 characters in (without MX0 or CN0 prefix)&lt;br /&gt;
	; HP serial - 114 characters in&lt;br /&gt;
	; both models - 96 (192 hex) characters in&lt;br /&gt;
	;&lt;br /&gt;
	; this function runs assuming the computer has already been contacted,&lt;br /&gt;
	;  otherwise it will hang for ~82 seconds trying to contact the WMI service&lt;br /&gt;
	;&lt;br /&gt;
	Dim $colDM, $PNPDID, $EDID, $Name&lt;br /&gt;
	Dim $objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\cimv2&amp;quot;)&lt;br /&gt;
	$colDM = $objWMIService.execquery(&amp;#039;SELECT * FROM Win32_DesktopMonitor WHERE PNPDeviceID IS NOT NULL&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	For $objDM In $colDM&lt;br /&gt;
		; this is the best scenario we want (powered on/connected).&lt;br /&gt;
		;  Generally all other DesktopMonitor.Availability = 8 (off-line)&lt;br /&gt;
		If $objDM.Availability = 3 Then &lt;br /&gt;
			$PNPDID = $objDM.PNPDeviceID&lt;br /&gt;
			$Name = $objDM.Name&lt;br /&gt;
			$EDID = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SYSTEM\CurrentControlSet\Enum\&amp;quot; &amp;amp; $PNPDID &amp;amp; &amp;quot;\Device Parameters&amp;quot;, &amp;quot;EDID&amp;quot;)&lt;br /&gt;
			If Not @error Then&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			;if there isn&amp;#039;t an EDID for this, continueloop and get it from the next monitor with a PNPDeviceID&lt;br /&gt;
			Else&lt;br /&gt;
				ContinueLoop &lt;br /&gt;
			EndIf&lt;br /&gt;
		; this may or may not indicate the currently connected display device.&lt;br /&gt;
		;  Display status reporting seems to be sketchy at best with WMI&lt;br /&gt;
		Else&lt;br /&gt;
			$PNPDID = $objDM.PNPDeviceID&lt;br /&gt;
			$Name = $objDM.Name&lt;br /&gt;
			$EDID = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKLM\SYSTEM\CurrentControlSet\Enum\&amp;quot; &amp;amp; $PNPDID &amp;amp; &amp;quot;\Device Parameters&amp;quot;, &amp;quot;EDID&amp;quot;)&lt;br /&gt;
			If Not @error Then&lt;br /&gt;
				ExitLoop&lt;br /&gt;
			Else&lt;br /&gt;
				ContinueLoop&lt;br /&gt;
			EndIf&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite($Name &amp;amp; &amp;quot;: &amp;quot; &amp;amp; $objDM.Availability &amp;amp; &amp;quot; \ &amp;quot; &amp;amp; $PNPDID &amp;amp; @LF &amp;amp; @LF &amp;amp; $EDID &amp;amp; @LF)&lt;br /&gt;
&lt;br /&gt;
	If Not IsBinary($EDID) Then&lt;br /&gt;
		SetError(1)&lt;br /&gt;
		Return @error&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $info[3], $serial, $model&lt;br /&gt;
&lt;br /&gt;
	$model = StringStripWS(StringMid(BinaryToString($EDID), 96, 12), 2)&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Model: &amp;quot; &amp;amp; $model &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	Select&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;HP&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;HP found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 114, 10)&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;DE&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;Dell found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 78, 12)&lt;br /&gt;
			$serial = &amp;quot;[ MX0 | CN0 ]&amp;quot; &amp;amp; StringLeft($serial, 5) &amp;amp; &amp;quot;XXXXX&amp;quot; &amp;amp; StringRight($serial, 7)&lt;br /&gt;
		Case StringLeft($model, 2) = &amp;quot;LG&amp;quot;&lt;br /&gt;
			If $debug Then ConsoleWrite(&amp;quot;LG found&amp;quot; &amp;amp; @CRLF)&lt;br /&gt;
			$serial = StringMid(BinaryToString($EDID), 114, 12) &amp;amp; &amp;quot; (may be the model)&amp;quot;&lt;br /&gt;
	EndSelect&lt;br /&gt;
&lt;br /&gt;
	If $debug Then ConsoleWrite(&amp;quot;Serial: &amp;quot; &amp;amp; $serial &amp;amp; @CRLF)&lt;br /&gt;
&lt;br /&gt;
	$info[0] = $model&lt;br /&gt;
	$info[1] = $serial&lt;br /&gt;
	$info[2] = $Name&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
EndFunc   ;==&amp;gt;monitorInfo&lt;br /&gt;
&lt;br /&gt;
Func _processExists($procName, $compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	$oWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\root\CIMV2&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	If Not IsObj($oWMIService) Then&lt;br /&gt;
		SetError(1)&lt;br /&gt;
		Return&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $handle, $colProc&lt;br /&gt;
&lt;br /&gt;
	$cProc = $oWMIService.ExecQuery(&amp;#039;SELECT * FROM Win32_Process WHERE Name = &amp;quot;&amp;#039; &amp;amp; $procName &amp;amp; &amp;#039;&amp;quot;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	For $oProc In $cProc&lt;br /&gt;
		$handle = $oProc.Handle&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	If $handle Then&lt;br /&gt;
		Return $handle&lt;br /&gt;
	Else&lt;br /&gt;
		Return 0&lt;br /&gt;
	EndIf&lt;br /&gt;
EndFunc   ;==&amp;gt;_processExists&lt;br /&gt;
&lt;br /&gt;
Func guiFlash(ByRef $control, $color, $duration = 200, $times = 2, $tween = 0.4)&lt;br /&gt;
	$sleep1 = ($duration / $times) * $tween&lt;br /&gt;
	$sleep2 = ($duration / $times) * (1 - $tween)&lt;br /&gt;
&lt;br /&gt;
	If $control &amp;lt;&amp;gt; &amp;quot;&amp;quot; Then&lt;br /&gt;
		If IsHWnd($control) Then&lt;br /&gt;
			For $i = 1 To $times&lt;br /&gt;
				GUISetBkColor($control, $color)&lt;br /&gt;
				Sleep($sleep1)&lt;br /&gt;
				GUISetBkColor($control, Default)&lt;br /&gt;
				Sleep($sleep2)&lt;br /&gt;
			Next&lt;br /&gt;
		Else&lt;br /&gt;
			For $i = 1 To $times&lt;br /&gt;
				GUICtrlSetBkColor($control, $color)&lt;br /&gt;
				Sleep($sleep1)&lt;br /&gt;
				GUICtrlSetBkColor($control, Default)&lt;br /&gt;
				Sleep($sleep2)&lt;br /&gt;
			Next&lt;br /&gt;
		EndIf&lt;br /&gt;
	Else&lt;br /&gt;
		Return 0&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Return 1&lt;br /&gt;
EndFunc   ;==&amp;gt;guiFlash&lt;br /&gt;
&lt;br /&gt;
Func defPrinterInfo($SID, $compName = &amp;quot;.&amp;quot;)&lt;br /&gt;
	$defPrintString = RegRead(&amp;quot;\\&amp;quot; &amp;amp; $compName &amp;amp; &amp;quot;\HKU\&amp;quot; &amp;amp; $SID &amp;amp; &amp;quot;\Software\Microsoft\Windows NT\CurrentVersion\Windows&amp;quot;, &amp;quot;Device&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	$info = StringSplit($defPrintString, &amp;quot;,&amp;quot;, 2)&lt;br /&gt;
	$defPrinter = $info[0]&lt;br /&gt;
&lt;br /&gt;
	Return $defPrinter&lt;br /&gt;
EndFunc   ;==&amp;gt;defPrinterInfo&lt;br /&gt;
&lt;br /&gt;
Func wirelessInfo($strComputer = &amp;quot;.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	Dim $objWMIService = ObjGet(&amp;quot;winmgmts:\\&amp;quot; &amp;amp; $strComputer &amp;amp; &amp;quot;\root\WMI&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	; Was the computer contactable?&lt;br /&gt;
	If Not IsObj($objWMIService) Then&lt;br /&gt;
		Return 2&lt;br /&gt;
	EndIf&lt;br /&gt;
&lt;br /&gt;
	Dim $SSID, $BSSID, $signal, $noise, $channel, $info[5]&lt;br /&gt;
	Dim $raw&lt;br /&gt;
	Const $channels[24] = [&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;, &amp;quot;5&amp;quot;, &amp;quot;6&amp;quot;, &amp;quot;7&amp;quot;, &amp;quot;8&amp;quot;, &amp;quot;9&amp;quot;, &amp;quot;10&amp;quot;, &amp;quot;11&amp;quot;, &amp;quot;40&amp;quot;, &amp;quot;36&amp;quot;, &amp;quot;44&amp;quot;, &amp;quot;48&amp;quot;, &amp;quot;52&amp;quot;, _&lt;br /&gt;
		&amp;quot;56&amp;quot;, &amp;quot;60&amp;quot;, &amp;quot;64&amp;quot;, &amp;quot;149&amp;quot;, &amp;quot;153&amp;quot;, &amp;quot;157&amp;quot;, &amp;quot;161&amp;quot;, &amp;quot;165&amp;quot;]&lt;br /&gt;
	Const $frequencies[24] = [&amp;quot;2412000&amp;quot;, &amp;quot;2417000&amp;quot;, &amp;quot;2422000&amp;quot;, &amp;quot;2427000&amp;quot;, &amp;quot;2432000&amp;quot;, &amp;quot;2437000&amp;quot;, &amp;quot;2442000&amp;quot;, &amp;quot;2447000&amp;quot;, _&lt;br /&gt;
	&amp;quot;2452000&amp;quot;, &amp;quot;2457000&amp;quot;, &amp;quot;2462000&amp;quot;, &amp;quot;5200000&amp;quot;, &amp;quot;5180000&amp;quot;, &amp;quot;5220000&amp;quot;, &amp;quot;5240000&amp;quot;, &amp;quot;5260000&amp;quot;, &amp;quot;5280000&amp;quot;, &amp;quot;5300000&amp;quot;, &amp;quot;5320000&amp;quot;, _&lt;br /&gt;
	&amp;quot;5745000&amp;quot;, &amp;quot;5765000&amp;quot;, &amp;quot;5785000&amp;quot;, &amp;quot;5805000&amp;quot;, &amp;quot;5825000&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
	; Signal&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_ReceivedSignalStrength where Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$signal = $objWifi.NDIS80211ReceivedSignalStrength &amp;amp; &amp;quot; dBm&amp;quot;&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Noise&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;SELECT * FROM Atheros5000_NoiseFloor where Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$noise = -$objWifi.Value &amp;amp; &amp;quot; dBm&amp;quot;&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; SSID&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_ServiceSetIdentifier&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$SSID = $objWifi.NDIS80211SSID&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($SSID) - 1&lt;br /&gt;
		If $SSID[$i] &amp;lt; 32 Or $SSID[$i] &amp;gt; 127 Then&lt;br /&gt;
			$SSID[$i] = &amp;quot;&amp;quot;&lt;br /&gt;
		Else&lt;br /&gt;
			$SSID[$i] = Chr($SSID[$i])&lt;br /&gt;
		EndIf&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	$SSID = _ArrayToString($SSID, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	; AP MAC&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_BaseServiceSetIdentifier WHERE Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$BSSID = $objWifi.NDIS80211MacAddress&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	For $i = 0 To UBound($BSSID) - 1&lt;br /&gt;
		$BSSID[$i] = Hex($BSSID[$i], 2)&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Channel&lt;br /&gt;
&lt;br /&gt;
	$colWifi = $objWMIService.ExecQuery(&amp;quot;Select * From MSNdis_80211_Configuration WHERE Active = True&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	For $objWifi In $colWifi&lt;br /&gt;
		$raw = $objWifi.Ndis80211Config.DSConfig&lt;br /&gt;
&lt;br /&gt;
		For $i = 0 To UBound($frequencies) - 1&lt;br /&gt;
			If $raw = $frequencies[$i] Then&lt;br /&gt;
				$channel = $channels[$i]&lt;br /&gt;
			EndIf&lt;br /&gt;
		Next&lt;br /&gt;
&lt;br /&gt;
	Next&lt;br /&gt;
&lt;br /&gt;
	; Formatting (use stringreplace($info[4], &amp;quot;:&amp;quot;, &amp;quot;&amp;quot;) to remove or replace colons in the AP MAC if desired)&lt;br /&gt;
&lt;br /&gt;
	$BSSID = _ArrayToString($BSSID, &amp;quot;:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	$info[0] = $SSID&lt;br /&gt;
	$info[1] = $signal&lt;br /&gt;
	$info[2] = $noise&lt;br /&gt;
	$info[3] = $channel&lt;br /&gt;
	$info[4] = $BSSID&lt;br /&gt;
&lt;br /&gt;
	Return $info&lt;br /&gt;
&lt;br /&gt;
EndFunc   ;==&amp;gt;wirelessInfo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>TMA-2</name></author>
	</entry>
</feed>