<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Information System &amp; Network Technology</title><description></description><managingEditor>noreply@blogger.com (FANG Sheng)</managingEditor><pubDate>Mon, 30 Mar 2026 07:58:47 +0100</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">38</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://system-network.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>An error has occurred in the script on this page</title><link>http://system-network.blogspot.com/2007/04/error-has-occurred-in-script-on-this.html</link><category>Batch</category><category>System Administration</category><category>VBScript</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Tue, 24 Apr 2007 18:31:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-6608374840661386244</guid><description>regsvr32 msscript.ocx&lt;br /&gt;regsvr32 dispex.dll&lt;br /&gt;regsvr32 vbscript.dll</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">11</thr:total></item><item><title>Problem https connexion</title><link>http://system-network.blogspot.com/2007/04/problem-https-connexion.html</link><category>Batch</category><category>IE</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 23 Apr 2007 08:08:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-5326319014319985921</guid><description>Regsvr32 Initpki.dll /s&lt;br /&gt;Regsvr32 Dssenh.dll /s&lt;br /&gt;Regsvr32 Gpkcsp.dll /s&lt;br /&gt;Regsvr32 Sccbase.dll /s&lt;br /&gt;Regsvr32 Slbcsp.dll /s&lt;br /&gt;Regsvr32 Mssip32.dll /s&lt;br /&gt;Regsvr32 Cryptdlg.dll /s&lt;br /&gt;Regsvr32 Softpub.dLL /s&lt;br /&gt;Regsvr32 Wintrust.dll /s&lt;br /&gt;Regsvr32 Rsaenh.dll /s</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Evolution</title><link>http://system-network.blogspot.com/2007/04/evolution.html</link><category>Linux</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 16 Apr 2007 21:57:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-4150875367672950929</guid><description>&lt;img src="http://farm1.static.flickr.com/9/13809894_5d4169ae08_o.png" width="400" height="300" border="0" oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()"/&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Powershell</title><link>http://system-network.blogspot.com/2007/04/powershell.html</link><category>PowerShell</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 16 Apr 2007 21:54:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-7902181845883749997</guid><description>&lt;img src="http://farm1.static.flickr.com/56/167080724_be2d14784e.jpg" width="500" height="500" border="0" oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()"/&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="http://farm1.static.flickr.com/56/167080724_be2d14784e_t.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>JavaScript Dropdown Menu</title><link>http://system-network.blogspot.com/2007/04/javascript-dropdown-menu.html</link><category>JavaScript</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Wed, 11 Apr 2007 10:18:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-9054704851425819106</guid><description>&lt;PRE&gt;// Copyright (C) 2005 Ilya S. Lyubinskiy. All rights reserved.&lt;br /&gt;// Technical support: http://www.php-development.ru/&lt;br /&gt;//&lt;br /&gt;// YOU MAY NOT&lt;br /&gt;// (1) Remove or modify this copyright notice.&lt;br /&gt;// (2) Distribute this code, any part or any modified version of it.&lt;br /&gt;//     Instead, you can link to the homepage of this code:&lt;br /&gt;//     http://www.php-development.ru/javascripts/dropdown.php.&lt;br /&gt;//&lt;br /&gt;// YOU MAY&lt;br /&gt;// (1) Use this code on your website.&lt;br /&gt;// (2) Use this code as a part of another product provided that&lt;br /&gt;//     its main use is not creating javascript menus.&lt;br /&gt;//&lt;br /&gt;// NO WARRANTY&lt;br /&gt;// This code is provided "as is" without warranty of any kind, either&lt;br /&gt;// expressed or implied, including, but not limited to, the implied warranties&lt;br /&gt;// of merchantability and fitness for a particular purpose. You expressly&lt;br /&gt;// acknowledge and agree that use of this code is at your own risk.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// ----- Popup Control ---------------------------------------------------------&lt;br /&gt;&lt;br /&gt;function at_display(x)&lt;br /&gt;{&lt;br /&gt;  var win = window.open();&lt;br /&gt;  for (var i in x) win.document.write(i+' = '+x[i]+'&lt;br&gt;');&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ----- Show Aux -----&lt;br /&gt;&lt;br /&gt;function at_show_aux(parent, child)&lt;br /&gt;{&lt;br /&gt;  var p = document.getElementById(parent);&lt;br /&gt;  var c = document.getElementById(child );&lt;br /&gt;&lt;br /&gt;  var top  = (c["at_position"] == "y") ? p.offsetHeight+2 : 0;&lt;br /&gt;  var left = (c["at_position"] == "x") ? p.offsetWidth +2 : 0;&lt;br /&gt;&lt;br /&gt;  for (; p; p = p.offsetParent)&lt;br /&gt;  {&lt;br /&gt;    top  += p.offsetTop;&lt;br /&gt;    left += p.offsetLeft;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  c.style.position   = "absolute";&lt;br /&gt;  c.style.top        = top +'px';&lt;br /&gt;  c.style.left       = left+'px';&lt;br /&gt;  c.style.visibility = "visible";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ----- Show -----&lt;br /&gt;&lt;br /&gt;function at_show()&lt;br /&gt;{&lt;br /&gt;  var p = document.getElementById(this["at_parent"]);&lt;br /&gt;  var c = document.getElementById(this["at_child" ]);&lt;br /&gt;&lt;br /&gt;  at_show_aux(p.id, c.id);&lt;br /&gt;&lt;br /&gt;  clearTimeout(c["at_timeout"]);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ----- Hide -----&lt;br /&gt;&lt;br /&gt;function at_hide()&lt;br /&gt;{&lt;br /&gt;  var c = document.getElementById(this["at_child"]);&lt;br /&gt;&lt;br /&gt;  c["at_timeout"] = setTimeout("document.getElementById('"+c.id+"').style.visibility = 'hidden'", 333);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ----- Click -----&lt;br /&gt;&lt;br /&gt;function at_click()&lt;br /&gt;{&lt;br /&gt;  var p = document.getElementById(this["at_parent"]);&lt;br /&gt;  var c = document.getElementById(this["at_child" ]);&lt;br /&gt;&lt;br /&gt;  if (c.style.visibility != "visible")&lt;br /&gt;       at_show_aux(p.id, c.id);&lt;br /&gt;  else c.style.visibility = "hidden";&lt;br /&gt;&lt;br /&gt;  return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// ----- Attach -----&lt;br /&gt;&lt;br /&gt;// PARAMETERS:&lt;br /&gt;// parent   - id of visible html element&lt;br /&gt;// child    - id of invisible html element that will be dropdowned&lt;br /&gt;// showtype - "click" = you should click the parent to show/hide the child&lt;br /&gt;//            "hover" = you should place the mouse over the parent to show&lt;br /&gt;//                      the child&lt;br /&gt;// position - "x" = the child is displayed to the right of the parent&lt;br /&gt;//            "y" = the child is displayed below the parent&lt;br /&gt;// cursor   - Omit to use default cursor or check any CSS manual for possible&lt;br /&gt;//            values of this field&lt;br /&gt;&lt;br /&gt;function at_attach(parent, child, showtype, position, cursor)&lt;br /&gt;{&lt;br /&gt;  var p = document.getElementById(parent);&lt;br /&gt;  var c = document.getElementById(child);&lt;br /&gt;&lt;br /&gt;  p["at_parent"]     = p.id;&lt;br /&gt;  c["at_parent"]     = p.id;&lt;br /&gt;  p["at_child"]      = c.id;&lt;br /&gt;  c["at_child"]      = c.id;&lt;br /&gt;  p["at_position"]   = position;&lt;br /&gt;  c["at_position"]   = position;&lt;br /&gt;&lt;br /&gt;  c.style.position   = "absolute";&lt;br /&gt;  c.style.visibility = "hidden";&lt;br /&gt;&lt;br /&gt;  if (cursor != undefined) p.style.cursor = cursor;&lt;br /&gt;&lt;br /&gt;  switch (showtype)&lt;br /&gt;  {&lt;br /&gt;    case "click":&lt;br /&gt;      p.onclick     = at_click;&lt;br /&gt;      p.onmouseout  = at_hide;&lt;br /&gt;      c.onmouseover = at_show;&lt;br /&gt;      c.onmouseout  = at_hide;&lt;br /&gt;      break;&lt;br /&gt;    case "hover":&lt;br /&gt;      p.onmouseover = at_show;&lt;br /&gt;      p.onmouseout  = at_hide;&lt;br /&gt;      c.onmouseover = at_show;&lt;br /&gt;      c.onmouseout  = at_hide;&lt;br /&gt;      break;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>10 Steps to Solving Any Problem</title><link>http://system-network.blogspot.com/2007/04/10-steps-to-solving-any-problem.html</link><category>Self Control</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Wed, 11 Apr 2007 09:55:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-4999021510504877825</guid><description>&lt;span style="font-family:lucida grande;"&gt;&lt;strong&gt;Ten Steps To Solving Any Problem&lt;/strong&gt;&lt;/span&gt; - by Brian Tracy and Colin Rose&lt;br /&gt;&lt;br /&gt;The more &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;organized&lt;/span&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;systematically&lt;/span&gt;&lt;/strong&gt; you deal with any problem, the more &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&lt;em&gt;positive and creative&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt; you will be in solving it. Here is a 10-step method you can use to think systematically. With this method, you develop your creativity to genius levels.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;1. Change your language from negative to positive.&lt;/span&gt;&lt;/strong&gt; Instead of using the word "problem," use the word "situation," or call it a challenge or an opportunity. If a sale falls through, you can say something like this is an interesting challenge. It's an opportunity for me to improve my sales effectiveness so this doesn't happen again in the future?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;2. Define your situation or difficulty clearly.&lt;/span&gt;&lt;/strong&gt; What exactly is the challenge you are facing? What is causing you the stress and anxiety? What is causing you to worry? Why are you unhappy? Write it out clearly in detail.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;3. Ask, what else is the problem??&lt;/span&gt;&lt;/strong&gt;Don't be satisfied with a superficial answer. Look for the root cause of the problem, rather than getting sidetracked by the symptom. Approach the problem from several different directions.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;4. Ask yourself, what are my minimum boundary conditions??&lt;/span&gt;&lt;/strong&gt;What must the solution accomplish? What ingredients must the solution contain? What would your ideal solution to this problem look like? Define your parameters clearly.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;5. Pick the best solution&lt;/span&gt;&lt;/strong&gt; by comparing your various possible solutions against your problem, on one hand, and your ideal solution, on the other. &lt;span style="color:#ff0000;"&gt;What is the best thing to do at this time under the circumstances?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;6. Before you implement your decision, ask, what's the worst possible thing that can happen if this decision doesn't work??&lt;/span&gt;&lt;/strong&gt;Before you make any expenditure of money or effort in trying to achieve your goal, you should evaluate what would happen if your decision were a complete failure.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;7. Set measures on your decision.&lt;/span&gt;&lt;/strong&gt; How will you know you are making progress? How will you measure success? How will you compare the success of this solution against the success of another solution? How will you define a success? Make it measurable, and then monitor it on a regular basis.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;8. Accept complete responsibility for implementing the decision.&lt;/span&gt;&lt;/strong&gt; Many of the most creative ideas never materialize because no one is specifically assigned the responsibility for carrying out the decision.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;9. Set a deadline.&lt;/span&gt;&lt;/strong&gt; A decision without a deadline is just a meaningless discussion. If it's a major decision and will take some time to implement, set a series of short-term deadlines and a schedule for reporting.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;10. Take action.&lt;/span&gt;&lt;/strong&gt; &lt;span style="color:#ff0000;"&gt;Get busy. Get going. Develop a sense of urgency.&lt;/span&gt; The faster you move in the direction of your clearly defined goals, the more creative you will be, the more energy you will have, the more you will learn and the faster you will develop your capacity to achieve even more in the future.&lt;br /&gt;&lt;br /&gt;The world is full of creative individuals who have wonderful ideas, but almost all of them fall down when it comes to implementation. And this is where you can excel. &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;The future belongs to the creative minority who can not only think but also take action and put their ideas into effect.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Now, here are three things you can do immediately to put these ideas into action. First, take your biggest problem or worry situation today, and ask yourself, &lt;strong&gt;&lt;em&gt;&lt;span style="color:#cc0000;"&gt;what exactly is the problem? What am I worrying about??&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt; Second, analyze your situation creatively and ask yourself, &lt;span style="color:#cc0000;"&gt;&lt;strong&gt;&lt;em&gt;what else is the problem??Sometimes the real problem is not what you thought.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt; Third, make a decision ?any decision. Assign responsibility or accept responsibility, and then take action on your ideas. &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;The busier you work to solve your problems, the smarter you will become.&lt;/strong&gt;&lt;/span&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Wake-On-LAN with PowerShell</title><link>http://system-network.blogspot.com/2007/04/wake-on-lan-with-powershell.html</link><category>PowerShell</category><category>System Administration</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Tue, 10 Apr 2007 21:48:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-581897865503742179</guid><description>&lt;pre&gt;$POWEROFFEXE = "E:\poweroff.exe"&lt;br /&gt;&lt;br /&gt;Import-Csv PCs.csv  Foreach-Object { $params = (" wol -ip " + $_.Ip + " -subnet 255.255.0.0 -mac " + $_.Mac);&lt;br /&gt;        [diagnostics.process]::start($POWEROFFEXE, $params)&lt;br /&gt;       } &lt;/pre&gt;&lt;b&gt;Reference:&lt;/b&gt;&lt;br /&gt;&lt;a href="http://micskeiz.spaces.live.com/Blog/cns!47844AC30517081E!153.entry"&gt;Wake-On-LAN Script&lt;/a&gt;&lt;br /&gt;Download &lt;a href="http://users.pandora.be/jbosman/pwroff30.zip"&gt;PowerOff&lt;/a&gt;&lt;br /&gt;&lt;img height="420" src="http://users.pandora.be/jbosman/poweroff.gif" width="362" border="0" /&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>HTML Color Code Chart</title><link>http://system-network.blogspot.com/2007/04/html-color-code-chart.html</link><category>HTML</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 9 Apr 2007 20:06:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-1984942312496513733</guid><description>&lt;table width="100%" align="center" border="0" cellpadding="2" cellspacing="2" bgcolor="#ffffff"&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#990033"&gt;#990033&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff3366"&gt;#FF3366&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc0033"&gt;#CC0033&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff0033"&gt;#FF0033&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff9999" class="textblack"&gt;#FF9999&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc3366"&gt;#CC3366&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffccff" class="textblack"&gt;#FFCCFF&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc6699"&gt;#CC6699&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#993366"&gt;#993366&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#660033"&gt;#660033&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc3399"&gt;#CC3399&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff99cc" class="textblack"&gt;#FF99CC&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#ff66cc"&gt;#FF66CC&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff99ff" class="textblack"&gt;#FF99FF&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff6699"&gt;#FF6699&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc0066"&gt;#CC0066&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff0066"&gt;#FF0066&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff3399"&gt;#FF3399&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff0099"&gt;#FF0099&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff33cc"&gt;#FF33CC&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff00cc"&gt;#FF00CC&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff66ff"&gt;#FF66FF&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff33ff"&gt;#FF33FF&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff00ff"&gt;#FF00FF&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#cc0099"&gt;#CC0099&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#990066"&gt;#990066&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc66cc"&gt;#CC66CC&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc33cc"&gt;#CC33CC&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc99ff" class="textblack"&gt;#CC99FF&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc66ff"&gt;#CC66FF&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc33ff"&gt;#CC33FF&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#993399"&gt;#993399&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc00cc"&gt;#CC00CC&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc00ff"&gt;#CC00FF&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9900cc"&gt;#9900CC&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#990099"&gt;#990099&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#cc99cc"&gt;#CC99CC&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#996699"&gt;#996699&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#663366"&gt;#663366&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#660099"&gt;#660099&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9933cc"&gt;#9933CC&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#660066"&gt;#660066&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9900ff"&gt;#9900FF&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9933ff"&gt;#9933FF&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9966cc"&gt;#9966CC&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#330033"&gt;#330033&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#663399"&gt;#663399&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6633cc"&gt;#6633CC&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#6600cc"&gt;#6600CC&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9966ff"&gt;#9966FF&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#330066"&gt;#330066&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6600ff"&gt;#6600FF&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6633ff"&gt;#6633FF&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccccff" class="textblack"&gt;#CCCCFF&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9999ff" class="textblack"&gt;#9999FF&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#9999cc" class="textblack"&gt;#9999CC&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6666cc"&gt;#6666CC&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6666ff"&gt;#6666FF&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#666699"&gt;#666699&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#333366"&gt;#333366&lt;br /&gt;R:051&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#333399"&gt;#333399&lt;br /&gt;R:051&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#330099"&gt;#330099&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3300cc"&gt;#3300CC&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3300ff"&gt;#3300FF&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3333ff"&gt;#3333FF&lt;br /&gt;R:051&lt;br /&gt;G051:&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3333cc"&gt;#3333CC&lt;br /&gt;R:051&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0066ff"&gt;#0066FF&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0033ff"&gt;#0033FF&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3366ff"&gt;#3366FF&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3366cc"&gt;#3366CC&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#000066"&gt;#000066&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#000033"&gt;#000033&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#0000ff"&gt;#0000FF&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#000099"&gt;#000099&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0033cc"&gt;#0033CC&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0000cc"&gt;#0000CC&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#336699"&gt;#336699&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0066cc"&gt;#0066CC&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ccff" class="textblack"&gt;#99CCFF&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6699ff" class="textblack"&gt;#6699FF&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#003366"&gt;#003366&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#6699cc"&gt;#6699CC&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#006699"&gt;#006699&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3399cc"&gt;#3399CC&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#0099cc"&gt;#0099CC&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ccff" class="textblack"&gt;#66CCFF&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#3399ff"&gt;#3399FF&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#003399"&gt;#003399&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#0099ff"&gt;#0099FF&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ccff" class="textblack"&gt;#33CCFF&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ccff" class="textblack"&gt;#00CCFF&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ffff" class="textblack"&gt;#99FFFF&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ffff" class="textblack"&gt;#66FFFF&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ffff" class="textblack"&gt;#33FFFF&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ffff" class="textblack"&gt;#00FFFF&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00cccc" class="textblack"&gt;#00CCCC&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#009999"&gt;#009999&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#669999"&gt;#669999&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99cccc" class="textblack"&gt;#99CCCC&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccffff" class="textblack"&gt;#CCFFFF&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33cccc" class="textblack"&gt;#33CCCC&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66cccc" class="textblack"&gt;#66CCCC&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#339999"&gt;#339999&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#336666"&gt;#336666&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#006666"&gt;#006666&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#003333"&gt;#003333&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ffcc" class="textblack"&gt;#00FFCC&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ffcc" class="textblack"&gt;#33FFCC&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#33cc99" class="textblack"&gt;#33CC99&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00cc99" class="textblack"&gt;#00CC99&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ffcc" class="textblack"&gt;#66FFCC&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ffcc" class="textblack"&gt;#99FFCC&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ff99" class="textblack"&gt;#00FF99&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#339966"&gt;#339966&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#006633"&gt;#006633&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#336633"&gt;#336633&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#669966"&gt;#669966&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66cc66" class="textblack"&gt;#66CC66&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ff99" class="textblack"&gt;#99FF99&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ff66" class="textblack"&gt;#66FF66&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#339933"&gt;#339933&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99cc99" class="textblack"&gt;#99CC99&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ff99" class="textblack"&gt;#66FF99&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ff99" class="textblack"&gt;#33FF99&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33cc66" class="textblack"&gt;#33CC66&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00cc66" class="textblack"&gt;#00CC66&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66cc99" class="textblack"&gt;#66CC99&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#009966"&gt;#009966&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#009933"&gt;#009933&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ff66" class="textblack"&gt;#33FF66&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ff66" class="textblack"&gt;#00FF66&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccffcc" class="textblack"&gt;#CCFFCC&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#ccff99" class="textblack"&gt;#CCFF99&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ff66" class="textblack"&gt;#99FF66&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ff33" class="textblack"&gt;#99FF33&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ff33" class="textblack"&gt;#00FF33&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ff33" class="textblack"&gt;#33FF33&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00cc33" class="textblack"&gt;#00CC33&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33cc33" class="textblack"&gt;#33CC33&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ff33" class="textblack"&gt;#66FF33&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00ff00" class="textblack"&gt;#00FF00&lt;br /&gt;R:000&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66cc33" class="textblack"&gt;#66CC33&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#006600"&gt;#006600&lt;br /&gt;R:000&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#003300"&gt;#003300&lt;br /&gt;R:000&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#009900"&gt;#009900&lt;br /&gt;R:000&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33ff00" class="textblack"&gt;#33FF00&lt;br /&gt;R:051&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66ff00" class="textblack"&gt;#66FF00&lt;br /&gt;R:102&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99ff00" class="textblack"&gt;#99FF00&lt;br /&gt;R:153&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#66cc00" class="textblack"&gt;#66CC00&lt;br /&gt;R:102&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#00cc00" class="textblack"&gt;#00CC00&lt;br /&gt;R:000&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#33cc00" class="textblack"&gt;#33CC00&lt;br /&gt;R:051&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#339900"&gt;#339900&lt;br /&gt;R:051&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99cc66" class="textblack"&gt;#99CC66&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#669933"&gt;#669933&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99cc33" class="textblack"&gt;#99CC33&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#336600"&gt;#336600&lt;br /&gt;R:051&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#669900"&gt;#669900&lt;br /&gt;R:102&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#99cc00" class="textblack"&gt;#99CC00&lt;br /&gt;R:153&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccff66" class="textblack"&gt;#CCFF66&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccff33" class="textblack"&gt;#CCFF33&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ccff00" class="textblack"&gt;#CCFF00&lt;br /&gt;R:204&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#999900" class="textblack"&gt;#999900&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cccc00" class="textblack"&gt;#CCCC00&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cccc33" class="textblack"&gt;#CCCC33&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#333300"&gt;#333300&lt;br /&gt;R:051&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#666600"&gt;#666600&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#999933" class="textblack"&gt;#999933&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cccc66" class="textblack"&gt;#CCCC66&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#666633"&gt;#666633&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#999966" class="textblack"&gt;#999966&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cccc99" class="textblack"&gt;#CCCC99&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffffcc" class="textblack"&gt;#FFFFCC&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffff99" class="textblack"&gt;#FFFF99&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffff66" class="textblack"&gt;#FFFF66&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffff33" class="textblack"&gt;#FFFF33&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffff00" class="textblack"&gt;#FFFF00&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffcc00" class="textblack"&gt;#FFCC00&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffcc66" class="textblack"&gt;#FFCC66&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffcc33" class="textblack"&gt;#FFCC33&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc9933" class="textblack"&gt;#CC9933&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#996600"&gt;#996600&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc9900" class="textblack"&gt;#CC9900&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff9900" class="textblack"&gt;#FF9900&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc6600"&gt;#CC6600&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#993300"&gt;#993300&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc6633" class="textblack"&gt;#CC6633&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#663300"&gt;#663300&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff9966" class="textblack"&gt;#FF9966&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff6633" class="textblack"&gt;#FF6633&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff9933" class="textblack"&gt;#FF9933&lt;br /&gt;R:255&lt;br /&gt;G:153&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff6600" class="textblack"&gt;#FF6600&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc3300"&gt;#CC3300&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#996633"&gt;#996633&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#330000"&gt;#330000&lt;br /&gt;R:051&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#663333"&gt;#663333&lt;br /&gt;R:102&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#996666"&gt;#996666&lt;br /&gt;R:153&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc9999"&gt;#CC9999&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#993333"&gt;#993333&lt;br /&gt;R:153&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc6666" class="textblack"&gt;#CC6666&lt;br /&gt;R:204&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffcccc" class="textblack"&gt;#FFCCCC&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff3333" class="textblack"&gt;#FF3333&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc3333"&gt;#CC3333&lt;br /&gt;R:204&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff6666" class="textblack"&gt;#FF6666&lt;br /&gt;R:255&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#660000"&gt;#660000&lt;br /&gt;R:102&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="center" valign="middle" bgcolor="#990000"&gt;#990000&lt;br /&gt;R:153&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc0000"&gt;#CC0000&lt;br /&gt;R:204&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff0000"&gt;#FF0000&lt;br /&gt;R:255&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ff3300"&gt;#FF3300&lt;br /&gt;R:255&lt;br /&gt;G:051&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cc9966" class="textblack"&gt;#CC9966&lt;br /&gt;R:204&lt;br /&gt;G:153&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffcc99" class="textblack"&gt;#FFCC99&lt;br /&gt;R:255&lt;br /&gt;G:204&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#ffffff" class="textblack"&gt;#FFFFFF&lt;br /&gt;R:255&lt;br /&gt;G:255&lt;br /&gt;B:255&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#cccccc" class="textblack"&gt;#CCCCCC&lt;br /&gt;R:204&lt;br /&gt;G:204&lt;br /&gt;B:204&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#999999" class="textblack"&gt;#999999&lt;br /&gt;R:153&lt;br /&gt;G:153&lt;br /&gt;B:153&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#666666"&gt;#666666&lt;br /&gt;R:102&lt;br /&gt;G:102&lt;br /&gt;B:102&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#333333"&gt;#333333&lt;br /&gt;R:051&lt;br /&gt;G:051&lt;br /&gt;B:051&lt;br /&gt;&lt;/td&gt;&lt;td align="center" valign="middle" bgcolor="#000000"&gt;#000000&lt;br /&gt;R:000&lt;br /&gt;G:000&lt;br /&gt;B:000&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>awk change a column to a row</title><link>http://system-network.blogspot.com/2007/04/awk-change-column-to-row.html</link><category>awk</category><category>Linux</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sat, 7 Apr 2007 21:49:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-5452450311536614109</guid><description>&lt;PRE&gt;awk '{printf("%s,",$1)}' filename &lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>pgrep vs ps</title><link>http://system-network.blogspot.com/2007/04/rootlocalhost-x-pgrep-d-u-root.html</link><category>Linux</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sat, 7 Apr 2007 21:38:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-3505194045459582032</guid><description>&lt;pre&gt;[root@localhost X]# pgrep -d, -u root&lt;br /&gt;1,2,3,4,5,18,28,29,31,19,30,105,181,190,1002,1475,1811,1815,1890,1958,2035,2066,2108,2123,2142,2161,2216,2326,2331,2342,2352,2401,2468,2534,2535,2536,2671,2820,2826,2958,2986,3019,3020,3025,3028,3030,3032,3038,3070,3074,3076,3078,3080,3082,3084,3086,3088,3097,3101,3143,3145,3147,3149,3151,3152,3153,6209,6213,6215,6217,6223,6225,6227,6232,6239,6449,6482,6483,6490,6491,6498,6499,6500,6501,6505,6506,6513,6536,6576,6583,6590,6595,6597,6600,6644&lt;/pre&gt;&lt;pre&gt;[root@localhost X]# ps -ef | egrep '^root ' | awk '{print $2}' | awk '{printf("%s,",$1)}'&lt;br /&gt;1,2,3,4,5,18,28,29,31,19,30,105,181,190,1002,1475,1811,1815,1890,1958,2035,2066,2108,2123,2142,2161,2216,2326,2331,2342,2352,2401,2468,2534,2535,2536,2671,2820,2826,2958,2986,3019,3020,3025,3028,3030,3032,3038,3070,3074,3076,3078,3080,3082,3084,3086,3088,3097,3101,3143,3145,3147,3149,3151,3152,3153,6209,6213,6215,6217,6223,6225,6227,6232,6239,6449,6482,6483,6490,6491,6498,6499,6500,6501,6505,6506,6513,6536,6576,6583,6590,6595,6597,6600,6644&lt;/pre&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Performs an LDAP Search Based on Given Criteria</title><link>http://system-network.blogspot.com/2007/04/performs-ldap-search-based-on-given.html</link><category>Active Directory</category><category>Scripting</category><category>System Administration</category><category>VBScript</category><category>Windows</category><category>WMI</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Thu, 5 Apr 2007 13:35:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-4238627564772967904</guid><description>&lt;PRE&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* File:        SEARCH.VBS&lt;br /&gt;'* Created:     August 1998&lt;br /&gt;'* Version:     1.0&lt;br /&gt;'*&lt;br /&gt;'* Main Function: Performs an LDAP search based on given criteria.&lt;br /&gt;'* Usage: SEARCH.VBS adspath [/C:criteria] [/S:scope] [/P:properties]&lt;br /&gt;'*        [/O:outputfile] [/U:username] [/W:password] [/Q]&lt;br /&gt;'*&lt;br /&gt;'* Copyright (C) 1998 Microsoft Corporation&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;OPTION EXPLICIT&lt;br /&gt;ON ERROR RESUME NEXT&lt;br /&gt;&lt;br /&gt;'Define constants&lt;br /&gt;CONST CONST_ERROR                   = 0&lt;br /&gt;CONST CONST_WSCRIPT                 = 1&lt;br /&gt;CONST CONST_CSCRIPT                 = 2&lt;br /&gt;CONST CONST_SHOW_USAGE              = 3&lt;br /&gt;CONST CONST_PROCEED                 = 4&lt;br /&gt;&lt;br /&gt;'Declare variables&lt;br /&gt;Dim strOutputFile, intOpMode, blnQuiet, i&lt;br /&gt;Dim strADsPath, strCriteria, strProperties,  strScope, strUserName, strPassword&lt;br /&gt;ReDim strArgumentArray(0)&lt;br /&gt;&lt;br /&gt;'Initialize variables&lt;br /&gt;strArgumentArray(0) = ""&lt;br /&gt;blnQuiet = False&lt;br /&gt;strADsPath = ""&lt;br /&gt;strCriteria = "ObjectCategory=*"&lt;br /&gt;strProperties = "ADsPath;"&lt;br /&gt;strScope = "OneLevel"&lt;br /&gt;strUserName = ""&lt;br /&gt;strPassword = ""&lt;br /&gt;strOutputFile = ""&lt;br /&gt;&lt;br /&gt;'Get the command line arguments&lt;br /&gt;For i = 0 to Wscript.arguments.count - 1&lt;br /&gt;    ReDim Preserve strArgumentArray(i)&lt;br /&gt;    strArgumentArray(i) = Wscript.arguments.Item(i)&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;'Check whether the script is run using CScript&lt;br /&gt;Select Case intChkProgram()&lt;br /&gt;    Case CONST_CSCRIPT&lt;br /&gt;        'Do Nothing&lt;br /&gt;    Case CONST_WSCRIPT&lt;br /&gt;        WScript.Echo "Please run this script using CScript." &amp; vbCRLF &amp; _&lt;br /&gt;            "This can be achieved by" &amp; vbCRLF &amp; _&lt;br /&gt;            "1. Using ""CScript SEARCH.vbs arguments"" for Windows 95/98 or" &amp; vbCRLF &amp; _&lt;br /&gt;            "2. Changing the default Windows Scripting Host setting to CScript" &amp; vbCRLF &amp; _&lt;br /&gt;            "    using ""CScript //H:CScript //S"" and running the script using" &amp; vbCRLF &amp; _&lt;br /&gt;            "    ""SEARCH.vbs arguments"" for Windows NT."&lt;br /&gt;        WScript.Quit&lt;br /&gt;    Case Else&lt;br /&gt;        WScript.Quit&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Parse the command line&lt;br /&gt;intOpMode = intParseCmdLine(strArgumentArray, strADsPath, strCriteria, strProperties, _&lt;br /&gt;            strScope, blnQuiet, strUserName, strPassword, strOutputFile)&lt;br /&gt;If Err.Number then&lt;br /&gt;    Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " occurred in parsing the command line."&lt;br /&gt;    If Err.Description &lt;&gt; "" Then&lt;br /&gt;        Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;    End If&lt;br /&gt;    WScript.Quit&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;Select Case intOpMode&lt;br /&gt;    Case CONST_SHOW_USAGE&lt;br /&gt;        Call ShowUsage()&lt;br /&gt;    Case CONST_PROCEED&lt;br /&gt;        Call Search(strADsPath, strCriteria, strProperties, _&lt;br /&gt;             strScope, strUserName, strPassword, strOutputFile)&lt;br /&gt;    Case CONST_ERROR&lt;br /&gt;        'Do nothing.&lt;br /&gt;    Case Else                    'Default -- should never happen&lt;br /&gt;        Print "Error occurred in passing parameters."&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Function intChkProgram()&lt;br /&gt;'* Purpose: Determines which program is used to run this script.&lt;br /&gt;'* Input:   None&lt;br /&gt;'* Output:  intChkProgram is set to one of CONST_ERROR, CONST_WSCRIPT,&lt;br /&gt;'*          and CONST_CSCRIPT.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Function intChkProgram()&lt;br /&gt;&lt;br /&gt;    ON ERROR RESUME NEXT&lt;br /&gt;&lt;br /&gt;    Dim strFullName, strCommand, i, j&lt;br /&gt;&lt;br /&gt;    'strFullName should be something like C:\WINDOWS\COMMAND\CSCRIPT.EXE&lt;br /&gt;    strFullName = WScript.FullName&lt;br /&gt;    If Err.Number then&lt;br /&gt;        Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " occurred."&lt;br /&gt;        If Err.Description &lt;&gt; "" Then&lt;br /&gt;            If Err.Description &lt;&gt; "" Then&lt;br /&gt;                Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;            End If&lt;br /&gt;        End If&lt;br /&gt;        intChkProgram =  CONST_ERROR&lt;br /&gt;        Exit Function&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    i = InStr(1, strFullName, ".exe", 1)&lt;br /&gt;    If i = 0 Then&lt;br /&gt;        intChkProgram =  CONST_ERROR&lt;br /&gt;        Exit Function&lt;br /&gt;    Else&lt;br /&gt;        j = InStrRev(strFullName, "\", i, 1)&lt;br /&gt;        If j = 0 Then&lt;br /&gt;            intChkProgram =  CONST_ERROR&lt;br /&gt;            Exit Function&lt;br /&gt;        Else&lt;br /&gt;            strCommand = Mid(strFullName, j+1, i-j-1)&lt;br /&gt;            Select Case LCase(strCommand)&lt;br /&gt;                Case "cscript"&lt;br /&gt;                    intChkProgram = CONST_CSCRIPT&lt;br /&gt;                Case "wscript"&lt;br /&gt;                    intChkProgram = CONST_WSCRIPT&lt;br /&gt;                Case Else       'should never happen&lt;br /&gt;                    Print "An unexpected program is used to run this script."&lt;br /&gt;                    Print "Only CScript.Exe or WScript.Exe can be used to run this script."&lt;br /&gt;                    intChkProgram = CONST_ERROR&lt;br /&gt;            End Select&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Function intParseCmdLine()&lt;br /&gt;'* Purpose: Parses the command line.&lt;br /&gt;'* Input:   strArgumentArray    an array containing input from the command line&lt;br /&gt;'* Output:  strADsPath          ADsPath of the root of the search&lt;br /&gt;'*          strCriteria         the search criteria&lt;br /&gt;'*          strProperties       properties to be retrieved&lt;br /&gt;'*          strScope            the search scope&lt;br /&gt;'*          strUserName         name of the current user&lt;br /&gt;'*          strPassword         password of the current user&lt;br /&gt;'*          strOutputFile       an output file name&lt;br /&gt;'*          blnQuiet            specifies whether to suppress messages&lt;br /&gt;'*          intParseCmdLine     is set to one of CONST_ERROR, CONST_SHOW_USAGE, CONST_PROCEED.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Function intParseCmdLine(strArgumentArray, strADsPath, strCriteria, _&lt;br /&gt;        strProperties, strScope, blnQuiet, strUserName, strPassword, strOutputFile)&lt;br /&gt;&lt;br /&gt;    ON ERROR RESUME NEXT&lt;br /&gt;&lt;br /&gt;    Dim strFlag, i&lt;br /&gt;&lt;br /&gt;    strFlag = strArgumentArray(0)&lt;br /&gt;&lt;br /&gt;    If strFlag = "" then                'No arguments have been received&lt;br /&gt;        Print "Arguments are required."&lt;br /&gt;        intParseCmdLine = CONST_ERROR&lt;br /&gt;        Exit Function&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    If (strFlag="help") OR (strFlag="/h") OR (strFlag="\h") OR (strFlag="-h") _&lt;br /&gt;        OR (strFlag = "\?") OR (strFlag = "/?") OR (strFlag = "?") OR (strFlag="h") Then&lt;br /&gt;        intParseCmdLine = CONST_SHOW_USAGE&lt;br /&gt;        Exit Function&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    strADsPath = FormatProvider(strFlag)    'The first parameter must be the ADsPath.&lt;br /&gt;&lt;br /&gt;    For i = 1 to UBound(strArgumentArray)&lt;br /&gt;        strFlag = LCase(Left(strArgumentArray(i), InStr(1, strArgumentArray(i), ":")-1))&lt;br /&gt;        If Err.Number Then            'An error occurs if there is no : in the string&lt;br /&gt;            Err.Clear&lt;br /&gt;            If LCase(strArgumentArray(i)) = "/q" Then&lt;br /&gt;                blnQuiet = True&lt;br /&gt;            Else&lt;br /&gt;                Print strArgumentArray(i) &amp; " is not recognized as a valid input."&lt;br /&gt;                intParseCmdLine = CONST_ERROR&lt;br /&gt;                Exit Function&lt;br /&gt;            End If&lt;br /&gt;        Else&lt;br /&gt;            Select Case strFlag&lt;br /&gt;                Case "/c"&lt;br /&gt;                    strCriteria = Right(strArgumentArray(i), Len(strArgumentArray(i))-3)&lt;br /&gt;                Case "/p"&lt;br /&gt;                    strProperties = Right(strArgumentArray(i), Len(strArgumentArray(i))-3) &amp; ";"&lt;br /&gt;                Case "/s"&lt;br /&gt;                    strScope = Right(strArgumentArray(i), Len(strArgumentArray(i))-3)&lt;br /&gt;                Case "/u"&lt;br /&gt;                    strUserName = Right(strArgumentArray(i), Len(strArgumentArray(i))-3)&lt;br /&gt;                Case "/w"&lt;br /&gt;                    strPassword = Right(strArgumentArray(i), Len(strArgumentArray(i))-3)&lt;br /&gt;                Case "/o"&lt;br /&gt;                    strOutputFile = Right(strArgumentArray(i), Len(strArgumentArray(i))-3)&lt;br /&gt;                Case else&lt;br /&gt;                    Print "Invalid flag " &amp; """" &amp; strFlag &amp; """" &amp; "."&lt;br /&gt;                    Print "Please check the input and try again."&lt;br /&gt;                    intParseCmdLine = CONST_ERROR&lt;br /&gt;                    Exit Function&lt;br /&gt;                End Select&lt;br /&gt;        End If&lt;br /&gt;    Next&lt;br /&gt;&lt;br /&gt;    intParseCmdLine = CONST_PROCEED&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Sub ShowUsage()&lt;br /&gt;'* Purpose: Shows the correct usage to the user.&lt;br /&gt;'* Input:   None&lt;br /&gt;'* Output:  Help messages are displayed on screen.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Sub ShowUsage()&lt;br /&gt;&lt;br /&gt;    Wscript.Echo ""&lt;br /&gt;    Wscript.Echo "Performs an LDAP search based on a given criteria." &amp; vbCRLF&lt;br /&gt;    Wscript.Echo "SEARCH.VBS adspath [/C:criteria] [/S:scope] [/P:properties]"&lt;br /&gt;    Wscript.Echo "[/O:outputfile] [/U:username] [/W:password] [/Q]"&lt;br /&gt;    Wscript.echo "   /C, /S, /P, /O, /U, /W"&lt;br /&gt;    Wscript.Echo "                 Parameter specifiers."&lt;br /&gt;    Wscript.echo "   adspath       ADsPath of a user object container."&lt;br /&gt;    Wscript.echo "   criteria      Criteria of the search."&lt;br /&gt;    Wscript.echo "   scope         Sope of the search."&lt;br /&gt;    Wscript.echo "   properties    Properties to be retrieved."&lt;br /&gt;    Wscript.Echo "   outputfile    The output file name."&lt;br /&gt;    Wscript.echo "   username      Username of the current user."&lt;br /&gt;    Wscript.echo "   password      Password of the current user."&lt;br /&gt;    Wscript.echo "   /Q            Suppresses all output messages." &amp; vbCRLF&lt;br /&gt;    Wscript.Echo "DEFAULT VALUES:"&lt;br /&gt;    Wscript.Echo "   If /C is not specified the default is ObjectCategory=*."&lt;br /&gt;    Wscript.Echo "   If /S is not specified the default is OneLevel."&lt;br /&gt;    Wscript.Echo "   If /P is not specified the default is ADsPath." &amp; vbCRLF&lt;br /&gt;    Wscript.Echo "EXAMPLE:"&lt;br /&gt;    Wscript.Echo "SEARCH.VBS ""LDAP://DC=FooFoo,DC=Foo,DC=Com"""&lt;br /&gt;    Wscript.Echo "   /C:""&amp;(ObjectCategory=user)(cn=b*)"" /P:Name /S:SubTree"&lt;br /&gt;    Wscript.Echo "   lists names of all users in domain FooFoo with"&lt;br /&gt;    Wscript.Echo "   cn starting with ""b""." &amp; vbCRLF&lt;br /&gt;    Wscript.Echo "NOTE:"&lt;br /&gt;    Wscript.Echo "   This script requires an LDAP provider."&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Sub Search()&lt;br /&gt;'* Purpose: Performs an LDAP search based on a given criteria.&lt;br /&gt;'* Input:   strADsPath      ADsPath of the root of the search&lt;br /&gt;'*          strCriteria     the search criteria&lt;br /&gt;'*          strProperties   properties to be retrieved&lt;br /&gt;'*          strScope        the search scope&lt;br /&gt;'*          strUserName     name of the current user&lt;br /&gt;'*          strPassword     password of the current user&lt;br /&gt;'*          strOutputFile   an output file name&lt;br /&gt;'* Output:  Results of the search are either printed on screen or saved in strOutputFile.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Sub Search(strADsPath, strCriteria, strProperties, _&lt;br /&gt;    strScope, strUserName, strPassword, strOutputFile)&lt;br /&gt;&lt;br /&gt;    ON ERROR RESUME NEXT&lt;br /&gt;&lt;br /&gt;    Dim strProvider, strSearchPath, objConnect, objCommand&lt;br /&gt;    Dim  objFileSystem, objOutputFile, objRecordSet, intResult&lt;br /&gt;&lt;br /&gt;    'Make sure that the provide is LDAP&lt;br /&gt;    strProvider = Left(strADsPath, InStr(1, strADsPath, ":"))&lt;br /&gt;    If strProvider &lt;&gt; "LDAP:" then&lt;br /&gt;        Print "The provider is not LDAP:."&lt;br /&gt;        Wscript.Quit&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    If strOutputFile = "" Then&lt;br /&gt;        objOutputFile = ""&lt;br /&gt;    Else&lt;br /&gt;        'Create a filesystem object&lt;br /&gt;        set objFileSystem = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;        If Err.Number then&lt;br /&gt;            Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " opening a filesystem object."&lt;br /&gt;            If Err.Description &lt;&gt; "" Then&lt;br /&gt;                Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;            End If&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;        'Open the file for output&lt;br /&gt;        set objOutputFile = objFileSystem.OpenTextFile(strOutputFile, 8, True)&lt;br /&gt;        If Err.Number then&lt;br /&gt;            Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " opening file " &amp; strOutputFile&lt;br /&gt;            If Err.Description &lt;&gt; "" Then&lt;br /&gt;                Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;            End If&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    strSearchPath =  "&lt;" &amp; strADsPath &amp; "&gt;;"&lt;br /&gt;    strCriteria = "(" &amp; strCriteria &amp; ");"&lt;br /&gt;&lt;br /&gt;    Set objConnect = CreateObject("ADODB.Connection")&lt;br /&gt;    If Err.Number then&lt;br /&gt;        Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " ocurred in opening a connection."&lt;br /&gt;        If Err.Description &lt;&gt; "" Then&lt;br /&gt;            Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;        End If&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    Set objCommand = CreateObject("ADODB.Command")&lt;br /&gt;    If Err.Number then&lt;br /&gt;        Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " ocurred in creating the command object."&lt;br /&gt;        If Err.Description &lt;&gt; "" Then&lt;br /&gt;            Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;        End If&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    objConnect.Provider = "ADsDSOObject"&lt;br /&gt;    If strUserName = "" then&lt;br /&gt;        objConnect.Open "Active Directory Provider"&lt;br /&gt;    Else&lt;br /&gt;        objConnect.Open "Active Directory Provider", strUserName, strPassword&lt;br /&gt;    End If&lt;br /&gt;    If Err.Number then&lt;br /&gt;        Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " ocurred opening a provider."&lt;br /&gt;        If Err.Description &lt;&gt; "" Then&lt;br /&gt;            Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;        End If&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    Set objCommand.ActiveConnection = objConnect&lt;br /&gt;&lt;br /&gt;    'Set the query string and other properties&lt;br /&gt;    objCommand.CommandText  = strSearchPath &amp; strCriteria &amp; strProperties &amp; strScope&lt;br /&gt;    objCommand.Properties("Page Size") = 100000                    'reset search properties&lt;br /&gt;    objCommand.Properties("Timeout") = 300000 'seconds&lt;br /&gt;'    objCommand.Properties("SearchScope") = 2&lt;br /&gt;&lt;br /&gt;    'After setting all the parameter now execute the search and display the results.&lt;br /&gt;    intResult = intExecuteSearch(objRecordSet, objCommand, objOutputFile)&lt;br /&gt;&lt;br /&gt;    If strOutputFile &lt;&gt; "" Then&lt;br /&gt;        objOutputFile.Close&lt;br /&gt;        If intResult &gt; 0 Then&lt;br /&gt;            Wscript.Echo "Results are saved in file " &amp; strOutputFile &amp; "."&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Function intExecuteSearch()&lt;br /&gt;'* Purpose: Performs an LDAP search based on given criteria&lt;br /&gt;'* Input:   objRecordSet    a recordset to store the info returned&lt;br /&gt;'*          objCommand      the query command object&lt;br /&gt;'*          objOutputFile   an output file object&lt;br /&gt;'* Output:  Results of the search are either printed on screen or saved in objOutputFile.&lt;br /&gt;'*          intExecuteSearch is set to -1 if the search failed or the number of objects&lt;br /&gt;'*          found if succeeded.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Function intExecuteSearch(objRecordSet, objCommand, objOutputFile)&lt;br /&gt;&lt;br /&gt;    ON ERROR RESUME NEXT&lt;br /&gt;&lt;br /&gt;    Dim  intNumObjects, i, j , k, intUBound, strMessage&lt;br /&gt;&lt;br /&gt;    intNumObjects = 0&lt;br /&gt;    intUBound = 0&lt;br /&gt;    intExecuteSearch = 0&lt;br /&gt;&lt;br /&gt;    'Let the user know what is going on&lt;br /&gt;    Print objCommand.CommandText&lt;br /&gt;&lt;br /&gt;    'Execute the query&lt;br /&gt;    Set objRecordSet = objCommand.Execute&lt;br /&gt;    Print "Finished the query."&lt;br /&gt;    If Err.Number then&lt;br /&gt;        Print "Error 0x" &amp; CStr(Hex(Err.Number)) &amp; " ocurred during the query."&lt;br /&gt;        If Err.Description &lt;&gt; "" Then&lt;br /&gt;            Print "Error description: " &amp; Err.Description &amp; "."&lt;br /&gt;        End If&lt;br /&gt;        Err.Clear&lt;br /&gt;        intExecuteSearch = -1        'failed&lt;br /&gt;        Exit Function&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    'Get the total number of objects found.&lt;br /&gt;    objRecordSet.MoveLast&lt;br /&gt;    intNumObjects = objRecordSet.RecordCount&lt;br /&gt;    intExecuteSearch = intNumObjects    'Succeeded&lt;br /&gt;&lt;br /&gt;    If intNumObjects Then                'If intNumObjects is not zero&lt;br /&gt;        Wscript.Echo "Found " &amp; intNumObjects &amp; " objects."&lt;br /&gt;        objRecordSet.MoveFirst&lt;br /&gt;        k = 1&lt;br /&gt;        While Not objRecordSet.EOF&lt;br /&gt;            For i = 0 To objRecordSet.Fields.Count - 1&lt;br /&gt;                intUBound = UBound(objRecordSet.Fields(i).Value)&lt;br /&gt;&lt;br /&gt;                If Err.Number Then&lt;br /&gt;                    'This means that it is a single valued property.&lt;br /&gt;                    Err.Clear&lt;br /&gt;                    strMessage = objRecordSet.Fields(i).Name &amp; " " &amp; k &amp; " = " _&lt;br /&gt;                        &amp; objRecordSet.Fields(i).Value&lt;br /&gt;                Else                            'It is a multivalued property.&lt;br /&gt;                    If intUBound = 0 Then        'There is only one implemented&lt;br /&gt;                        strMessage = objRecordSet.Fields(i).Name &amp; " " &amp; k &amp; " = " _&lt;br /&gt;                            &amp; objRecordSet.Fields(i).Value(0)&lt;br /&gt;                    Else                        'It is truely multivalued.&lt;br /&gt;                        strMessage = objRecordSet.Fields(i).Name &amp; " " &amp; k&lt;br /&gt;                        For j = 0 to intUBound&lt;br /&gt;                            strMessage = strMessage &amp; vbCRLF &amp; "     " &amp; j+1 &amp; " " _&lt;br /&gt;                                &amp; objRecordSet.Fields(i).Value(j)&lt;br /&gt;                        Next&lt;br /&gt;                    End If&lt;br /&gt;                End If&lt;br /&gt;                WriteLine strMessage, objOutputFile&lt;br /&gt;            Next&lt;br /&gt;            objRecordSet.MoveNext&lt;br /&gt;            k = k + 1&lt;br /&gt;        Wend&lt;br /&gt;    Else&lt;br /&gt;        Wscript.Echo "No object satisfying the criteria has been found within " _&lt;br /&gt;            &amp; strADsPath &amp; "."&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Sub WriteLine()&lt;br /&gt;'* Purpose: Writes a text line either to a file or on screen.&lt;br /&gt;'* Input:   strMessage  the string to print&lt;br /&gt;'*          objFile     an output file object&lt;br /&gt;'* Output:  strMessage is either displayed on screen or written to a file.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Sub WriteLine(ByRef strMessage, ByRef objFile)&lt;br /&gt;&lt;br /&gt;    If IsObject(objFile) then        'objFile should be a file object&lt;br /&gt;        objFile.WriteLine strMessage&lt;br /&gt;    Else&lt;br /&gt;        Wscript.Echo  strMessage&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Sub Print()&lt;br /&gt;'* Purpose: Prints a message on screen if blnQuiet = False.&lt;br /&gt;'* Input:   strMessage      the string to print&lt;br /&gt;'* Output:  strMessage is printed on screen if blnQuiet = False.&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Sub Print(ByRef strMessage)&lt;br /&gt;    If Not blnQuiet then&lt;br /&gt;        Wscript.Echo  strMessage&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Function FormatProvider&lt;br /&gt;'* Purpose: Formats Provider so it is not case sensitive&lt;br /&gt;'* Input:   Provider    a string&lt;br /&gt;'* Output:  FormatProvider is the Provider with the correct Case&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;Private Function FormatProvider(Provider)&lt;br /&gt;    FormatProvider = ""&lt;br /&gt;    I = 1&lt;br /&gt;    Do Until Mid(Provider, I, 1) = ":"&lt;br /&gt;        If I = Len(Provider) Then&lt;br /&gt;            'This Provider is Probabaly not valid, but we'll let it pass anyways.&lt;br /&gt;            FormatProvider = Provider&lt;br /&gt;            Exit Function&lt;br /&gt;        End If&lt;br /&gt;        I = I + 1&lt;br /&gt;    Loop&lt;br /&gt;&lt;br /&gt;    Select Case LCase(Left(Provider, I - 1))&lt;br /&gt;        Case "winnt"&lt;br /&gt;            FormatProvider = "WinNT" &amp; Right(Provider,Len(Provider) - (I - 1))&lt;br /&gt;        Case "ldap"&lt;br /&gt;            FormatProvider = "LDAP" &amp; Right(Provider,Len(Provider) - (I - 1))   &lt;br /&gt;    End Select&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*                                                                  *&lt;br /&gt;'*                           End of File                            *&lt;br /&gt;'*                                                                  *&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;br /&gt;'*&lt;br /&gt;'* Procedures calling sequence: SEARCH.VBS&lt;br /&gt;'*&lt;br /&gt;'*    intParseCmdLine&lt;br /&gt;'*    ShowUsage&lt;br /&gt;'*    Search&lt;br /&gt;'*        intExecuteSearch&lt;br /&gt;'*            WriteLine&lt;br /&gt;'*&lt;br /&gt;'********************************************************************&lt;br /&gt;&lt;br /&gt;'********************************************************************&lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>DACL : Set Filesystem and Registry ACL</title><link>http://system-network.blogspot.com/2007/04/dacl-set-filesystem-and-registry-acl.html</link><category>Scripting</category><category>System Administration</category><category>VBScript</category><category>Windows</category><category>WMI</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Thu, 5 Apr 2007 13:34:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-8459690739143683476</guid><description>&lt;PRE&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;' Set Filesystem and Registry ACL&lt;br /&gt;' ===============================&lt;br /&gt;'&lt;br /&gt;' Author: Tobias Oetiker &lt;oetiker@ee.ethz.ch&gt; &lt;br /&gt;'         based on code by Nick Pearce, Craig Paterson and Rich Ellis&lt;br /&gt;'&lt;br /&gt;' Version: 1.2 -- 2001/05/08&lt;br /&gt;'&lt;br /&gt;' Changes: 1.1 Handle non-existing registry keys gracefully.&lt;br /&gt;' Changes: 1.2 Added "K" option for simulating 1777 permission&lt;br /&gt;'&lt;br /&gt;' The purpose of this script is to allow ACL maniputlations&lt;br /&gt;' to be performed by Microsoft Installer Packages (.msi)&lt;br /&gt;'&lt;br /&gt;' Add your ACL modification instructions to this script&lt;br /&gt;' and integrate it as a Custom Action into the MSI.&lt;br /&gt;'&lt;br /&gt;' SETUP&lt;br /&gt;' =====&lt;br /&gt;'&lt;br /&gt;' Note aclfix needs ADsSecurity.dll and RegObj.dll to work. &lt;br /&gt;' You can get ADsSecurity from ADSI SDK 2.5 under (/ResourceKit/ADsSecurity.dll)&lt;br /&gt;'&lt;br /&gt;' Get the sdk from&lt;br /&gt;' http://msdownload.microsoft.com:80/msdownload/adsi/2.5/sdk/x86/en/Sdk.zip&lt;br /&gt;' copy the dll to a place in your path and run &lt;br /&gt;'&lt;br /&gt;' RegObj.dll is included in Office 2000 SR2 or also available directly from&lt;br /&gt;' MS for registered VB users.&lt;br /&gt;'&lt;br /&gt;' regsvr32 regobj.dll&lt;br /&gt;' regsvr32 adssecurity.dll &lt;br /&gt;'&lt;br /&gt;' Usage with WISE for Windows Installer&lt;br /&gt;' =====================================&lt;br /&gt;' * add a copy of the two dlls to the package and install them somewhere&lt;br /&gt;'   below the INSTALLDIR of the package. Make sure you click Self register in&lt;br /&gt;'   the file property dialog&lt;br /&gt;'&lt;br /&gt;' * customize the dacl.vbs according to the needs of the application and add it&lt;br /&gt;'   to the msi somewhere below INSTALLDIR. Maybe next to the dlls&lt;br /&gt;' &lt;br /&gt;' * Add a custom action: Type:    Call Exe File&lt;br /&gt;'                        Source:  File on destination machine&lt;br /&gt;'                        Name:    DACL&lt;br /&gt;'                        InstDir: SystemFolder&lt;br /&gt;'                        Exe Cmd: wscript.exe "[!dacl.vbs]"  &lt;br /&gt;'                        Sequenc: Install Execute Sequence (Before InstallFinalize)'                        &lt;br /&gt;'    Condition: NOT REMOVE~="ALL"&lt;br /&gt;'                        I-S Opt: System Context&lt;br /&gt;'                        Process: Asynch, Wait at end of sequence&lt;br /&gt;'&lt;br /&gt;' TODO&lt;br /&gt;' ====&lt;br /&gt;' Using Add with the Registry creates working results, but somehow the ACEs are&lt;br /&gt;' not in the proper order, and regedt32 complains when you look at them ...&lt;br /&gt;' it also seems that maybe I am not adding all the reg entries necessary ...&lt;br /&gt;' lack of docu ... sorry ... help appreciated. I guess it has something todo&lt;br /&gt;' with inheritance ... &lt;br /&gt;'&lt;br /&gt;' USAGE&lt;br /&gt;' -----&lt;br /&gt;'&lt;br /&gt;' DACL function, url, "ace, ace, ..."&lt;br /&gt;'&lt;br /&gt;' function -- Add, Rm, Set&lt;br /&gt;'&lt;br /&gt;' url -- FILE://....       change this File/Folder&lt;br /&gt;'        FILE://c:\home\   change this Folder and everything below&lt;br /&gt;'        FILE://c:\home\\  change this Folder and Folders below&lt;br /&gt;'        RGY://\HKEY_LOCAL_MACHINE\SOFTWARE    change this property&lt;br /&gt;'        RGY://...\  and RGY://\...\\ are the same as indiviual&lt;br /&gt;'                    registry values have no acls assigned&lt;br /&gt;'&lt;br /&gt;' ace -- account:rights&lt;br /&gt;'&lt;br /&gt;' account -- user or group&lt;br /&gt;'&lt;br /&gt;' rights (file) --  F - Full, C - Change, R - Read + Execute, &lt;br /&gt;'                   S - Read + Write + Execute, L - List&lt;br /&gt;'                   K - Special Case, like 1777. Create file and work with your own only&lt;br /&gt;' rights (registry) --  F - Full, R - Read&lt;br /&gt;'&lt;br /&gt;' EXAMPLES&lt;br /&gt;' --------&lt;br /&gt;' DACL "Add", "FILE://w:\hello.txt", "users:F,moetiker:F"&lt;br /&gt;' DACL "Add", "FILE://w:\hello\",    "users:R,oetiker:F,moetiker:F"&lt;br /&gt;' DACL "Rm",  "FILE://w:\oops.txt",  "user"   'remove whatever is there under user&lt;br /&gt;' DACL "Add",  "FILE://w:\oops.txt",  "user:F" ' add Full control for user&lt;br /&gt;' DACL "Add", "RGY://\HKEY_CURRENT_USER\SOFTWARE\ipswitch\ws_ftp\", "users:F"&lt;br /&gt;'=============================================================================&lt;br /&gt;DumpAcl "FILE://C:"&lt;br /&gt;DACL "Rm", "FILE://C:", "users,CREATOR OWNER"&lt;br /&gt;DACL "Add", "FILE://C:", "users:R"&lt;br /&gt;DACL "Add", "FILE://C:", "users:K"&lt;br /&gt;DumpAcl "FILE://C:"&lt;br /&gt;'=============================================================================&lt;br /&gt;' Implementation&lt;br /&gt;' --------------&lt;br /&gt;Sub DumpAcl (url)&lt;br /&gt;    Dim sd, dacl, ace, sec&lt;br /&gt;    Print url&lt;br /&gt;    Set sec = Wscript.CreateObject("ADsSecurity")&lt;br /&gt;    Set sd = sec.GetSecurityDescriptor( CStr(url) )&lt;br /&gt;    Set dacl = sd.DiscretionaryAcl&lt;br /&gt;    For Each ace In dacl&lt;br /&gt;        Print "   " &amp; ace.trustee &amp; _&lt;br /&gt;              " Type: " &amp; ace.AceType &amp; _&lt;br /&gt;              " Mask: " &amp; ace.AccessMask &amp; _&lt;br /&gt;              " AceFlags: " &amp; ace.AceFlags &amp; _&lt;br /&gt;              " Flags: " &amp; ace.Flags &amp; _&lt;br /&gt;       " OType: " &amp; ace.ObjectType &amp; _&lt;br /&gt;       " IOTyp: " &amp; ace.InheritedObjectType&lt;br /&gt;&lt;br /&gt;    Next&lt;br /&gt;&lt;br /&gt;    set sec = Nothing&lt;br /&gt;    set sd = Nothing&lt;br /&gt;    set dacl = Nothing&lt;br /&gt;    &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub AclEdit( action, url, acl, UType )&lt;br /&gt;    Dim acls, dacl, dummy, sec, sd, ace, acea, usera, user, perm, acsplit&lt;br /&gt;    Const ADS_ACETYPE_ACCESS_ALLOWED = 0&lt;br /&gt;    Const ADS_ACETYPE_ACCESS_DENIED = 1&lt;br /&gt;    Const ADS_ACEFLAG_INHERIT_ACE = 2&lt;br /&gt;    Const ADS_ACEFLAG_INHERIT_ONLY_ACE         = 8&lt;br /&gt;    Const ADS_ACEFLAG_SUB_NEW = 9&lt;br /&gt;&lt;br /&gt;    Print "Edit: " &amp; action &amp; " " &amp; url &amp; " " &amp; acl &amp; " " &amp; utype&lt;br /&gt;    acls = split(acl,",")&lt;br /&gt;    &lt;br /&gt;    Set sec = Wscript.CreateObject("ADsSecurity")&lt;br /&gt;    on error resume Next&lt;br /&gt;&lt;br /&gt;    ' without cstr this will break ... !!!&lt;br /&gt;    Set sd = sec.GetSecurityDescriptor( CStr(url) )&lt;br /&gt;&lt;br /&gt;    If ErrHandler("Get SD for " &amp; url ) Then&lt;br /&gt;        On Error GoTo 0&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    Set dacl = sd.DiscretionaryAcl&lt;br /&gt;    dummy = dacl.AceCount ' this will throw an error if there is no DACL    &lt;br /&gt;    If ErrHandler("Get DACL for " &amp; url ) Then&lt;br /&gt;        On Error GoTo 0&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    ' DumpAcl url&lt;br /&gt;&lt;br /&gt;'    If action = "Rm" Or action = "Add" Then&lt;br /&gt;    If action = "Rm" Then&lt;br /&gt;        ' for Add we remove the ACEs for the folks for whoom need new ones&lt;br /&gt;        For Each ace In dacl&lt;br /&gt;            acea = split (LCase(ace.trustee &amp; "\" &amp; ace.trustee),"\")&lt;br /&gt;            If acea(0) &lt;&gt; "nt authority" Then&lt;br /&gt;                For Each user In acls&lt;br /&gt;                    usera = split (LCase(user),":")        &lt;br /&gt;                    If acea(1) = usera(0) Then&lt;br /&gt;                        Print "Remove ACE: " &amp; ace.trustee&lt;br /&gt;                        dacl.RemoveACE ace                    &lt;br /&gt;                        ErrHandler("Remove ACE for " &amp; ace.trustee &amp; _&lt;br /&gt;                                   " from " &amp; url)&lt;br /&gt;                    End If&lt;br /&gt;                Next&lt;br /&gt;            End if&lt;br /&gt;        Next&lt;br /&gt;&lt;br /&gt;    ElseIf action = "Set" Then&lt;br /&gt;        For Each ace In dacl&lt;br /&gt;            acea = split (LCase(ace.trustee &amp; "\" &amp; ace.trustee),"\")&lt;br /&gt;            If acea(0) &lt;&gt; "nt authority" Then&lt;br /&gt;                dacl.RemoveACE ace&lt;br /&gt;                ErrHandler("Remove ACE for " &amp; ace.Trustee &amp; " from " &amp; url)&lt;br /&gt;                Print "Remove ACE: " &amp; ace.trustee&lt;br /&gt;            End if&lt;br /&gt;        Next    &lt;br /&gt;    Elseif action &lt;&gt; "Add" Then&lt;br /&gt;        Wscript.Echo "Unknown Action: " &amp; action&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    If action = "Set" Or action = "Add" Then&lt;br /&gt;        For Each dummy In acls&lt;br /&gt;            acsplit = split (dummy,":")&lt;br /&gt;            user = acsplit(0)&lt;br /&gt;            perm = acsplit(1)&lt;br /&gt;            Print action &amp; " " &amp; utype &amp; " " &amp; user &amp; " " &amp; perm&lt;br /&gt;            Select Case UType&lt;br /&gt;                Case "DIRECTORY"&lt;br /&gt;                    ' folders require 2 aces for user (to do with inheritance)&lt;br /&gt;                    AddFileAce dacl, user, perm, _&lt;br /&gt;                               ADS_ACETYPE_ACCESS_ALLOWED, _&lt;br /&gt;                               ADS_ACEFLAG_SUB_NEW&lt;br /&gt;      if ucase(perm) &lt;&gt; "K" then&lt;br /&gt;                        AddFileAce dacl, user, perm, _&lt;br /&gt;                               ADS_ACETYPE_ACCESS_ALLOWED, _&lt;br /&gt;                               ADS_ACEFLAG_INHERIT_ACE&lt;br /&gt;                    end if&lt;br /&gt;                case "FILE"&lt;br /&gt;                    AddFileAce dacl, user, perm, _&lt;br /&gt;                               ADS_ACETYPE_ACCESS_ALLOWED,0&lt;br /&gt;                case "REGISTRY"&lt;br /&gt;                    AddRegAce dacl, user, perm, _&lt;br /&gt;                              ADS_ACETYPE_ACCESS_ALLOWED, _&lt;br /&gt;                              ADS_ACEFLAG_INHERIT_ACE&lt;br /&gt;            End Select&lt;br /&gt;        Next&lt;br /&gt;&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    sd.DiscretionaryAcl = dacl&lt;br /&gt;    If ErrHandler("Get SD for " &amp; url ) Then    &lt;br /&gt;        On Error GoTo 0&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;    sec.SetSecurityDescriptor sd    &lt;br /&gt;   &lt;br /&gt;    If ErrHandler("Get SD for " &amp; url ) Then&lt;br /&gt;        On Error GoTo 0&lt;br /&gt;        Exit Sub&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    Set sd = Nothing&lt;br /&gt;    Set dacl = Nothing&lt;br /&gt;    Set sec = Nothing&lt;br /&gt;&lt;br /&gt;    ' DumpAcl url&lt;br /&gt;&lt;br /&gt;    On Error GoTo 0  &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub AddRegACE(dacl, user, perm , acetype, aceflags)&lt;br /&gt;    ' Add registry ACE&lt;br /&gt;    Dim ace&lt;br /&gt;    &lt;br /&gt;    Const ADS_ACETYPE_ACCESS_ALLOWED = 0&lt;br /&gt;    Const RIGHT_REG_READ = &amp;H20019&lt;br /&gt;    Const RIGHT_REG_FULL = &amp;HF003F&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    Set ace = CreateObject("AccessControlEntry")&lt;br /&gt;    ace.Trustee = user&lt;br /&gt;    &lt;br /&gt;    Select Case UCase(perm)&lt;br /&gt;        ' specified rights so far only include FC &amp; R. Could be expanded though&lt;br /&gt;        Case "F"&lt;br /&gt;            ace.AccessMask = RIGHT_REG_FULL&lt;br /&gt;        Case "R"&lt;br /&gt;            ace.AccessMask = RIGHT_REG_READ&lt;br /&gt;    End Select&lt;br /&gt;    &lt;br /&gt;    ace.AceType = acetype&lt;br /&gt;    ace.AceFlags = aceflags&lt;br /&gt;    dacl.AddAce ace&lt;br /&gt;    ErrHandler("Add Ace for " &amp; user )&lt;br /&gt;&lt;br /&gt;    set ace=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub AddFileAce(dacl,user, perm, acetype, aceflags)&lt;br /&gt;    ' add ace to the specified dacl&lt;br /&gt;    Dim ace&lt;br /&gt;    &lt;br /&gt;    Const RIGHT_LIST = &amp;H4&lt;br /&gt;    Const RIGHT_READ = &amp;H80000000&lt;br /&gt;    Const RIGHT_EXECUTE = &amp;H20000000&lt;br /&gt;    Const RIGHT_WRITE = &amp;H40000000&lt;br /&gt;    Const RIGHT_DELETE = &amp;H10000&lt;br /&gt;    Const RIGHT_FULL = 2032127 ' &amp;H10000000&lt;br /&gt;    Const RIGHT_CHANGE_PERMS = &amp;H40000&lt;br /&gt;    Const RIGHT_TAKE_OWNERSHIP = &amp;H80000&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    Set ace = CreateObject("AccessControlEntry")&lt;br /&gt;    ace.Trustee = user&lt;br /&gt;    &lt;br /&gt;    select case ucase(perm)&lt;br /&gt;        ' specified rights so far only include FC &amp; R. Could be expanded though&lt;br /&gt;        case "F"&lt;br /&gt;            ace.AccessMask = RIGHT_FULL&lt;br /&gt;        case "C"&lt;br /&gt;            ace.AccessMask = RIGHT_READ or RIGHT_WRITE Or _&lt;br /&gt;               RIGHT_EXECUTE or RIGHT_DELETE&lt;br /&gt;        case "R"&lt;br /&gt;            ace.AccessMask = RIGHT_READ or RIGHT_EXECUTE&lt;br /&gt;        case "S" 'Special&lt;br /&gt;            ace.AccessMask = RIGHT_READ or RIGHT_WRITE or RIGHT_EXECUTE&lt;br /&gt;        case "L" 'List&lt;br /&gt;            ace.AccessMask = RIGHT_LIST&lt;br /&gt;        case "K" ' User can Create and work files in the dir specified and nothing else&lt;br /&gt;            ace.AceType = 0&lt;br /&gt;            ace.AccessMask = 1048582 ' create files&lt;br /&gt;     ace.AceFlags = 0&lt;br /&gt;            dacl.AddAce ace&lt;br /&gt;            set ace=Nothing&lt;br /&gt;            Set ace = CreateObject("AccessControlEntry")    &lt;br /&gt;            ace.Trustee = "CREATOR OWNER"&lt;br /&gt;            ace.AccessMask = RIGHT_FULL&lt;br /&gt;            acetype=0&lt;br /&gt;            aceflags=9&lt;br /&gt;    end select&lt;br /&gt;    &lt;br /&gt;    ace.AceType = acetype&lt;br /&gt;    ace.AceFlags = aceflags&lt;br /&gt;    dacl.AddAce ace&lt;br /&gt;    ErrHandler("Add Ace for " &amp; user )&lt;br /&gt;&lt;br /&gt;    set ace=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;   &lt;br /&gt;Sub DACL(action,url,acl)&lt;br /&gt;    Dim argarry, utype, upath, walk, ftype, fs, rfldr, file, sfldr&lt;br /&gt;    Dim ro, rk, regval,skey&lt;br /&gt;    argarry = split(url,"://")&lt;br /&gt;    utype = argarry(0)&lt;br /&gt;    upath = argarry(1)&lt;br /&gt;&lt;br /&gt;    Print "Action: " &amp; action &amp; " " &amp; utype &amp; "--" &amp; upath &amp; " " &amp; acl&lt;br /&gt;&lt;br /&gt;    If Right(upath,2) = "\\" Then&lt;br /&gt;        walk = "\\" ' folders only &lt;br /&gt;        upath = Left(upath, Len(upath)-2)&lt;br /&gt;    ElseIf Right(upath,1) = "\" Then&lt;br /&gt;        walk = "\" ' files and folders&lt;br /&gt;        upath = left(upath, len(upath)-1)      &lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    If utype = "FILE" Then&lt;br /&gt;        &lt;br /&gt;        Set fs=Wscript.CreateObject("Scripting.FileSystemObject")&lt;br /&gt;        Print "---" &amp; upath&lt;br /&gt;        If fs.FileExists(upath) Then&lt;br /&gt;            Set rfldr=fs.GetFile(upath)&lt;br /&gt;            ftype = "FILE" 'directory&lt;br /&gt;        ElseIf fs.FolderExists(upath) Then&lt;br /&gt;            Set rfldr=fs.GetFolder(upath)&lt;br /&gt;            ftype = "DIRECTORY" 'file&lt;br /&gt;        Else&lt;br /&gt;            ' its neither file nor folder ... maybe it does not exist ...&lt;br /&gt;            wscript.echo "Can't find " &amp; upath&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;        &lt;br /&gt;        AclEdit action, "FILE://" &amp; rfldr.path, acl, ftype&lt;br /&gt;&lt;br /&gt;        If ftype = "FILE" Then 'if this is a file our work is done&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;        &lt;br /&gt;        If walk = "\" then&lt;br /&gt;            For Each file In rfldr.files&lt;br /&gt;                AclEdit action, "FILE://" &amp; file , acl, "FILE"&lt;br /&gt;            Next&lt;br /&gt;        End If&lt;br /&gt;        &lt;br /&gt;        if walk = "\" or walk = "\\" then &lt;br /&gt;            for each sfldr in rfldr.subfolders&lt;br /&gt;                DACL action, "FILE://" &amp; sfldr &amp; walk, acl&lt;br /&gt;            next&lt;br /&gt;        end if&lt;br /&gt;        &lt;br /&gt;    elseif utype = "RGY" Then&lt;br /&gt;&lt;br /&gt;        Set ro = CreateObject("RegObj.Registry")&lt;br /&gt;        on error resume Next&lt;br /&gt;        Set rk = ro.RegKeyFromString( upath )&lt;br /&gt;        If ErrHandler("Get Registry Key " &amp; upath ) Then&lt;br /&gt;            On Error GoTo 0&lt;br /&gt;            Exit Sub&lt;br /&gt;        End If&lt;br /&gt;        &lt;br /&gt;        AclEdit action, "RGY://" &amp; rk.FullName, acl,"REGISTRY"  &lt;br /&gt;                        &lt;br /&gt;        if walk = "\" or walk = "\\" then&lt;br /&gt;            for each skey in rk.Subkeys&lt;br /&gt;                DACL action,"RGY://" &amp;  skey.FullName &amp; walk, acl&lt;br /&gt;            next&lt;br /&gt;        end If&lt;br /&gt;        &lt;br /&gt;    else&lt;br /&gt;        Wscript.Echo "Unsupported URL Type: " &amp; utype&lt;br /&gt;    end If&lt;br /&gt;    On Error GoTo 0&lt;br /&gt;    &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Function ErrHandler(what)&lt;br /&gt;    If Err.Number &gt; 0 Then&lt;br /&gt;        WScript.Echo what &amp; " Error " &amp; Err.Number &amp; ": " &amp; Err.Description&lt;br /&gt;        Err.Clear&lt;br /&gt;        Return True&lt;br /&gt;    End If&lt;br /&gt;    ErrHandler = False&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Sub Print(Str)&lt;br /&gt;    'strip when debugging&lt;br /&gt;    'wscript.echo Str&lt;br /&gt;End Sub&lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Set Date and Time on Solaris</title><link>http://system-network.blogspot.com/2007/04/set-date-and-time-on-solaris.html</link><category>Solaris</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 2 Apr 2007 22:37:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-1030542324833589782</guid><description>&lt;strong&gt;date mmddhhmmyy&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The date command takes the syntax &lt;strong&gt;&lt;span style="color:#ff0000;"&gt;mmddhhmmyy&lt;/span&gt;&lt;/strong&gt;, or “&lt;span style="color:#ff0000;"&gt;month day hour minute year&lt;/span&gt;”. You have to be superuser to set the time.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# date 0329092207&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Thu Mar 29 09:22:00 PST 2007&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;To set the time to 5:43:15 PM (17:43:15) :&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;date 1743.15&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To set the time to 9:05 AM:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;date 0905&lt;/span&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Display Number of Processors on Linux</title><link>http://system-network.blogspot.com/2007/04/display-number-of-processors-on-linux.html</link><category>Linux</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 2 Apr 2007 22:36:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-80706492301419569</guid><description>&lt;span style="font-family:courier new;color:#006600;"&gt;cat /proc/cpuinfo  grep processor  wc -l&lt;/span&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Delete Windows Patch Install Folders</title><link>http://system-network.blogspot.com/2007/04/delete-windows-patch-install-folders.html</link><category>Scripting</category><category>System Administration</category><category>VBScript</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 2 Apr 2007 22:35:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-4060685999209103534</guid><description>&lt;PRE&gt;Const WINDOWS = &amp;H24&amp;&lt;br /&gt;&lt;br /&gt;Set objShell = CreateObject("Shell.Application")&lt;br /&gt;Set objFolder = objShell.Namespace(WINDOWS)&lt;br /&gt;Set objFolderItem = objFolder.Self&lt;br /&gt;' Wscript.Echo objFolderItem.Path&lt;br /&gt;&lt;br /&gt;Set FSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;ShowSubfolders FSO.GetFolder(objFolderItem.Path)&lt;br /&gt;&lt;br /&gt;Sub ShowSubFolders(Folder)&lt;br /&gt;    For Each Subfolder in Folder.SubFolders&lt;br /&gt;        If Right(Subfolder.Name,1) = "$" AND Left(Subfolder.Name,1) = "$" Then&lt;br /&gt;            ' Wscript.Echo Subfolder.Name&lt;br /&gt;            Subfolder.Delete&lt;br /&gt;        End If&lt;br /&gt;        ' Wscript.Echo Subfolder.Path&lt;br /&gt;        ' ShowSubFolders Subfolder&lt;br /&gt;    Next&lt;br /&gt;End Sub&lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Configure Computer Rights in Active Directory</title><link>http://system-network.blogspot.com/2007/04/configure-computer-rights-in-active.html</link><category>Active Directory</category><category>Scripting</category><category>System Administration</category><category>VBScript</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 2 Apr 2007 22:34:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-9019730498863503480</guid><description>&lt;PRE&gt;'**********************************************************************&lt;br /&gt;'&lt;br /&gt;'  Configure Computer Rights in AD&lt;br /&gt;'&lt;br /&gt;'**********************************************************************&lt;br /&gt;&lt;br /&gt;'**********************************************************************&lt;br /&gt;'Connecting to the default naming context&lt;br /&gt;'**********************************************************************&lt;br /&gt;Set oRootDSE = GetObject("LDAP://RootDSE")&lt;br /&gt;strNamingContext = oRootDSE.Get("defaultNamingContext")&lt;br /&gt;set oSubscription = GetObject("LDAP://"&amp;strNamingContext)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'**********************************************************************&lt;br /&gt;'Getting the security descriptor of the domain root&lt;br /&gt;'**********************************************************************&lt;br /&gt;on error resume next&lt;br /&gt;set oSecDesc = oSubscription.Get("ntSecurityDescriptor")&lt;br /&gt;set oACL = oSecDesc.DiscretionaryACL&lt;br /&gt;if err.number&lt;&gt;0 then&lt;br /&gt; wscript.echo "Error : "&amp;error.number&amp;" "&amp;error.description&lt;br /&gt; wscript.quit(1)&lt;br /&gt;end if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'**********************************************************************&lt;br /&gt;'Create a new ACE giving write access to the comment field of computer objects&lt;br /&gt;'********************************************************************** &lt;br /&gt;Set objACE = CreateObject("accessControlEntry")&lt;br /&gt;objACE.Trustee = "Domain Computers"&lt;br /&gt;objACE.AccessMask = 32&lt;br /&gt;objACE.AceType = 5&lt;br /&gt;objACE.AceFlags = 10&lt;br /&gt;objACE.Flags = 3&lt;br /&gt;objAce.ObjectType="{BF967A6A-0DE6-11D0-A285-00AA003049E2}"&lt;br /&gt;objACE.InheritedObjectType="{BF967A86-0DE6-11D0-A285-00AA003049E2}"&lt;br /&gt;&lt;br /&gt;oACL.AddAce(objACE)&lt;br /&gt;oSecDesc.DiscretionaryACL = oACL&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'**********************************************************************&lt;br /&gt;'Write back the security descriptor&lt;br /&gt;'**********************************************************************&lt;br /&gt;oSubscription.Put "ntSecurityDescriptor",oSecDesc&lt;br /&gt;oSubscription.SetInfo&lt;br /&gt;if err.number&lt;&gt;0 then&lt;br /&gt; wscript.echo "Error : "&amp;error.number&amp;" "&amp;error.description&lt;br /&gt; wscript.quit(1)&lt;br /&gt;end if&lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Repair Image Preview in Windows 2000/XP</title><link>http://system-network.blogspot.com/2007/04/repair-image-preview-in-windows-2000xp.html</link><category>Registry</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Mon, 2 Apr 2007 22:33:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-5417700196532415691</guid><description>Windows Registry Editor Version 5.00&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.art\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.bmp\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.dib\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.gif\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.jfif\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.jpe\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.jpg\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.jpeg\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.png\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"&lt;br /&gt;&lt;br /&gt;[HKEY_CLASSES_ROOT\.wmf\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]&lt;br /&gt;@="{7376D660-C583-11d0-A3A5-00C04FD706EC}"</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Install WinZIP 8.0/9.0 in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-winzip-8090-in-silent-mode.html</link><category>Batch</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:49:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-6715636686773676775</guid><description>ECHO Install WinZIP 8.0/9.0&lt;br /&gt;if not exist "C:\Program Files\WinZip" md "C:\Program Files\WinZip"&lt;br /&gt;echo d|xcopy /E /C /Q /H /K /O /Y "E:\Install\WinZip" "C:\Program Files\WinZip"&lt;br /&gt;"C:\Program Files\WinZip\WINZIP32.EXE" /noqp /notip /autoinstall</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><title>Install .NET Framework 1.1 in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-net-framework-11-in-silent-mode.html</link><category>Batch</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:46:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-8657725591146795114</guid><description>ECHO Install .NET Framework 1.1&lt;br /&gt;L:\IE6F\dotnetfx.exe /q:a /c:"install /l /q"</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Install MDAC 2.8 in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-mdac-28-in-silent-mode.html</link><category>Batch</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:42:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-6869511633452322637</guid><description>ECHO Install MDAC 2.8&lt;br /&gt;D:\MDAC28.exe /Q:A /R:N /C:"DASETUP.EXE /Q /N"</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Install Internet Explorer 6 SP1 in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-internet-explorer-6-sp1-in.html</link><category>Batch</category><category>IE</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:40:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-1470539172878992480</guid><description>ECHO Install Internet Explorer 6 SP1&lt;br /&gt;"D:\ie6setup.exe" /Q:A /R:N /C:"ie6wzd /S:""#e"" /Q:A /R:N"</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>Install Windows 2000 MUI in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-windows-2000-mui-in-silent-mode.html</link><category>Batch</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:26:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-1203283361082618628</guid><description>ECHO Install Windows 2000 french MUI&lt;br /&gt;"E:\W2KMUIFR\MUISETUP.exe" /i 0411 0c0a 040c /d 040c /r /s&lt;br /&gt;&lt;br /&gt;REM /i Specifies the user interface language(s) to be installed.&lt;br /&gt;REM 0411 Japanese 0c0a Spanish 040c French&lt;br /&gt;REM /d Specifies the default user interface language (applied to all new user accounts and used in places such as the Winlogon screen)&lt;br /&gt;REM /u Specifies the user interface language(s) to be uninstalled&lt;br /&gt;REM /r Specifies that the reboot message should not be displayed&lt;br /&gt;REM /s Specifies that the installation complete message should not be displayed&lt;br /&gt;&lt;br /&gt;&lt;img src="http://img.microsoft.com/globaldev/Images/changeUI/console.gif" border="0"&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><title>Install Oracle 8.1.7 in Silent Mode</title><link>http://system-network.blogspot.com/2007/04/install-oracle-817-in-silent-mode.html</link><category>Batch</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 22:23:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-277273555113103333</guid><description>ECHO Install Oracle 8.1.7&lt;br /&gt;"D:\install\win32\setup.exe" -responsefile "E:\clientappuser.rsp" -silent&lt;br /&gt;&lt;br /&gt;REM SETUP.EXE -RESPONSEFILE FILENAME [-SILENT] [-NOWELCOME]&lt;br /&gt;REM FILENAME = Identifies the specific response file &lt;br /&gt;REM -SILENT = Runs Oracle Universal Installer in complete silent mode. The Welcome window is suppressed automatically. &lt;br /&gt;REM -NOWELCOME = Suppresses the Welcome window that appears during installation</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>French Keyboard for All Language</title><link>http://system-network.blogspot.com/2007/04/french-keyboard-for-all-language.html</link><category>Registry</category><category>Scripting</category><category>System Administration</category><category>Windows</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 21:32:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-7757634247778042996</guid><description>Use the same Keyboard System File kbdfr.dll for all language. If you want to use US Keyboard, replace kbdfr.dll by kbdus.dll, if you use German Keyboard, replace kbdfr.dll by kbdgr.dll, etc. Thanks to M. &lt;span style="color:#3333ff;"&gt;Jacques BEGAINT&lt;/span&gt; for this post.&lt;br /&gt;&lt;hr style="COLOR: #ff4500; 1px: ; solid: "&gt;&lt;br /&gt;REGEDIT4&lt;br /&gt;&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\00000804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0010804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0020404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0020804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0030404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0030804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0040404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0050404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0050804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0060404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0070404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0080404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E0090404]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E00E0804]&lt;br /&gt;"Layout File" = "kbdfr.dll"&lt;br /&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts\E01F0404]&lt;br /&gt;"Layout File" = "kbdfr.dll"</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>WMI Explorer in PowerShell</title><link>http://system-network.blogspot.com/2007/04/wmi-explorer-in-powershell.html</link><category>PowerShell</category><category>Scripting</category><category>System Administration</category><category>WMI</category><author>noreply@blogger.com (FANG Sheng)</author><pubDate>Sun, 1 Apr 2007 20:53:00 +0100</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-2173043393481576670.post-4211934496985504559</guid><description>&lt;PRE&gt;# WmiExplorer.ps1&lt;br /&gt;#&lt;br /&gt;# A GUI WMI explorer and WMI Method Help generator&lt;br /&gt;#&lt;br /&gt;# /\/\o\/\/ 2006 &lt;br /&gt;# www.ThePowerShellGuy.com&lt;br /&gt;&lt;br /&gt;# load Forms NameSpace&lt;br /&gt;&lt;br /&gt;[void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")  &lt;br /&gt; &lt;br /&gt;#region BuildTheForm build in C# then translated to powershell&lt;br /&gt;&lt;br /&gt;#region Make the form&lt;br /&gt;&lt;br /&gt;$frmMain = new-object Windows.Forms.form   &lt;br /&gt;$frmMain.Size = new-object System.Drawing.Size @(800,600)   &lt;br /&gt;$frmMain.text = "/\/\o\/\/'s PowerShell WMI Explorer"  &lt;br /&gt;&lt;br /&gt;#endregion Make the form&lt;br /&gt;&lt;br /&gt;#region Define Used Controls&lt;br /&gt;&lt;br /&gt;$MainMenu = new-object System.Windows.Forms.MenuStrip &lt;br /&gt;$statusStrip = new-object System.Windows.Forms.StatusStrip&lt;br /&gt;$FileMenu = new-object System.Windows.Forms.ToolStripMenuItem&lt;br /&gt;$ToolMenu = new-object System.Windows.Forms.ToolStripMenuItem('&amp;tools')&lt;br /&gt;&lt;br /&gt;$miQuery = new-object System.Windows.Forms.ToolStripMenuItem('&amp;Query (run)')&lt;br /&gt;&lt;br /&gt;$miSelectQuery = new-object System.Windows.Forms.ToolStripMenuItem('&amp;SelectQuery')&lt;br /&gt;$miSelectQuery.add_Click({$sq | out-propertyGrid;$wmiSearcher.Query = $sq})&lt;br /&gt;[void]$ToolMenu.DropDownItems.Add($miSelectQuery)&lt;br /&gt;&lt;br /&gt;$miRelatedObjectQuery = new-object System.Windows.Forms.ToolStripMenuItem('&amp;RelatedObjectQuery')&lt;br /&gt;$miRelatedObjectQuery.add_Click({$roq | out-propertyGrid;$wmiSearcher.Query = $roq})&lt;br /&gt;[void]$ToolMenu.DropDownItems.Add($miRelatedObjectQuery)&lt;br /&gt;&lt;br /&gt;$miRelationshipQuery = new-object System.Windows.Forms.ToolStripMenuItem('&amp;RelationshipQuery')&lt;br /&gt;$miRelationshipQuery.add_Click({$rq | out-propertyGrid ;$wmiSearcher.Query = $rq})&lt;br /&gt;[void]$ToolMenu.DropDownItems.Add($miRelationshipQuery)&lt;br /&gt;&lt;br /&gt;$oq = new-object System.Management.ObjectQuery&lt;br /&gt;$eq = new-object System.Management.EventQuery&lt;br /&gt;$sq = new-object System.Management.SelectQuery&lt;br /&gt;$roq = new-object System.Management.RelatedObjectQuery&lt;br /&gt;$rq = new-object System.Management.RelationshipQuery&lt;br /&gt;$wmiSearcher = [wmisearcher]''&lt;br /&gt;[void]$ToolMenu.DropDownItems.Add($miQuery)&lt;br /&gt;&lt;br /&gt;$miQuery.add_Click({&lt;br /&gt;&lt;br /&gt;    $wmiSearcher | out-propertyGrid&lt;br /&gt;    $moc = $wmiSearcher.get()&lt;br /&gt;    $DT =  new-object  System.Data.DataTable &lt;br /&gt;    $DT.TableName = $lblClass.text&lt;br /&gt;    $Col =  new-object System.Data.DataColumn&lt;br /&gt;    $Col.ColumnName = "WmiPath"&lt;br /&gt;    $DT.Columns.Add($Col)&lt;br /&gt;&lt;br /&gt;    $i = 0&lt;br /&gt;    $j = 0 ;$lblInstances.Text = $j; $lblInstances.Update()&lt;br /&gt;&lt;br /&gt;    $MOC | &lt;br /&gt;    ForEach-Object {&lt;br /&gt;        $j++ ;$lblInstances.Text = $j; $lblInstances.Update()&lt;br /&gt;        $MO = $_ &lt;br /&gt;        &lt;br /&gt;        # Make a DataRow &lt;br /&gt;&lt;br /&gt;        $DR = $DT.NewRow() &lt;br /&gt;        $Col =  new-object System.Data.DataColumn&lt;br /&gt;        $DR.Item("WmiPath") = $mo.__PATH&lt;br /&gt;&lt;br /&gt;        $MO.psbase.properties | &lt;br /&gt;        ForEach-Object { &lt;br /&gt;        &lt;br /&gt;            $prop = $_ &lt;br /&gt;            &lt;br /&gt;            If ($i -eq 0)  { &lt;br /&gt;    &lt;br /&gt;                # Only On First Row make The Headers &lt;br /&gt;                &lt;br /&gt;                $Col =  new-object System.Data.DataColumn &lt;br /&gt;                $Col.ColumnName = $prop.Name.ToString()&lt;br /&gt; &lt;br /&gt;                $prop.psbase.Qualifiers | &lt;br /&gt;                ForEach-Object { &lt;br /&gt;                    If ($_.Name.ToLower() -eq "key") { &lt;br /&gt;                        $Col.ColumnName = $Col.ColumnName + "*" &lt;br /&gt;                    } &lt;br /&gt;                } &lt;br /&gt;                $DT.Columns.Add($Col)  &lt;br /&gt;            } &lt;br /&gt;            &lt;br /&gt;            # fill dataRow  &lt;br /&gt;            &lt;br /&gt;            if ($prop.value -eq $null) { &lt;br /&gt;                $DR.Item($prop.Name) = "[empty]" &lt;br /&gt;            } ElseIf ($prop.IsArray) { &lt;br /&gt;                $DR.Item($prop.Name) =[string]::Join($prop.value ,";") &lt;br /&gt;            } Else { &lt;br /&gt;                $DR.Item($prop.Name) = $prop.value &lt;br /&gt;                #Item is Key try again with * &lt;br /&gt;                trap{$DR.Item("$($prop.Name)*") = $prop.Value.tostring();continue} &lt;br /&gt;            } &lt;br /&gt;&lt;br /&gt;        } #end ForEach&lt;br /&gt;&lt;br /&gt;        # Add the row to the DataTable &lt;br /&gt;        &lt;br /&gt;        $DT.Rows.Add($DR) &lt;br /&gt;        $i += 1 &lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    $DGInstances.DataSource = $DT.psObject.baseobject   &lt;br /&gt;    $status.Text = "Retrieved $j Instances"&lt;br /&gt;    $status.BackColor = 'YellowGreen'&lt;br /&gt;    $statusstrip.Update()&lt;br /&gt;&lt;br /&gt;})#$miQuery.add_Click&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$miQuit = new-object System.Windows.Forms.ToolStripMenuItem('&amp;quit')&lt;br /&gt;&lt;br /&gt;$miQuit.add_Click({$frmMain.close()})  &lt;br /&gt;&lt;br /&gt;$SplitContainer1 = new-object System.Windows.Forms.SplitContainer&lt;br /&gt;$splitContainer2 = new-object System.Windows.Forms.SplitContainer&lt;br /&gt;$splitContainer3 = new-object System.Windows.Forms.SplitContainer&lt;br /&gt;&lt;br /&gt;$grpComputer = new-object System.Windows.Forms.GroupBox&lt;br /&gt;$grpNameSpaces = new-object System.Windows.Forms.GroupBox&lt;br /&gt;$grpClasses = new-object System.Windows.Forms.GroupBox&lt;br /&gt;$grpClass = new-object System.Windows.Forms.GroupBox&lt;br /&gt;$grpInstances = new-object System.Windows.Forms.GroupBox&lt;br /&gt;$grpStatus = new-object System.Windows.Forms.GroupBox&lt;br /&gt;&lt;br /&gt;$txtComputer = new-object System.Windows.Forms.TextBox&lt;br /&gt;$btnConnect = new-object System.Windows.Forms.Button&lt;br /&gt;$btnInstances = new-object System.Windows.Forms.Button&lt;br /&gt;&lt;br /&gt;$tvNameSpaces = new-object System.Windows.Forms.TreeView&lt;br /&gt;$lvClasses = new-object System.Windows.Forms.ListView&lt;br /&gt;&lt;br /&gt;$clbProperties = new-object System.Windows.Forms.CheckedListBox&lt;br /&gt;$clbProperties.CheckOnClick = $true&lt;br /&gt;$lbMethods = new-object System.Windows.Forms.ListBox&lt;br /&gt;&lt;br /&gt;$label1 = new-object System.Windows.Forms.Label&lt;br /&gt;$label2 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblServer = new-object System.Windows.Forms.Label&lt;br /&gt;$lblPath = new-object System.Windows.Forms.Label&lt;br /&gt;$lblNameSpace = new-object System.Windows.Forms.Label&lt;br /&gt;$label6 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblClass = new-object System.Windows.Forms.Label&lt;br /&gt;$label10 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblClasses = new-object System.Windows.Forms.Label&lt;br /&gt;$label12 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblProperties = new-object System.Windows.Forms.Label&lt;br /&gt;$label8 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblMethods = new-object System.Windows.Forms.Label&lt;br /&gt;$label14 = new-object System.Windows.Forms.Label&lt;br /&gt;$lblInstances = new-object System.Windows.Forms.Label&lt;br /&gt;$label16 = new-object System.Windows.Forms.Label&lt;br /&gt;&lt;br /&gt;$dgInstances = new-object System.Windows.Forms.DataGridView&lt;br /&gt;$TabControl = new-object System.Windows.Forms.TabControl&lt;br /&gt;$tabPage1 = new-object System.Windows.Forms.TabPage&lt;br /&gt;$tabInstances = new-object System.Windows.Forms.TabPage&lt;br /&gt;$rtbHelp = new-object System.Windows.Forms.RichTextBox&lt;br /&gt;$tabMethods = new-object System.Windows.Forms.TabPage&lt;br /&gt;$rtbMethods = new-object System.Windows.Forms.RichTextBox&lt;br /&gt;#endregion Define Used Controls        &lt;br /&gt;&lt;br /&gt;#region Suspend the Layout&lt;br /&gt;&lt;br /&gt;$splitContainer1.Panel1.SuspendLayout()&lt;br /&gt;$splitContainer1.Panel2.SuspendLayout()&lt;br /&gt;$splitContainer1.SuspendLayout()&lt;br /&gt;$splitContainer2.Panel1.SuspendLayout()&lt;br /&gt;$splitContainer2.Panel2.SuspendLayout()&lt;br /&gt;$splitContainer2.SuspendLayout()&lt;br /&gt;$grpComputer.SuspendLayout()&lt;br /&gt;$grpNameSpaces.SuspendLayout()&lt;br /&gt;$grpClasses.SuspendLayout()&lt;br /&gt;$splitContainer3.Panel1.SuspendLayout()&lt;br /&gt;$splitContainer3.Panel2.SuspendLayout()&lt;br /&gt;$splitContainer3.SuspendLayout()&lt;br /&gt;$grpClass.SuspendLayout()&lt;br /&gt;$grpStatus.SuspendLayout()&lt;br /&gt;$grpInstances.SuspendLayout()&lt;br /&gt;$TabControl.SuspendLayout()&lt;br /&gt;$tabPage1.SuspendLayout()&lt;br /&gt;$tabInstances.SuspendLayout()&lt;br /&gt;$FrmMain.SuspendLayout()&lt;br /&gt;&lt;br /&gt;#endregion Suspend the Layout&lt;br /&gt;&lt;br /&gt;#region Configure Controls&lt;br /&gt;&lt;br /&gt;[void]$MainMenu.Items.Add($FileMenu) &lt;br /&gt;[void]$MainMenu.Items.Add($ToolMenu) &lt;br /&gt;$MainMenu.Location = new-object System.Drawing.Point(0, 0)&lt;br /&gt;$MainMenu.Name = "MainMenu"&lt;br /&gt;$MainMenu.Size = new-object System.Drawing.Size(1151, 24)&lt;br /&gt;$MainMenu.TabIndex = 0&lt;br /&gt;$MainMenu.Text = "Main Menu"&lt;br /&gt;&lt;br /&gt;# &lt;br /&gt;# statusStrip1&lt;br /&gt;# &lt;br /&gt;$statusStrip.Location = new-object System.Drawing.Point(0, 569)&lt;br /&gt;$statusStrip.Name = "statusStrip"&lt;br /&gt;$statusStrip.Size = new-object System.Drawing.Size(1151, 22);&lt;br /&gt;$statusStrip.TabIndex = 1&lt;br /&gt;$statusStrip.Text = "statusStrip"&lt;br /&gt;&lt;br /&gt;$splitContainer1.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;$splitContainer1.Location = new-object System.Drawing.Point(0, 24)&lt;br /&gt;$splitContainer1.Name = "splitContainer1"&lt;br /&gt;$splitContainer1.Panel1.Controls.Add($splitContainer2)&lt;br /&gt;&lt;br /&gt;$splitContainer1.Panel2.Controls.Add($splitContainer3)&lt;br /&gt;$splitContainer1.Size = new-object System.Drawing.Size(1151, 545)&lt;br /&gt;$splitContainer1.SplitterDistance = 372&lt;br /&gt;$splitContainer1.TabIndex = 2&lt;br /&gt;&lt;br /&gt;$splitContainer2.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$splitContainer2.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;$splitContainer2.Location = new-object System.Drawing.Point(0, 0)&lt;br /&gt;$splitContainer2.Name = "splitContainer2"&lt;br /&gt;$splitContainer2.Orientation = [System.Windows.Forms.Orientation]::Horizontal&lt;br /&gt;&lt;br /&gt;$splitContainer2.Panel1.BackColor = [System.Drawing.SystemColors]::Control&lt;br /&gt;$splitContainer2.Panel1.Controls.Add($grpNameSpaces)&lt;br /&gt;$splitContainer2.Panel1.Controls.Add($btnConnect)&lt;br /&gt;$splitContainer2.Panel1.Controls.Add($grpComputer)&lt;br /&gt;&lt;br /&gt;$splitContainer2.Panel2.Controls.Add($grpClasses)&lt;br /&gt;$splitContainer2.Size = new-object System.Drawing.Size(372, 545)&lt;br /&gt;$splitContainer2.SplitterDistance = 302&lt;br /&gt;$splitContainer2.TabIndex = 0&lt;br /&gt;&lt;br /&gt;# &lt;br /&gt;# fileMenu&lt;br /&gt;# &lt;br /&gt;[void]$fileMenu.DropDownItems.Add($miQuit)&lt;br /&gt;$fileMenu.Name = "fileMenu"&lt;br /&gt;$fileMenu.Size = new-object System.Drawing.Size(35, 20)&lt;br /&gt;$fileMenu.Text = "&amp;File"&lt;br /&gt;&lt;br /&gt;$grpComputer.Anchor = "top, left, right"&lt;br /&gt;$grpComputer.Controls.Add($txtComputer)&lt;br /&gt;$grpComputer.Location = new-object System.Drawing.Point(12, 3)&lt;br /&gt;$grpComputer.Name = "grpComputer"&lt;br /&gt;$grpComputer.Size = new-object System.Drawing.Size(340, 57)&lt;br /&gt;$grpComputer.TabIndex = 0&lt;br /&gt;$grpComputer.TabStop = $false&lt;br /&gt;$grpComputer.Text = "Computer"&lt;br /&gt;&lt;br /&gt;$txtComputer.Anchor = "top, left, right"&lt;br /&gt;$txtComputer.Location = new-object System.Drawing.Point(7, 20)&lt;br /&gt;$txtComputer.Name = "txtComputer"&lt;br /&gt;$txtComputer.Size = new-object System.Drawing.Size(244, 20)&lt;br /&gt;$txtComputer.TabIndex = 0&lt;br /&gt;$txtComputer.Text = "."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$btnConnect.Anchor = "top, right"&lt;br /&gt;$btnConnect.Location = new-object System.Drawing.Point(269, 23);&lt;br /&gt;$btnConnect.Name = "btnConnect"&lt;br /&gt;$btnConnect.Size = new-object System.Drawing.Size(75, 23)&lt;br /&gt;$btnConnect.TabIndex = 1&lt;br /&gt;$btnConnect.Text = "Connect"&lt;br /&gt;$btnConnect.UseVisualStyleBackColor = $true&lt;br /&gt;&lt;br /&gt;# &lt;br /&gt;# grpNameSpaces&lt;br /&gt;# &lt;br /&gt;$grpNameSpaces.Anchor = "Bottom, top, left, right"&lt;br /&gt;$grpNameSpaces.Controls.Add($tvNameSpaces)&lt;br /&gt;$grpNameSpaces.Location = new-object System.Drawing.Point(12, 67)&lt;br /&gt;$grpNameSpaces.Name = "grpNameSpaces"&lt;br /&gt;$grpNameSpaces.Size = new-object System.Drawing.Size(340, 217)&lt;br /&gt;$grpNameSpaces.TabIndex = 2&lt;br /&gt;$grpNameSpaces.TabStop = $false&lt;br /&gt;$grpNameSpaces.Text = "NameSpaces"&lt;br /&gt;# &lt;br /&gt;# grpClasses&lt;br /&gt;# &lt;br /&gt;$grpClasses.Anchor = "Bottom, top, left, right"&lt;br /&gt;&lt;br /&gt;$grpClasses.Controls.Add($lvClasses)&lt;br /&gt;$grpClasses.Location = new-object System.Drawing.Point(12, 14)&lt;br /&gt;$grpClasses.Name = "grpClasses"&lt;br /&gt;$grpClasses.Size = new-object System.Drawing.Size(340, 206)&lt;br /&gt;$grpClasses.TabIndex = 0&lt;br /&gt;$grpClasses.TabStop = $False&lt;br /&gt;$grpClasses.Text = "Classes"&lt;br /&gt;# &lt;br /&gt;# tvNameSpaces&lt;br /&gt;# &lt;br /&gt;$tvNameSpaces.Anchor = "Bottom, top, left, right"&lt;br /&gt;&lt;br /&gt;$tvNameSpaces.Location = new-object System.Drawing.Point(7, 19)&lt;br /&gt;$tvNameSpaces.Name = "tvNameSpaces"&lt;br /&gt;$tvNameSpaces.Size = new-object System.Drawing.Size(325, 184)&lt;br /&gt;$tvNameSpaces.TabIndex = 0&lt;br /&gt;# &lt;br /&gt;# tvClasses&lt;br /&gt;# &lt;br /&gt;$lvClasses.Anchor = "Bottom, top, left, right"&lt;br /&gt;&lt;br /&gt;$lvClasses.Location = new-object System.Drawing.Point(7, 19)&lt;br /&gt;$lvClasses.Name = "tvClasses"&lt;br /&gt;$lvClasses.Size = new-object System.Drawing.Size(325, 172)&lt;br /&gt;$lvClasses.TabIndex = 0&lt;br /&gt;$lvClasses.UseCompatibleStateImageBehavior = $False&lt;br /&gt;$lvClasses.ShowItemToolTips = $true&lt;br /&gt;$lvClasses.View = 'Details'&lt;br /&gt;$colName = $lvClasses.Columns.add('Name')&lt;br /&gt;$colname.Width = 160&lt;br /&gt;$colPath = $lvClasses.Columns.add('Description')&lt;br /&gt;$colname.Width = 260&lt;br /&gt;$colPath = $lvClasses.Columns.add('Path')&lt;br /&gt;$colname.Width = 260&lt;br /&gt;# &lt;br /&gt;# splitContainer3&lt;br /&gt;# &lt;br /&gt;$splitContainer3.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$splitContainer3.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;$splitContainer3.Location = new-object System.Drawing.Point(0, 0)&lt;br /&gt;$splitContainer3.Name = "splitContainer3"&lt;br /&gt;$splitContainer3.Orientation = [System.Windows.Forms.Orientation]::Horizontal&lt;br /&gt;# &lt;br /&gt;# splitContainer3.Panel1&lt;br /&gt;# &lt;br /&gt;$splitContainer3.Panel1.Controls.Add($grpStatus)&lt;br /&gt;$splitContainer3.Panel1.Controls.Add($grpClass)&lt;br /&gt;# &lt;br /&gt;# splitContainer3.Panel2&lt;br /&gt;# &lt;br /&gt;$splitContainer3.Panel2.Controls.Add($TabControl)&lt;br /&gt;$splitContainer3.Size = new-object System.Drawing.Size(775, 545)&lt;br /&gt;$splitContainer3.SplitterDistance = 303&lt;br /&gt;$splitContainer3.TabIndex = 0&lt;br /&gt;# &lt;br /&gt;# grpClass&lt;br /&gt;# &lt;br /&gt;$grpClass.Anchor = "Bottom, top, left, right"&lt;br /&gt;$grpClass.Controls.Add($lblInstances)&lt;br /&gt;$grpClass.Controls.Add($label16)&lt;br /&gt;$grpClass.Controls.Add($lblMethods)&lt;br /&gt;$grpClass.Controls.Add($label14)&lt;br /&gt;$grpClass.Controls.Add($lblProperties)&lt;br /&gt;$grpClass.Controls.Add($label8)&lt;br /&gt;$grpClass.Controls.Add($lblClass)&lt;br /&gt;$grpClass.Controls.Add($label10)&lt;br /&gt;$grpClass.Controls.Add($lbMethods)&lt;br /&gt;$grpClass.Controls.Add($clbProperties)&lt;br /&gt;$grpClass.Controls.Add($btnInstances)&lt;br /&gt;$grpClass.Location = new-object System.Drawing.Point(17, 86)&lt;br /&gt;$grpClass.Name = "grpClass"&lt;br /&gt;$grpClass.Size = new-object System.Drawing.Size(744, 198)&lt;br /&gt;$grpClass.TabIndex = 0&lt;br /&gt;$grpClass.TabStop = $False&lt;br /&gt;$grpClass.Text = "Class"&lt;br /&gt;&lt;br /&gt;# &lt;br /&gt;# btnInstances&lt;br /&gt;# &lt;br /&gt;$btnInstances.Anchor = "Bottom, Left"&lt;br /&gt;$btnInstances.Location = new-object System.Drawing.Point(6, 169);&lt;br /&gt;$btnInstances.Name = "btnInstances";&lt;br /&gt;$btnInstances.Size = new-object System.Drawing.Size(96, 23);&lt;br /&gt;$btnInstances.TabIndex = 0;&lt;br /&gt;$btnInstances.Text = "Get Instances";&lt;br /&gt;$btnInstances.UseVisualStyleBackColor = $true&lt;br /&gt;# &lt;br /&gt;# grpStatus&lt;br /&gt;# &lt;br /&gt;$grpStatus.Anchor = "Top,Left,Right"&lt;br /&gt;$grpStatus.Controls.Add($lblClasses)&lt;br /&gt;$grpStatus.Controls.Add($label12)&lt;br /&gt;$grpStatus.Controls.Add($lblNameSpace)&lt;br /&gt;$grpStatus.Controls.Add($label6)&lt;br /&gt;$grpStatus.Controls.Add($lblPath)&lt;br /&gt;$grpStatus.Controls.Add($lblServer)&lt;br /&gt;$grpStatus.Controls.Add($label2)&lt;br /&gt;$grpStatus.Controls.Add($label1)&lt;br /&gt;$grpStatus.Location = new-object System.Drawing.Point(17, 3)&lt;br /&gt;$grpStatus.Name = "grpStatus"&lt;br /&gt;$grpStatus.Size = new-object System.Drawing.Size(744, 77)&lt;br /&gt;$grpStatus.TabIndex = 1&lt;br /&gt;$grpStatus.TabStop = $False&lt;br /&gt;$grpStatus.Text = "Status"&lt;br /&gt;# &lt;br /&gt;# label1&lt;br /&gt;# &lt;br /&gt;$label1.AutoSize = $true&lt;br /&gt;$label1.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label1.Location = new-object System.Drawing.Point(7, 20)&lt;br /&gt;$label1.Name = "label1"&lt;br /&gt;$label1.Size = new-object System.Drawing.Size(62, 16)&lt;br /&gt;$label1.TabIndex = 0&lt;br /&gt;$label1.Text = "Server :"&lt;br /&gt;# &lt;br /&gt;# label2&lt;br /&gt;# &lt;br /&gt;$label2.AutoSize = $true&lt;br /&gt;$label2.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label2.Location = new-object System.Drawing.Point(7, 41)&lt;br /&gt;$label2.Name = "label2"&lt;br /&gt;$label2.Size = new-object System.Drawing.Size(51, 16)&lt;br /&gt;$label2.TabIndex = 1&lt;br /&gt;$label2.Text = "Path  :"&lt;br /&gt;# &lt;br /&gt;# lblServer&lt;br /&gt;# &lt;br /&gt;$lblServer.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblServer.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblServer.Location = new-object System.Drawing.Point(75, 20)&lt;br /&gt;$lblServer.Name = "lblServer"&lt;br /&gt;$lblServer.Size = new-object System.Drawing.Size(144, 20)&lt;br /&gt;$lblServer.TabIndex = 2&lt;br /&gt;# &lt;br /&gt;# lblPath&lt;br /&gt;# &lt;br /&gt;$lblPath.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblPath.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblPath.Location = new-object System.Drawing.Point(75, 40)&lt;br /&gt;$lblPath.Name = "lblPath"&lt;br /&gt;$lblPath.Size = new-object System.Drawing.Size(567, 20)&lt;br /&gt;$lblPath.TabIndex = 3&lt;br /&gt;# &lt;br /&gt;# lblNameSpace&lt;br /&gt;# &lt;br /&gt;$lblNameSpace.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblNameSpace.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblNameSpace.Location = new-object System.Drawing.Point(337, 20)&lt;br /&gt;$lblNameSpace.Name = "lblNameSpace"&lt;br /&gt;$lblNameSpace.Size = new-object System.Drawing.Size(144, 20)&lt;br /&gt;$lblNameSpace.TabIndex = 5&lt;br /&gt;# &lt;br /&gt;# label6&lt;br /&gt;# &lt;br /&gt;$label6.AutoSize = $true&lt;br /&gt;$label6.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label6.Location = new-object System.Drawing.Point(229, 20)&lt;br /&gt;$label6.Name = "label6"&lt;br /&gt;$label6.Size = new-object System.Drawing.Size(102, 16)&lt;br /&gt;$label6.TabIndex = 4&lt;br /&gt;$label6.Text = "NameSpace :"&lt;br /&gt;# &lt;br /&gt;# lblClass&lt;br /&gt;# &lt;br /&gt;$lblClass.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblClass.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblClass.Location = new-object System.Drawing.Point(110, 26)&lt;br /&gt;$lblClass.Name = "lblClass"&lt;br /&gt;$lblClass.Size = new-object System.Drawing.Size(159, 20)&lt;br /&gt;$lblClass.TabIndex = 11&lt;br /&gt;# &lt;br /&gt;# label10&lt;br /&gt;# &lt;br /&gt;$label10.AutoSize = $true&lt;br /&gt;$label10.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label10.Location = new-object System.Drawing.Point(6, 26)&lt;br /&gt;$label10.Name = "label10"&lt;br /&gt;$label10.Size = new-object System.Drawing.Size(55, 16)&lt;br /&gt;$label10.TabIndex = 10&lt;br /&gt;$label10.Text = "Class :"&lt;br /&gt;# &lt;br /&gt;# lblClasses&lt;br /&gt;# &lt;br /&gt;$lblClasses.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblClasses.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblClasses.Location = new-object System.Drawing.Point(595, 21)&lt;br /&gt;$lblClasses.Name = "lblClasses"&lt;br /&gt;$lblClasses.Size = new-object System.Drawing.Size(47, 20)&lt;br /&gt;$lblClasses.TabIndex = 9&lt;br /&gt;# &lt;br /&gt;# label12&lt;br /&gt;# &lt;br /&gt;$label12.AutoSize = $true&lt;br /&gt;$label12.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label12.Location = new-object System.Drawing.Point(487, 21)&lt;br /&gt;$label12.Name = "label12"&lt;br /&gt;$label12.Size = new-object System.Drawing.Size(76, 16)&lt;br /&gt;$label12.TabIndex = 8&lt;br /&gt;$label12.Text = "Classes  :"&lt;br /&gt;# &lt;br /&gt;# clbProperties&lt;br /&gt;# &lt;br /&gt;$clbProperties.Anchor = "Bottom, top,left"&lt;br /&gt;$clbProperties.FormattingEnabled = $true&lt;br /&gt;$clbProperties.Location = new-object System.Drawing.Point(510, 27)&lt;br /&gt;$clbProperties.Name = "clbProperties"&lt;br /&gt;$clbProperties.Size = new-object System.Drawing.Size(220, 160)&lt;br /&gt;$clbProperties.TabIndex = 1&lt;br /&gt;# &lt;br /&gt;# lbMethods&lt;br /&gt;# &lt;br /&gt;$lbMethods.Anchor = "Bottom, top, Left"&lt;br /&gt;$lbMethods.FormattingEnabled = $true&lt;br /&gt;$lbMethods.Location = new-object System.Drawing.Point(280, 27)&lt;br /&gt;$lbMethods.Name = "lbMethods"&lt;br /&gt;$lbMethods.Size = new-object System.Drawing.Size(220, 160)&lt;br /&gt;$lbMethods.TabIndex = 2&lt;br /&gt;# &lt;br /&gt;# lblProperties&lt;br /&gt;# &lt;br /&gt;$lblProperties.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblProperties.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblProperties.Location = new-object System.Drawing.Point(110, 46)&lt;br /&gt;$lblProperties.Name = "lblProperties"&lt;br /&gt;$lblProperties.Size = new-object System.Drawing.Size(119, 20)&lt;br /&gt;$lblProperties.TabIndex = 13&lt;br /&gt;#&lt;br /&gt;# label8&lt;br /&gt;# &lt;br /&gt;$label8.AutoSize = $true&lt;br /&gt;$label8.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label8.Location = new-object System.Drawing.Point(6, 46)&lt;br /&gt;$label8.Name = "label8"&lt;br /&gt;$label8.Size = new-object System.Drawing.Size(88, 16)&lt;br /&gt;$label8.TabIndex = 12&lt;br /&gt;$label8.Text = "Properties :"&lt;br /&gt;# &lt;br /&gt;# lblMethods&lt;br /&gt;# &lt;br /&gt;$lblMethods.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblMethods.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblMethods.Location = new-object System.Drawing.Point(110, 66)&lt;br /&gt;$lblMethods.Name = "lblMethods"&lt;br /&gt;$lblMethods.Size = new-object System.Drawing.Size(119, 20)&lt;br /&gt;$lblMethods.TabIndex = 15&lt;br /&gt;# &lt;br /&gt;# label14&lt;br /&gt;# &lt;br /&gt;$label14.AutoSize = $true&lt;br /&gt;$label14.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label14.Location = new-object System.Drawing.Point(6, 66)&lt;br /&gt;$label14.Name = "label14"&lt;br /&gt;$label14.Size = new-object System.Drawing.Size(79, 16)&lt;br /&gt;$label14.TabIndex = 14&lt;br /&gt;$label14.Text = "Methods  :"&lt;br /&gt;# &lt;br /&gt;# lblInstances&lt;br /&gt;# &lt;br /&gt;$lblInstances.BorderStyle = [System.Windows.Forms.BorderStyle]::Fixed3D&lt;br /&gt;$lblInstances.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$lblInstances.Location = new-object System.Drawing.Point(110, 86)&lt;br /&gt;$lblInstances.Name = "lblInstances"&lt;br /&gt;$lblInstances.Size = new-object System.Drawing.Size(119, 20)&lt;br /&gt;$lblInstances.TabIndex = 17&lt;br /&gt;# &lt;br /&gt;# label16&lt;br /&gt;# &lt;br /&gt;$label16.AutoSize = $true&lt;br /&gt;$label16.Font = new-object System.Drawing.Font("Microsoft Sans Serif",9.75 ,[System.Drawing.FontStyle]::Bold)&lt;br /&gt;$label16.Location = new-object System.Drawing.Point(6, 86)&lt;br /&gt;$label16.Name = "label16"&lt;br /&gt;$label16.Size = new-object System.Drawing.Size(82, 16)&lt;br /&gt;$label16.TabIndex = 16&lt;br /&gt;$label16.Text = "Instances :"&lt;br /&gt;# &lt;br /&gt;# grpInstances&lt;br /&gt;# &lt;br /&gt;$grpInstances.Anchor = "Bottom, top, left, right"&lt;br /&gt;$grpInstances.Controls.Add($dgInstances)&lt;br /&gt;$grpInstances.Location = new-object System.Drawing.Point(17, 17)&lt;br /&gt;$grpInstances.Name = "grpInstances"&lt;br /&gt;$grpInstances.Size = new-object System.Drawing.Size(744, 202)&lt;br /&gt;$grpInstances.TabIndex = 0&lt;br /&gt;$grpInstances.TabStop = $False&lt;br /&gt;$grpInstances.Text = "Instances"&lt;br /&gt;# &lt;br /&gt;# dgInstances&lt;br /&gt;# &lt;br /&gt;$dgInstances.Anchor = "Bottom, top, left, right"&lt;br /&gt;&lt;br /&gt;$dgInstances.ColumnHeadersHeightSizeMode = [System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode]::AutoSize&lt;br /&gt;$dgInstances.Location = new-object System.Drawing.Point(10, 19)&lt;br /&gt;$dgInstances.Name = "dgInstances"&lt;br /&gt;$dgInstances.Size = new-object System.Drawing.Size(728, 167)&lt;br /&gt;$dgInstances.TabIndex = 0&lt;br /&gt;$dginstances.ReadOnly = $true&lt;br /&gt;&lt;br /&gt;# TabControl&lt;br /&gt;# &lt;br /&gt;$TabControl.Controls.Add($tabPage1)&lt;br /&gt;$TabControl.Controls.Add($tabInstances)&lt;br /&gt;$TabControl.Controls.Add($tabMethods)&lt;br /&gt;$TabControl.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;$TabControl.Location = new-object System.Drawing.Point(0, 0)&lt;br /&gt;$TabControl.Name = "TabControl"&lt;br /&gt;$TabControl.SelectedIndex = 0&lt;br /&gt;$TabControl.Size = new-object System.Drawing.Size(771, 234)&lt;br /&gt;$TabControl.TabIndex = 0&lt;br /&gt;# &lt;br /&gt;# tabPage1&lt;br /&gt;# &lt;br /&gt;$tabPage1.Controls.Add($rtbHelp)&lt;br /&gt;$tabPage1.Location = new-object System.Drawing.Point(4, 22)&lt;br /&gt;$tabPage1.Name = "tabPage1"&lt;br /&gt;$tabPage1.Padding = new-object System.Windows.Forms.Padding(3)&lt;br /&gt;$tabPage1.Size = new-object System.Drawing.Size(763, 208)&lt;br /&gt;$tabPage1.TabIndex = 0&lt;br /&gt;$tabPage1.Text = "Help"&lt;br /&gt;$tabPage1.UseVisualStyleBackColor = $true&lt;br /&gt;# &lt;br /&gt;# tabInstances&lt;br /&gt;# &lt;br /&gt;$tabInstances.Controls.Add($grpInstances)&lt;br /&gt;$tabInstances.Location = new-object System.Drawing.Point(4, 22)&lt;br /&gt;$tabInstances.Name = "tabInstances"&lt;br /&gt;$tabInstances.Padding = new-object System.Windows.Forms.Padding(3)&lt;br /&gt;$tabInstances.Size = new-object System.Drawing.Size(763, 208)&lt;br /&gt;$tabInstances.TabIndex = 1&lt;br /&gt;$tabInstances.Text = "Instances"&lt;br /&gt;$tabInstances.UseVisualStyleBackColor = $true&lt;br /&gt;# &lt;br /&gt;# richTextBox1&lt;br /&gt;# &lt;br /&gt;$rtbHelp.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;$rtbHelp.Location = new-object System.Drawing.Point(3, 3)&lt;br /&gt;$rtbHelp.Name = "richTextBox1"&lt;br /&gt;$rtbHelp.Size = new-object System.Drawing.Size(757, 202)&lt;br /&gt;$rtbHelp.TabIndex = 0&lt;br /&gt;$rtbHelp.Text = ""&lt;br /&gt;# &lt;br /&gt;# tabMethods&lt;br /&gt;# &lt;br /&gt;$tabMethods.Location = new-object System.Drawing.Point(4, 22)&lt;br /&gt;$tabMethods.Name = "tabMethods"&lt;br /&gt;$tabMethods.Padding = new-object System.Windows.Forms.Padding(3)&lt;br /&gt;$tabMethods.Size = new-object System.Drawing.Size(763, 208)&lt;br /&gt;$tabMethods.TabIndex = 2&lt;br /&gt;$tabMethods.Text = "Methods"&lt;br /&gt;$tabMethods.UseVisualStyleBackColor = $true&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        $rtbMethods.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;        $rtbMethods.Font = new-object System.Drawing.Font("Lucida Console",8 )&lt;br /&gt;        $rtbMethods.DetectUrls = $false&lt;br /&gt;        $tabMethods.controls.add($rtbMethods)&lt;br /&gt;        &lt;br /&gt;#endregion Configure Controls&lt;br /&gt;&lt;br /&gt;# Configure  Main Form &lt;br /&gt;&lt;br /&gt;#region frmMain&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# &lt;br /&gt;$frmMain.AutoScaleDimensions = new-object System.Drawing.SizeF(6, 13)&lt;br /&gt;$frmMain.AutoScaleMode = [System.Windows.Forms.AutoScaleMode]::Font&lt;br /&gt;$frmMain.ClientSize = new-object System.Drawing.Size(1151, 591)&lt;br /&gt;$frmMain.Controls.Add($splitContainer1)&lt;br /&gt;$frmMain.Controls.Add($statusStrip)&lt;br /&gt;$frmMain.Controls.Add($MainMenu)&lt;br /&gt;$frmMain.MainMenuStrip = $mainMenu&lt;br /&gt;$FrmMain.Name = "frmMain"&lt;br /&gt;$FrmMain.Text = "/\/\o\/\/ PowerShell WMI Browser"&lt;br /&gt;$mainMenu.ResumeLayout($false)&lt;br /&gt;$mainMenu.PerformLayout()&lt;br /&gt;$MainMenu.ResumeLayout($false)&lt;br /&gt;$MainMenu.PerformLayout()&lt;br /&gt;$splitContainer1.Panel1.ResumeLayout($false)&lt;br /&gt;$splitContainer1.Panel2.ResumeLayout($false)&lt;br /&gt;$splitContainer1.ResumeLayout($false)&lt;br /&gt;$splitContainer2.Panel1.ResumeLayout($false)&lt;br /&gt;$splitContainer2.Panel2.ResumeLayout($false)&lt;br /&gt;$splitContainer2.ResumeLayout($false)&lt;br /&gt;$grpComputer.ResumeLayout($false)&lt;br /&gt;$grpComputer.PerformLayout()&lt;br /&gt;$grpNameSpaces.ResumeLayout($false)&lt;br /&gt;$grpClasses.ResumeLayout($false)&lt;br /&gt;$splitContainer3.Panel1.ResumeLayout($false)&lt;br /&gt;$splitContainer3.Panel2.ResumeLayout($false)&lt;br /&gt;$splitContainer3.ResumeLayout($false)&lt;br /&gt;$grpClass.ResumeLayout($false)&lt;br /&gt;$grpClass.PerformLayout()&lt;br /&gt;$grpStatus.ResumeLayout($false)&lt;br /&gt;$grpStatus.PerformLayout()&lt;br /&gt;$grpInstances.ResumeLayout($false)&lt;br /&gt;$TabControl.ResumeLayout($false)&lt;br /&gt;$tabPage1.ResumeLayout($false)&lt;br /&gt;$tabInstances.ResumeLayout($false)&lt;br /&gt;$frmMain.ResumeLayout($false)&lt;br /&gt;$FrmMain.PerformLayout()&lt;br /&gt;&lt;br /&gt;$status = new-object System.Windows.Forms.ToolStripStatusLabel&lt;br /&gt;$status.BorderStyle = 'SunkenInner'&lt;br /&gt;$status.BorderSides = 'All'&lt;br /&gt;$status.Text = "Not Connected"&lt;br /&gt;[void]$statusStrip.Items.add($status)&lt;br /&gt;$slMessage = new-object System.Windows.Forms.ToolStripStatusLabel&lt;br /&gt;$slMessage.BorderStyle = 'SunkenInner'&lt;br /&gt;$slMessage.BorderSides = 'All'&lt;br /&gt;$slMessage.Text = ""&lt;br /&gt;[void]$statusStrip.Items.add($slMessage)&lt;br /&gt;#endregion frmMain&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region Helper Functions&lt;br /&gt;&lt;br /&gt;Function out-PropertyGrid { &lt;br /&gt;  Param ($Object,[switch]$noBase,[Switch]$array) &lt;br /&gt;&lt;br /&gt;  $PsObject = $null &lt;br /&gt;  if ($object) { &lt;br /&gt;      $PsObject = $object &lt;br /&gt;  }Else{ &lt;br /&gt;     if ($Array.IsPresent) { &lt;br /&gt;         $PsObject = @() &lt;br /&gt;         $input |ForEach-Object {$PsObject += $_} &lt;br /&gt;     }Else{ &lt;br /&gt;         $input |ForEach-Object {$PsObject = $_} &lt;br /&gt;     } &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;  if ($PsObject){ &lt;br /&gt;      $form = new-object Windows.Forms.Form  &lt;br /&gt;      $form.Size = new-object Drawing.Size @(600,600)  &lt;br /&gt;      $PG = new-object Windows.Forms.PropertyGrid  &lt;br /&gt;      $PG.Dock = 'Fill'  &lt;br /&gt;      $form.text = "$psObject"  &lt;br /&gt;&lt;br /&gt;      if ($noBase.IsPresent) {"no"; &lt;br /&gt;          $PG.selectedobject = $psObject  &lt;br /&gt;      }Else{ &lt;br /&gt;          $PG.selectedobject = $psObject.PsObject.baseobject  &lt;br /&gt;      }  &lt;br /&gt;      $form.Controls.Add($PG)  &lt;br /&gt;      $Form.Add_Shown({$form.Activate()})   &lt;br /&gt;      $form.showdialog() &lt;br /&gt;  } &lt;br /&gt;&lt;br /&gt;} #Function out-PropertyGrid&lt;br /&gt;&lt;br /&gt;Function Update-Status {&lt;br /&gt;  $script:computer = $Script:NameSpaces.__SERVER&lt;br /&gt;  $txtComputer.Text = $script:computer&lt;br /&gt;  $lblPath.Text = $Script:NameSpaces.__PATH                                &lt;br /&gt;  $lblProperties.Text = $Script:NameSpaces.__PROPERTY_COUNT                                &lt;br /&gt;  $lblClass.Text = $Script:NameSpaces.__RELPATH                                    &lt;br /&gt;  $lblServer.Text = $script:Computer&lt;br /&gt;  $lblnamespace.Text = $Script:NameSpaces.__NAMESPACE&lt;br /&gt;} # Function Update-Status&lt;br /&gt;&lt;br /&gt;Function Set-StatusBar ([Drawing.Color]$Color,$Text) {&lt;br /&gt;  $status.BackColor = $color&lt;br /&gt;  $status.Text = $text&lt;br /&gt;  $statusstrip.Update()   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#endregion Helper Functions&lt;br /&gt;&lt;br /&gt;#################### Main ###############################&lt;br /&gt;&lt;br /&gt;#region Global Variables&lt;br /&gt;&lt;br /&gt;$FontBold = new-object System.Drawing.Font("Microsoft Sans Serif",8,[Drawing.FontStyle]'Bold' )&lt;br /&gt;$fontNormal = new-object System.Drawing.Font("Microsoft Sans Serif",8,[Drawing.FontStyle]'Regular')&lt;br /&gt;$fontCode = new-object System.Drawing.Font("Lucida Console",8 )&lt;br /&gt;&lt;br /&gt;# Create Script Variables for WMI Connection&lt;br /&gt;&lt;br /&gt;$Script:ConnectionOptions = new-object System.Management.ConnectionOptions&lt;br /&gt;$script:WmiConnection = new-object system.management.ManagementScope&lt;br /&gt;$script:WmiClass = [wmiClass]''&lt;br /&gt;&lt;br /&gt;# NamespaceCaching , Make HashTable to store Treeview Items&lt;br /&gt;&lt;br /&gt;$script:nsc = @{}&lt;br /&gt;&lt;br /&gt;# Make DataSet for secondary Cache&lt;br /&gt;&lt;br /&gt;$Script:dsCache = new-object data.dataset&lt;br /&gt;&lt;br /&gt;if (-not ${Global:WmiExplorer.dtClasses}){&lt;br /&gt;    ${Global:WmiExplorer.dtClasses} = new-object data.datatable&lt;br /&gt;    [VOID](${Global:WmiExplorer.dtClasses}.Columns.add('Path',[string]))&lt;br /&gt;    [VOID](${Global:WmiExplorer.dtClasses}.Columns.add('Namespace',[string]))&lt;br /&gt;    [VOID](${Global:WmiExplorer.dtClasses}.Columns.add('name',[string]))&lt;br /&gt;    [VOID](${Global:WmiExplorer.dtClasses}.Columns.add('Description',[string]))&lt;br /&gt;    ${Global:WmiExplorer.dtClasses}.tablename = 'Classes'&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region Control Handlers&lt;br /&gt;&lt;br /&gt;# Add Delegate Scripts to finetune the WMI Connection objects to the events of the controls &lt;br /&gt;&lt;br /&gt;$slMessage.DoubleClickEnabled = $true&lt;br /&gt;$slMessage.add_DoubleClick({$error[0] | out-PropertyGrid})&lt;br /&gt;$lblNameSpace.add_DoubleClick({$script:WmiConnection | out-PropertyGrid})&lt;br /&gt;$lblserver.add_DoubleClick({$Script:ConnectionOptions | out-PropertyGrid})&lt;br /&gt;$lblClass.add_DoubleClick({$script:WmiClass | out-PropertyGrid})&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$btnConnect.add_click({ConnectToComputer})&lt;br /&gt;$TVNameSpaces.add_DoubleClick({GetClassesFromNameSpace})&lt;br /&gt;$lvClasses.Add_DoubleClick({GetWmiClass})&lt;br /&gt;$btnInstances.add_Click({GetWmiInstances})&lt;br /&gt;$dgInstances.add_DoubleClick({OutputWmiInstance})&lt;br /&gt;$lbMethods.Add_DoubleClick({GetWmiMethod})&lt;br /&gt;&lt;br /&gt;$clbProperties.add_Click({&lt;br /&gt;  trap{Continue}&lt;br /&gt;  $DGInstances.Columns.Item(($this.SelectedItem)).visible = -not $clbProperties.GetItemChecked($this.SelectedIndex)&lt;br /&gt;&lt;br /&gt;})&lt;br /&gt;&lt;br /&gt;$TVNameSpaces.add_AfterSelect({&lt;br /&gt;&lt;br /&gt;    if ($this.SelectedNode.name -ne $Computer){&lt;br /&gt;        $lblPath.Text = "$($script:WmiConnection.path.path.replace('\root',''))\$($this.SelectedNode.Text)"  &lt;br /&gt;    }&lt;br /&gt; &lt;br /&gt;    $lblProperties.Text = $Script:NameSpaces.__PROPERTY_COUNT                                &lt;br /&gt;    $lblServer.Text = $Script:NameSpaces.__SERVER&lt;br /&gt;    $lblnamespace.Text = $this.SelectedNode.Text&lt;br /&gt;&lt;br /&gt;    if ($this.SelectedNode.tag -eq "NotEnumerated") {&lt;br /&gt;&lt;br /&gt;        (new-object system.management.managementClass(&lt;br /&gt;                "$($script:WmiConnection.path.path.replace('\root',''))\$($this.SelectedNode.Text):__NAMESPACE")&lt;br /&gt;        ).PSbase.getInstances() | Sort-Object $_.name | &lt;br /&gt;        ForEach-Object {&lt;br /&gt;          $TN = new-object System.Windows.Forms.TreeNode&lt;br /&gt;          $TN.Name = $_.name&lt;br /&gt;          $TN.Text = ("{0}\{1}" -f $_.__NameSpace,$_.name)&lt;br /&gt;          $TN.tag = "NotEnumerated"&lt;br /&gt;          $this.SelectedNode.Nodes.Add($TN)&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        # Set tag to show this node is already enumerated&lt;br /&gt;        $this.SelectedNode.tag = "Enumerated"&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    $mp = ("{0}\{1}" -f $script:WmiConnection.path.path.replace('\root','') , $this.SelectedNode.text)&lt;br /&gt;    $lvClasses.Items.Clear()&lt;br /&gt;&lt;br /&gt;    if($Script:nsc.Item("$mp")){ # in Namespace cache&lt;br /&gt;        $lvClasses.BeginUpdate()&lt;br /&gt;        $lvClasses.Items.AddRange(($nsc.Item( "$mp")))&lt;br /&gt;        $status.Text = "$mp : $($lvClasses.Items.count) Classes"&lt;br /&gt;        $lvClasses.EndUpdate()&lt;br /&gt;        $lblClasses.Text = $lvClasses.Items.count&lt;br /&gt;    } else {&lt;br /&gt;        if(${Global:WmiExplorer.dtClasses}.Select("Namespace='$mp'")){ # In DataTable Cache&lt;br /&gt;            $status.BackColor = 'beige'&lt;br /&gt;            $status.Text = "$mp : Classes in Cache, DoubleClick NameSpace to retrieve Classes"&lt;br /&gt;        } else {&lt;br /&gt;            $status.BackColor = 'LightSalmon'&lt;br /&gt;            $status.Text = "$mp : Classes not recieved yet, DoubleClick NameSpace to retrieve Classes"&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}) # $TVNameSpaces.add_AfterSelect&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region Processing Functions&lt;br /&gt;&lt;br /&gt;#region ConnectToComputer&lt;br /&gt;# Connect to Computer&lt;br /&gt;Function ConnectToComputer {&lt;br /&gt;    &lt;br /&gt;    $computer = $txtComputer.Text &lt;br /&gt;    Set-StatusBar 'beige' "Connecting to : $computer"&lt;br /&gt;    &lt;br /&gt;    # Try to Connect to Computer&lt;br /&gt;&lt;br /&gt;    &amp;{&lt;br /&gt;        trap {&lt;br /&gt;            Set-StatusBar 'Red' "Connecting to : $computer Failed"&lt;br /&gt;            $slMessage.Text = "$_.message"&lt;br /&gt;            Continue&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &amp;{&lt;br /&gt;            # Connect to WMI root&lt;br /&gt;            &lt;br /&gt;            $script:WmiConnection.path = "\\$computer\root"&lt;br /&gt;            $script:WmiConnection.options = $Script:ConnectionOptions&lt;br /&gt;            $script:WmiConnection.Connect()&lt;br /&gt;            &lt;br /&gt;            # Get Avaiable NameSpaces&lt;br /&gt;    &lt;br /&gt;            $opt = new-object system.management.ObjectGetOptions&lt;br /&gt;            $opt.UseAmendedQualifiers = $true&lt;br /&gt;&lt;br /&gt;            $Script:NameSpaces = new-object System.Management.ManagementClass(&lt;br /&gt;                $script:WmiConnection,[Management.ManagementPath]'__Namespace',$opt&lt;br /&gt;            )&lt;br /&gt;&lt;br /&gt;            Update-Status&lt;br /&gt;&lt;br /&gt;            # Create a TreeNode for the WMI Root found&lt;br /&gt;&lt;br /&gt;            $computer = $txtComputer.Text &lt;br /&gt;            $TNRoot = new-object System.Windows.Forms.TreeNode("Root")&lt;br /&gt;            $TNRoot.Name = $Computer&lt;br /&gt;            $TNRoot.Text = $lblPath.Text&lt;br /&gt;            $TNRoot.tag = "Enumerated"&lt;br /&gt;            &lt;br /&gt;            # Create NameSpaces List&lt;br /&gt;            &lt;br /&gt;            $Script:NameSpaces.PSbase.getInstances() | Sort-Object $_.name | &lt;br /&gt;            ForEach-Object {&lt;br /&gt;                $TN = new-object System.Windows.Forms.TreeNode&lt;br /&gt;                $TN.Name = $_.name&lt;br /&gt;                $TN.Text = ("{0}\{1}" -f $_.__NameSpace,$_.name)&lt;br /&gt;                $TN.tag = "NotEnumerated"&lt;br /&gt;                [void]$TNRoot.Nodes.Add($TN)&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            # Add to Treeview&lt;br /&gt;            $tvNameSpaces.Nodes.clear()&lt;br /&gt;            [void]$TVNamespaces.Nodes.Add($TNRoot)&lt;br /&gt;            &lt;br /&gt;            # update StatusBar&lt;br /&gt;&lt;br /&gt;            Set-StatusBar 'YellowGreen' "Connected to : $computer"&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;} # ConnectToComputer&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region GetClasseFromNameSpace&lt;br /&gt;&lt;br /&gt;# Get Classes on DoubleClick on Namespace in TreeView&lt;br /&gt;&lt;br /&gt;Function GetClassesFromNameSpace {&lt;br /&gt;&lt;br /&gt;  if ($this.SelectedNode.name -ne $script:computer){&lt;br /&gt;    # Connect to WMI Namespace &lt;br /&gt;        &lt;br /&gt;    $mp = ("{0}\{1}" -f $script:WmiConnection.path.path.replace('\root','') , $this.SelectedNode.text)&lt;br /&gt;&lt;br /&gt;      # Update Status&lt;br /&gt;        &lt;br /&gt;      $lvClasses.BeginUpdate()&lt;br /&gt;      $lvClasses.Items.Clear()&lt;br /&gt;      $i = 0 ;$lblClasses.Text = $i; $lblclasses.Update()&lt;br /&gt;&lt;br /&gt;    if($Script:nsc.Item("$mp")){ #in Namespace Cache, so just attach to ListView again&lt;br /&gt;        &lt;br /&gt;        $lvClasses.Items.AddRange(($nsc.Item( "$mp")))&lt;br /&gt;        # $lvClasses.Items.AddRange(([System.Windows.Forms.ListViewItem[]]($nsc.Item( "$mp") | &lt;br /&gt;            # where {$_.name -like 'win32_*'})))&lt;br /&gt;        $status.Text = "$mp : $($lvClasses.Items.count) Classes"&lt;br /&gt;        $i = $lvClasses.Items.count&lt;br /&gt;    } else { #Not In NameSpace Cache&lt;br /&gt;&lt;br /&gt;      if(${Global:WmiExplorer.dtClasses}.Select("Namespace = '$mp'")){ # In DataTable cache, so get from there&lt;br /&gt;&lt;br /&gt;        $status.Text = "loading cache from $($this.SelectedNode.name)"&lt;br /&gt;        $statusStrip.Update()&lt;br /&gt;&lt;br /&gt;        ${Global:WmiExplorer.dtClasses}.Select("Namespace = '$mp'") | &lt;br /&gt;        foreach {&lt;br /&gt;            $i++&lt;br /&gt;            $LI = New-Object system.Windows.Forms.ListViewItem &lt;br /&gt;            $li.Name = $_.name&lt;br /&gt;            $li.Text = $_.name&lt;br /&gt;            $li.SubItems.add($_.description)&lt;br /&gt;            $li.SubItems.add($_.path)&lt;br /&gt;            $li.ToolTipText = ($_.description)&lt;br /&gt;            $lvClasses.Items.add($li)&lt;br /&gt;            $status.Text = "$mp : $($lvClasses.Items.count) Classes"&lt;br /&gt;            $lblClasses.Text = $lvClasses.Items.count&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;      } else { # Not in any Cache , Load WMI Classes&lt;br /&gt;&lt;br /&gt;        Set-StatusBar 'Khaki' "Getting Classes from $($this.SelectedNode.name)"&lt;br /&gt;&lt;br /&gt;        $mc = new-object System.Management.ManagementClass($mp,$opt)&lt;br /&gt;        $eo = New-Object system.management.EnumerationOptions &lt;br /&gt;        $eo.EnumerateDeep = $true &lt;br /&gt;        $eo.UseAmendedQualifiers = $true&lt;br /&gt;&lt;br /&gt;        $Mc.psbase.GetSubclasses($eo) | &lt;br /&gt;        ForEach-Object  {&lt;br /&gt;            $i++ ; if ($i%10 -eq 0){$lblClasses.Text = $i;$lblclasses.Update() }&lt;br /&gt;            Trap{$script:Description = "[Empty]";continue}&lt;br /&gt;            $script:description = $_.psbase.Qualifiers.item("description").value&lt;br /&gt;            ${Global:WmiExplorer.dtClasses}.Rows.Add($_.__path,$mp,$_.name,$description)&lt;br /&gt;            $LI = New-Object system.Windows.Forms.ListViewItem &lt;br /&gt;            $li.Name = $_.name&lt;br /&gt;            $li.Text = $_.name&lt;br /&gt;            $li.SubItems.add($description)&lt;br /&gt;            $li.SubItems.add($_.__path)&lt;br /&gt;            $li.ToolTipText = $description&lt;br /&gt;            $lvClasses.Items.add($li)&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        $status.Text = "Ready, Retrieved $i Classes from $mp"&lt;br /&gt;&lt;br /&gt;      } #if(${Global:WmiExplorer.dtClasses}.Select("Namespace = '$mp'"))&lt;br /&gt;&lt;br /&gt;      $lvClasses.Sorting = 'Ascending'&lt;br /&gt;      $lvClasses.Sort()&lt;br /&gt;      $script:nsc.Add($mp,(([System.Windows.Forms.ListViewItem[]]($lvClasses.Items)).clone()))&lt;br /&gt;      &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    $lvClasses.EndUpdate()&lt;br /&gt;    $this.selectedNode.BackColor = 'AliceBlue'&lt;br /&gt;    $lblClasses.Text = $i;$lblclasses.Update()&lt;br /&gt;    $status.BackColor = 'YellowGreen'&lt;br /&gt;    $statusStrip.Update()&lt;br /&gt;&lt;br /&gt;  } #if($Script:nsc.Item("$mp"))&lt;br /&gt;    &lt;br /&gt;} # GetClassesFromNameSpace&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region GetWmiClass&lt;br /&gt;Function GetWmiClass {&lt;br /&gt;&lt;br /&gt;    # Update Status &lt;br /&gt;    &lt;br /&gt;    $status.Text = "Retrieving Class"&lt;br /&gt;    $status.BackColor = 'Khaki'&lt;br /&gt;    $statusstrip.Update()&lt;br /&gt;    $lblClass.Text =  $this.SelectedItems |ForEach-Object {$_.name}&lt;br /&gt;    $lblPath.text = $this.SelectedItems |ForEach-Object {"$($_.SubItems[2].text)"}&lt;br /&gt;    &lt;br /&gt;    # Add HelpText&lt;br /&gt;    &lt;br /&gt;    $rtbHelp.Text = ""&lt;br /&gt;    $rtbHelp.selectionFont  = $fontBold&lt;br /&gt;    $rtbHelp.appendtext("$($lblClass.Text)`n`n")&lt;br /&gt;    $rtbHelp.selectionFont  = $fontNormal&lt;br /&gt;    $rtbHelp.appendtext(($this.SelectedItems |ForEach-Object {"$($_.SubItems[1].text)"}))&lt;br /&gt;    $rtbHelp.appendtext("`n")&lt;br /&gt;    $path = $lblPath.text&lt;br /&gt;    &lt;br /&gt;    $opt = new-object system.management.ObjectGetOptions &lt;br /&gt;    $opt.UseAmendedQualifiers = $true &lt;br /&gt;    &lt;br /&gt;    $script:WmiClass = new-object system.management.ManagementClass($path,$opt) &lt;br /&gt;&lt;br /&gt;    # Add Property Help&lt;br /&gt;    &lt;br /&gt;    $rtbHelp.selectionFont  = $fontBold&lt;br /&gt;    $rtbHelp.appendtext("`n$($lblClass.Text) Properties :`n`n")&lt;br /&gt;    $rtbHelp.selectionFont  = $fontNormal&lt;br /&gt;    &lt;br /&gt;    $i = 0 ;$lblProperties.Text = $i; $lblProperties.Update()&lt;br /&gt;    $clbproperties.Items.Clear()&lt;br /&gt;    $clbProperties.Items.add('WmiPath',$False)&lt;br /&gt;            &lt;br /&gt;    $script:WmiClass.psbase.properties | &lt;br /&gt;    ForEach-Object { &lt;br /&gt;        $i++ ;$lblProperties.Text = $i; $lblProperties.Update()&lt;br /&gt;        $clbProperties.Items.add($_.name,$true)&lt;br /&gt;        $rtbHelp.selectionFont  = $fontBold&lt;br /&gt;        $rtbHelp.appendtext("$($_.Name) :`n" )&lt;br /&gt;        &amp;{&lt;br /&gt;            Trap {$rtbHelp.appendtext("[Empty]");Continue}&lt;br /&gt;            $rtbHelp.appendtext($_.psbase.Qualifiers["description"].value)&lt;br /&gt;        }&lt;br /&gt;        $rtbHelp.appendtext("`n`n")&lt;br /&gt;    } # ForEach-Object&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;    # Create Method Help &lt;br /&gt;&lt;br /&gt;    $rtbHelp.selectionFont  = $fontBold&lt;br /&gt;    $rtbHelp.appendtext( "$($lblClass.Text) Methods :`n`n" )&lt;br /&gt;&lt;br /&gt;    $i = 0 ;$lblMethods.Text = $i; $lblMethods.Update()&lt;br /&gt;    $lbmethods.Items.Clear()&lt;br /&gt;    &lt;br /&gt;    $script:WmiClass.psbase.Methods | &lt;br /&gt;    ForEach-Object { &lt;br /&gt;        $i++ ;$lblMethods.Text = $i; $lblMethods.Update()&lt;br /&gt;        $lbMethods.Items.add($_.name)&lt;br /&gt;        $rtbHelp.selectionFont  = $fontBold&lt;br /&gt;        $rtbHelp.appendtext("$($_.Name) :`n")&lt;br /&gt;        &amp;{&lt;br /&gt;            Trap {$rtbHelp.Text += "[Empty]"}&lt;br /&gt;            $rtbHelp.appendtext($_.Qualifiers["description"].value)&lt;br /&gt;        }&lt;br /&gt;        $rtbHelp.appendtext("`n`n" )&lt;br /&gt;    } #ForEach-Object&lt;br /&gt;     &lt;br /&gt;    $tabControl.SelectedTab = $tabpage1&lt;br /&gt;    $status.Text = "Retrieved Class"&lt;br /&gt;    $status.BackColor = 'YellowGreen'&lt;br /&gt;    $statusstrip.Update()&lt;br /&gt;&lt;br /&gt;} # GetWmiClass&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region GetWmiInstances&lt;br /&gt;&lt;br /&gt;Function GetWmiInstances {&lt;br /&gt;&lt;br /&gt;    $status.Text = "Getting Instances for $($lblClass.text)"&lt;br /&gt;    $status.BackColor = 'Red'&lt;br /&gt;    $statusstrip.Update()&lt;br /&gt;&lt;br /&gt;    $tabControl.SelectedTab = $tabInstances&lt;br /&gt;&lt;br /&gt;    $MC = new-object system.management.ManagementClass $lblPath.text&lt;br /&gt;    $MOC = $MC.PSbase.getInstances() &lt;br /&gt;    &lt;br /&gt;    #trap{"Class Not found";break} &lt;br /&gt;    &lt;br /&gt;    $DT =  new-object  System.Data.DataTable &lt;br /&gt;    $DT.TableName = $lblClass.text&lt;br /&gt;    $Col =  new-object System.Data.DataColumn&lt;br /&gt;    $Col.ColumnName = "WmiPath"&lt;br /&gt;    $DT.Columns.Add($Col)&lt;br /&gt;&lt;br /&gt;    $i = 0&lt;br /&gt;    $j = 0 ;$lblInstances.Text = $j; $lblInstances.Update()&lt;br /&gt;    $MOC | ForEach-Object {&lt;br /&gt;        $j++ ;$lblInstances.Text = $j; $lblInstances.Update()&lt;br /&gt;        $MO = $_ &lt;br /&gt;        &lt;br /&gt;        # Make a DataRow &lt;br /&gt;        $DR = $DT.NewRow() &lt;br /&gt;        $Col =  new-object System.Data.DataColumn&lt;br /&gt;        &lt;br /&gt;        $DR.Item("WmiPath") = $mo.__PATH&lt;br /&gt;&lt;br /&gt;        $MO.psbase.properties | &lt;br /&gt;        ForEach-Object { &lt;br /&gt;            $prop = $_ &lt;br /&gt;            If ($i -eq 0)  { &lt;br /&gt;    &lt;br /&gt;                # Only On First Row make The Headers &lt;br /&gt;                &lt;br /&gt;                $Col =  new-object System.Data.DataColumn &lt;br /&gt;                $Col.ColumnName = $prop.Name.ToString() &lt;br /&gt;                $prop.psbase.Qualifiers | ForEach-Object { &lt;br /&gt;                    If ($_.Name.ToLower() -eq "key") { &lt;br /&gt;                        $Col.ColumnName = $Col.ColumnName + "*" &lt;br /&gt;                    } &lt;br /&gt;                } &lt;br /&gt;                $DT.Columns.Add($Col)  &lt;br /&gt;            } &lt;br /&gt;            &lt;br /&gt;            # fill dataRow  &lt;br /&gt;            &lt;br /&gt;            if ($prop.value -eq $null) { &lt;br /&gt;                $DR.Item($prop.Name) = "[empty]" &lt;br /&gt;            } &lt;br /&gt;            ElseIf ($prop.IsArray) { &lt;br /&gt;                                $ofs = ";"&lt;br /&gt;                $DR.Item($prop.Name) ="$($prop.value)" &lt;br /&gt;                                $ofs = $null&lt;br /&gt;            } &lt;br /&gt;            Else { &lt;br /&gt;                $DR.Item($prop.Name) = $prop.value &lt;br /&gt;                #Item is Key try again with * &lt;br /&gt;                trap{$DR.Item("$($prop.Name)*") = $prop.Value.tostring();continue} &lt;br /&gt;            } &lt;br /&gt;&lt;br /&gt;        } &lt;br /&gt;&lt;br /&gt;        # Add the row to the DataTable &lt;br /&gt;&lt;br /&gt;        $DT.Rows.Add($DR) &lt;br /&gt;        $i += 1 &lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    $DGInstances.DataSource = $DT.psObject.baseobject &lt;br /&gt;        $DGInstances.Columns.Item('WmiPath').visible =  $clbProperties.GetItemChecked(0)  &lt;br /&gt;    $status.Text = "Retrieved $j Instances"&lt;br /&gt;    $status.BackColor = 'YellowGreen'&lt;br /&gt;    $statusstrip.Update()&lt;br /&gt;&lt;br /&gt;} # GetWmiInstances&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#region OutputWmiInstance&lt;br /&gt;Function OutputWmiInstance {&lt;br /&gt;    if ( $this.SelectedRows.count -eq 1 ) {&lt;br /&gt;        if (-not $Script:InstanceTab) {$Script:InstanceTab = new-object System.Windows.Forms.TabPage&lt;br /&gt;            $Script:InstanceTab.Name = 'Instance'&lt;br /&gt;            $Script:rtbInstance = new-object System.Windows.Forms.RichTextBox&lt;br /&gt;            $Script:rtbInstance.Dock = [System.Windows.Forms.DockStyle]::Fill&lt;br /&gt;            $Script:rtbInstance.Font = $fontCode&lt;br /&gt;            $Script:rtbInstance.DetectUrls = $false&lt;br /&gt;            $Script:InstanceTab.controls.add($Script:rtbInstance)&lt;br /&gt;            $TabControl.TabPages.add($Script:InstanceTab)&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        $Script:InstanceTab.Text = "Instance = $($this.SelectedRows | ForEach-Object {$_.DataboundItem.wmiPath.split(':')[1]})"&lt;br /&gt;        $Script:rtbInstance.Text = $this.SelectedRows |ForEach-Object {$_.DataboundItem |Format-List  * | out-String -width 1000 }&lt;br /&gt;        $tabControl.SelectedTab = $Script:InstanceTab&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}  # OutputWmiInstance&lt;br /&gt;&lt;br /&gt;#endregion &lt;br /&gt;&lt;br /&gt;#region GetWmiMethod&lt;br /&gt;&lt;br /&gt;Function GetWmiMethod {&lt;br /&gt;&lt;br /&gt;    $WMIMethod = $this.SelectedItem&lt;br /&gt;    $WmiClassName = $script:WmiClass.__Class&lt;br /&gt;&lt;br /&gt;    $tabControl.SelectedTab = $tabMethods&lt;br /&gt;    #$rtbmethods.ForeColor = 'Green'&lt;br /&gt;    $rtbMethods.Font  = new-object System.Drawing.Font("Microsoft Sans Serif",8)&lt;br /&gt;    $rtbMethods.text = ""&lt;br /&gt;&lt;br /&gt;    $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;    &lt;br /&gt;    $rtbMethods.AppendText(("{1} Method : {0} `n" -f $this.SelectedItem , $script:WmiClass.__Class))&lt;br /&gt;    $rtbMethods.AppendText("`n")&lt;br /&gt;&lt;br /&gt;    $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;    $rtbMethods.AppendText("OverloadDefinitions:`n")&lt;br /&gt;    $rtbMethods.AppendText("$($script:WmiClass.$WMIMethod.OverloadDefinitions)`n`n")&lt;br /&gt;&lt;br /&gt;    $Qualifiers=@() &lt;br /&gt;    $script:WmiClass.psbase.Methods[($this.SelectedItem)].Qualifiers | ForEach-Object {$qualifiers += $_.name} &lt;br /&gt;    #$rtbMethods.AppendText( "$qualifiers`n" )&lt;br /&gt;    $static = $Qualifiers -Contains "Static"  &lt;br /&gt;&lt;br /&gt;    $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;    $rtbMethods.AppendText( "Static : $static`n" )&lt;br /&gt;&lt;br /&gt;    If ($static) {  &lt;br /&gt;&lt;br /&gt;         $rtbMethods.AppendText( "A Static Method does not an Instance to act upon`n`n" )&lt;br /&gt;         $rtbMethods.AppendText("`n")&lt;br /&gt;    &lt;br /&gt;         $rtbMethods.SelectionColor = 'Green'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;         $rtbMethods.AppendText("# Sample Of Connecting to a WMI Class`n`n")&lt;br /&gt;         $rtbMethods.SelectionColor = 'Black'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;&lt;br /&gt;         $SB = new-Object text.stringbuilder&lt;br /&gt;         $SB = $SB.Append('$Computer = "') ; $SB = $SB.AppendLine(".`"") &lt;br /&gt;         $SB = $SB.Append('$Class = "') ; $SB = $SB.AppendLine("$WmiClassName`"")   &lt;br /&gt;         $SB = $SB.Append('$Method = "') ; $SB = $SB.AppendLine("$WmiMethod`"`n")&lt;br /&gt;         $SB = $SB.AppendLine('$MC = [WmiClass]"\\$Computer\' + "$($script:WmiClass.__NAMESPACE)" + ':$Class"')   &lt;br /&gt;         #$SB = $SB.Append('$MP.Server = "') ; $SB = $SB.AppendLine("$($MP.Server)`"")   &lt;br /&gt;         #$SB = $SB.Append('$MP.NamespacePath = "') ; $SB = $SB.AppendLine("$($script:WmiClass.__NAMESPACE)`"")   &lt;br /&gt;         #$SB = $SB.AppendLine('$MP.ClassName = $Class')&lt;br /&gt;         $SB = $SB.AppendLine("`n")    &lt;br /&gt;         #$SB = $SB.AppendLine('$MC = new-object system.management.ManagementClass($MP)')   &lt;br /&gt;         $rtbMethods.AppendText(($sb.tostring()))&lt;br /&gt;         $rtbMethods.SelectionColor = 'Green'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;         $rtbMethods.AppendText("# Getting information about the methods`n`n")&lt;br /&gt;         $rtbMethods.SelectionColor = 'Black'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;         $rtbMethods.AppendText(&lt;br /&gt;             '$mc' + "`n" +&lt;br /&gt;             '$mc | Get-Member -membertype Method' + "`n" +&lt;br /&gt;             "`$mc.$WmiMethod"&lt;br /&gt;         )&lt;br /&gt;&lt;br /&gt;    } Else {&lt;br /&gt;&lt;br /&gt;         $rtbMethods.AppendText( "This is a non Static Method and needs an Instance to act upon`n`n" )&lt;br /&gt;         $rtbMethods.AppendText( "The Example given will use the Key Properties to Connect to a WMI Instance : `n`n" )&lt;br /&gt;         $rtbMethods.SelectionColor = 'Green'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;         $rtbMethods.AppendText("# Example Of Connecting to an Instance`n`n")&lt;br /&gt;    &lt;br /&gt;         $rtbMethods.SelectionColor = 'Black'&lt;br /&gt;         $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;         $SB = new-Object text.stringbuilder&lt;br /&gt;         $SB = $SB.AppendLine('$Computer = "."') &lt;br /&gt;         $SB = $SB.Append('$Class = "') ; $SB = $SB.AppendLine("$WmiClassName.`"")   &lt;br /&gt;         $SB = $SB.Append('$Method = "') ; $SB = $SB.AppendLine("$WMIMethod`"")&lt;br /&gt;         $SB = $SB.AppendLine("`n# $WmiClassName. Key Properties :")   &lt;br /&gt;&lt;br /&gt;         $Filter = ""   &lt;br /&gt;         $script:WmiClass.psbase.Properties | ForEach-Object {   &lt;br /&gt;           $Q = @() &lt;br /&gt;           $_.psbase.Qualifiers | ForEach-Object {$Q += $_.name}  &lt;br /&gt;&lt;br /&gt;           $key = $Q -Contains "key"  &lt;br /&gt;           If ($key) {   &lt;br /&gt;             $CIMType = $_.psbase.Qualifiers["Cimtype"].Value   &lt;br /&gt;             $SB = $SB.AppendLine("`$$($_.Name) = [$CIMType]")   &lt;br /&gt;             $Filter += "$($_.name) = `'`$$($_.name)`'"    &lt;br /&gt;           }   &lt;br /&gt;         }   &lt;br /&gt;&lt;br /&gt;         $SB = $SB.Append("`n" + '$filter=');$SB = $SB.AppendLine("`"$filter`"")   &lt;br /&gt;         $SB = $SB.AppendLine('$MC = get-WMIObject $class -computer $Computer -Namespace "' + &lt;br /&gt;             "$($script:WmiClass.__NAMESPACE)" + '" -filter $filter' + "`n")&lt;br /&gt;         $SB = $SB.AppendLine('# $MC = [Wmi]"\\$Computer\Root\CimV2:$Class.$filter"')  &lt;br /&gt;         $rtbMethods.AppendText(($sb.tostring()))&lt;br /&gt;&lt;br /&gt;    }  &lt;br /&gt;&lt;br /&gt;    $SB = $SB.AppendLine('$InParams = $mc.psbase.GetMethodParameters($Method)') &lt;br /&gt;    $SB = $SB.AppendLine("`n") &lt;br /&gt;&lt;br /&gt;    # output Method Parameter Help&lt;br /&gt;&lt;br /&gt;    $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;    $rtbMethods.AppendText("`n`n$WmiClassName. $WMIMethod Method :`n`n")  &lt;br /&gt;&lt;br /&gt;    $q = $script:WmiClass.PSBase.Methods[$WMIMethod].Qualifiers | foreach {$_.name} &lt;br /&gt;&lt;br /&gt;    if ($q -contains "Description") {&lt;br /&gt;         $rtbMethods.AppendText(($script:WmiClass.psbase.Methods[$WMIMethod].psbase.Qualifiers["Description"].Value))&lt;br /&gt;    }  &lt;br /&gt;  &lt;br /&gt;    $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;    $rtbMethods.AppendText("`n`n$WMIMethod Parameters :`n")  &lt;br /&gt;&lt;br /&gt;  # get the Parameters  &lt;br /&gt;   &lt;br /&gt;  $inParam = $script:WmiClass.psbase.GetMethodParameters($WmiMethod) &lt;br /&gt;&lt;br /&gt;  $HasParams = $False  &lt;br /&gt;  if ($true) {  &lt;br /&gt;    trap{$rtbMethods.AppendText('[None]') ;continue}   &lt;br /&gt;&lt;br /&gt;    $inParam.PSBase.Properties | foreach {  &lt;br /&gt;      $Q = $_.Qualifiers | foreach {$_.name} &lt;br /&gt;&lt;br /&gt;      # if Optional Qualifier is not present then Parameter is Mandatory  &lt;br /&gt;      $Optional = $q -contains "Optional" &lt;br /&gt;&lt;br /&gt;      $CIMType = $_.Qualifiers["Cimtype"].Value  &lt;br /&gt;      $rtbMethods.AppendText("`nName = $($_.Name) `nType = $CIMType `nOptional = $Optional") &lt;br /&gt;&lt;br /&gt;      # write Parameters to Example script  &lt;br /&gt;&lt;br /&gt;      if ($Optional -eq $TRUE) {$SB = $SB.Append('# ')}  &lt;br /&gt;      $SB = $SB.Append('$InParams.');$SB = $SB.Append("$($_.Name) = ");$SB = $SB.AppendLine("[$CIMType]")  &lt;br /&gt;      if ($q -contains "Description") {$rtbMethods.AppendText($_.Qualifiers["Description"].Value)}&lt;br /&gt;      $HasParams = $true   &lt;br /&gt;    }  &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  # Create the Rest of the Script &lt;br /&gt;&lt;br /&gt;  $rtbMethods.selectionFont  = $fontBold&lt;br /&gt;  $rtbMethods.AppendText("`n`nTemplate Script :`n")  &lt;br /&gt;&lt;br /&gt;  # Call diferent Overload as Method has No Parameters  &lt;br /&gt;&lt;br /&gt;  If ($HasParams -eq $True) {  &lt;br /&gt;      $SB = $SB.AppendLine("`n`"Calling $WmiClassName. : $WMIMethod with Parameters :`"")  &lt;br /&gt;      $SB = $SB.AppendLine('$inparams.PSBase.properties | select name,Value | format-Table')  &lt;br /&gt;      $SB = $SB.AppendLine("`n" + '$R = $mc.PSBase.InvokeMethod($Method, $inParams, $Null)')  &lt;br /&gt;  }Else{  &lt;br /&gt;      $SB = $SB.AppendLine("`n`"Calling $WmiClassName. : $WMIMethod `"")  &lt;br /&gt;      $SB = $SB.AppendLine("`n" + '$R = $mc.PSBase.InvokeMethod($Method,$Null)')  &lt;br /&gt;  }  &lt;br /&gt;&lt;br /&gt;  $SB = $SB.AppendLine('"Result :"')  &lt;br /&gt;  $SB = $SB.AppendLine('$R | Format-list' + "`n`n") &lt;br /&gt;&lt;br /&gt;  # Write Header of the Sample Script :  &lt;br /&gt;  &lt;br /&gt;  $rtbMethods.SelectionColor = 'Green'&lt;br /&gt;  $rtbMethods.SelectionFont = $fontCode&lt;br /&gt;&lt;br /&gt;  $rtbMethods.AppendText(@"&lt;br /&gt;&lt;br /&gt;# $WmiClassName. $WMIMethod-Method Template Script"  &lt;br /&gt;# Created by PowerShell WmiExplorer &lt;br /&gt;# /\/\o\/\/ 2006 &lt;br /&gt;# www.ThePowerShellGuy.com&lt;br /&gt;#&lt;br /&gt;# Fill InParams values before Executing  &lt;br /&gt;# InParams that are Remarked (#) are Optional&lt;br /&gt;"@&lt;br /&gt;&lt;br /&gt;  )&lt;br /&gt;&lt;br /&gt;  $rtbMethods.SelectionColor = 'Black'&lt;br /&gt;  #$rtbMethods.SelectionFont = $fontCode&lt;br /&gt;  $rtbMethods.AppendText("`n`n" + $SB)&lt;br /&gt;&lt;br /&gt;  $rtbMethods.SelectionFont = new-object System.Drawing.Font("Lucida Console",6 )&lt;br /&gt;  $rtbMethods.AppendText("`n`n Generated by the PowerShell WMI Explorer  /\/\o\/\/ 2006" )&lt;br /&gt;        &lt;br /&gt;} # GetWmiMethod&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;#endregion&lt;br /&gt;&lt;br /&gt;# Show the Form&lt;br /&gt;&lt;br /&gt;$FrmMain.Add_Shown({$FrmMain.Activate()}) &lt;br /&gt;  &lt;br /&gt;trap {Write-Host $_ ;$status.Text = "unexpected error";$slMessage.Text = "$_.message";continue}&lt;br /&gt;&lt;br /&gt;&amp; {&lt;br /&gt;    [void]$FrmMain.showdialog() &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# Resolve-Error $Error[0] | out-string &lt;/PRE&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">28</thr:total></item></channel></rss>