<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://myitforum.com/cs2/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Steve Thompson at myITforum.com</title><subtitle type="html">Better living through automation :)</subtitle><id>http://myitforum.com/cs2/blogs/sthompson/atom.aspx</id><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/default.aspx" /><link rel="self" type="application/atom+xml" href="http://myitforum.com/cs2/blogs/sthompson/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2008-02-07T13:32:00Z</updated><entry><title>How to list static values in a query</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/11/30/how-to-list-static-values-in-a-query.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/11/30/how-to-list-static-values-in-a-query.aspx</id><published>2008-11-30T16:01:31Z</published><updated>2008-11-30T16:01:31Z</updated><content type="html">&lt;p&gt;Received an interesting question recently from a friend:&lt;/p&gt; &lt;p&gt;~~~&lt;/p&gt; &lt;p&gt;&lt;em&gt;Currently this query does not work. Basically all I want is this query to return all of the data within the {} as one row for each.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;em&gt;Select * from&lt;br /&gt;From {&amp;#39;Unknown date&amp;#39;, &amp;#39;30 Days&amp;#39;, &amp;#39;60 Days&amp;#39;, &amp;#39;90 Days&amp;#39;, &amp;#39;6 Months&amp;#39;, &amp;#39;&amp;lt; 1 Year&amp;#39;, &amp;#39;&amp;lt; 2 Years&amp;#39;, &amp;#39;&amp;lt; 3 Years&amp;#39;, &amp;#39;&amp;gt; 3 Years&amp;#39;) &lt;br /&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;So my question is how can I fix this query to get this to work?&lt;/em&gt;&lt;/p&gt; &lt;p&gt;~~~&lt;/p&gt; &lt;p&gt;Probably the easiest way would be use of a look up table, insert these values into a table, then use a &lt;/p&gt; &lt;p&gt;select * from LookupTable&lt;/p&gt; &lt;h2&gt;Option 1&lt;/h2&gt; &lt;p&gt;However, without using a lookup table, you could create a temporary table that is created as part of a batch. Values get inserted into the temp table, then you can select from that temporary table.&lt;/p&gt; &lt;p&gt;-- Batch statement&lt;/p&gt; &lt;p&gt;DROP TABLE #T1&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE #T1 &lt;br /&gt;(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; column_1 varchar(30) &lt;br /&gt;);&lt;br /&gt;GO&lt;br /&gt;SET NOCOUNT ON;&lt;br /&gt;INSERT INTO #T1 (column_1) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (&amp;#39;Unknown date&amp;#39;);&lt;br /&gt;INSERT INTO #T1 (column_1) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (&amp;#39;30 Days&amp;#39;);&lt;br /&gt;INSERT INTO #T1 (column_1) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (&amp;#39;60 Days&amp;#39;);&lt;br /&gt;INSERT INTO #T1 (column_1) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; VALUES (&amp;#39;90 Days&amp;#39;);&lt;/p&gt; &lt;p&gt;-- add any additional values&lt;br /&gt;GO&lt;br /&gt;SELECT column_1 FROM #T1;&lt;br /&gt;GO&lt;/p&gt; &lt;p&gt;-- results&lt;/p&gt; &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/Howtoliststaticvaluesinaquery_70D9/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="139" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/Howtoliststaticvaluesinaquery_70D9/image_thumb.png" width="170" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;h2&gt;Option 2&lt;/h2&gt; &lt;p&gt;A second method that would also accomplish the same thing without using a temporary table would be use of a UNION clause.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;SELECT &amp;#39;Unknown date&amp;#39; as [Date Range]&lt;br /&gt;UNION&lt;br /&gt;SELECT &amp;#39;30 Days&amp;#39; as [Date Range]&lt;br /&gt;UNION&lt;br /&gt;SELECT &amp;#39;60 Days&amp;#39; as [Date Range]&lt;br /&gt;UNION&lt;br /&gt;SELECT &amp;#39;90 Days&amp;#39; as [Date Range]&lt;br /&gt;UNION&lt;br /&gt;SELECT &amp;#39;6 Months&amp;#39; as [Date Range] &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/Howtoliststaticvaluesinaquery_70D9/image_4.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="150" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/Howtoliststaticvaluesinaquery_70D9/image_thumb_1.png" width="169" border="0" /&gt;&lt;/a&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=124437" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Installing SCCM 2007 R2 SQL Server Reporting Services</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/11/12/installing-sccm-2007-r2-sql-server-reporting-services.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/11/12/installing-sccm-2007-r2-sql-server-reporting-services.aspx</id><published>2008-11-12T16:25:00Z</published><updated>2008-11-12T16:25:00Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve recently had a chance to work with Microsoft System Center Configuration Manager (SCCM) 2007 SQL Reporting Services Reporting; which is new with the &lt;a href="http://technet.microsoft.com/en-us/library/cc161883.aspx"&gt;ConfigMgr R2 release&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First impressions are quite positive, with reporting being taken to a new level of robustness. Before proceeding, you&amp;#39;ll need to install SQL Server Reporting Services on SQL Server.&lt;/p&gt;
&lt;p&gt;The installation steps on ConfigMgr are fairly straightforward.&lt;/p&gt;
&lt;p&gt;SCCM 2007 R2 SSRS is a new Site Role. &lt;/p&gt;
&lt;p&gt;First we select the role:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_2.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="225" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Choose a Report Folder Name, it will default to &amp;#39;ConfigMgr_&amp;lt;site code&amp;gt;&amp;#39;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_4.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="224" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_thumb_1.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Summary screen is presented:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_6.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="224" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_thumb_2.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Open the SCCM 2007 MMC, under the Reporting Node, you should see the Reporting Service node contain information detailing your installation location.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_8.png"&gt;&lt;img style="BORDER-TOP-WIDTH:0px;BORDER-LEFT-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;BORDER-RIGHT-WIDTH:0px;" height="186" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/InstallingSCCM2007R2SQLServerReportingSe_70F9/image_thumb_3.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=124053" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="Reporting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Reporting/default.aspx" /></entry><entry><title>SQL Views documentation is Live!</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/30/sql-views-documentation-is-live.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/30/sql-views-documentation-is-live.aspx</id><published>2008-10-30T18:38:09Z</published><updated>2008-10-30T18:38:09Z</updated><content type="html">&lt;p&gt;A while back, I was able to provide some assistance to Garth Jones in documenting the existing SMS/SCCM SQL Server views. Doug Eby, a Senior Technical Writer at Microsoft created some fine documentation, in part based on our work. Doug did an outstanding job putting this together, the schema view, is well, priceless!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Documentation link available here:&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=87BBE64E-5439-4FC8-BECC-DEB372A40F4A&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=87BBE64E-5439-4FC8-BECC-DEB372A40F4A&amp;amp;displaylang=en&lt;/a&gt;.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;His blog posting is here: &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.technet.com/wemd_ua_-_sms_writing_team/archive/2008/10/30/announcement-the-creating-custom-reports-by-using-configuration-manager-2007-sql-views-documentation-package-is-now-available-for-download.aspx"&gt;http://blogs.technet.com/wemd_ua_-_sms_writing_team/archive/2008/10/30/announcement-the-creating-custom-reports-by-using-configuration-manager-2007-sql-views-documentation-package-is-now-available-for-download.aspx&lt;/a&gt;.&amp;nbsp; &lt;p&gt;&amp;nbsp; &lt;p&gt;Feedback is welcomed!&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=123704" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="SQL" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL/default.aspx" /><category term="ConfigMgr" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/ConfigMgr/default.aspx" /></entry><entry><title>SQL Server Reporting Services Resources</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/07/sql-server-reporting-services-resources.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/07/sql-server-reporting-services-resources.aspx</id><published>2008-10-07T22:17:02Z</published><updated>2008-10-07T22:17:02Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve recently finished an interesting project that made heavy use of SQL Server 2005 Reporting Services. As you are probably aware, Systems Center Configuration Manager 2007 R2 includes SSRS, I&amp;#39;d like to share some of what I&amp;#39;ve learned with a series of blogs about this technology and the tools available to author reports.&lt;/p&gt; &lt;p&gt;In sorting out SSRS, I spent time with a few books that are worthy of mention.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Books&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;em&gt;Hitchhiker&amp;#39;s Guide to SQL Server 2000 Reporting Services&lt;/em&gt; - 2005 - Peter Blackburn &amp;amp; William Vaughn (Addison Wesley).&amp;nbsp; ST note: while slightly dated much of the material remains relevant, I&amp;#39;m proud to have a copy signed by the author.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Hitchhiker&amp;#39;s Guide to Visual Studio and SQL Server Seventh Edition&lt;/em&gt; - 2007 - William Vaughn with Peter Blackburn (Addison Wesley). ST note: there is one chapter that speaks to the updates to SSRS 2005, and much valuable information on using Visual Studio to interact with SQL Server&lt;/p&gt; &lt;p&gt;&lt;em&gt;Pro SQL Server 2005 Reporting Services&lt;/em&gt; - 2006 - Rodney Landrum &amp;amp; Walter Voytek (Apress). ST Note: nice description on how to integrate parameter driven reports and stored procedures.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Microsoft SQL Server 2005 Administrator&amp;#39;s Companion&lt;/em&gt; - 2007 - Whalen, Garcia, Patel, Misner &amp;amp; Isakov (Microsoft Press). ST note: Very good general guide for SQL Server 2005, one chapter on Reporting Services, good overview. &lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=123008" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SQL" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL/default.aspx" /><category term="ConfigMgr" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/ConfigMgr/default.aspx" /><category term="SSRS" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SSRS/default.aspx" /></entry><entry><title>Microsoft MVP 2009 Award  - Configuration Manager</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/02/microsoft-mvp-2009-award-configuration-manager.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/10/02/microsoft-mvp-2009-award-configuration-manager.aspx</id><published>2008-10-02T15:46:58Z</published><updated>2008-10-02T15:46:58Z</updated><content type="html">&lt;p&gt;I was both humbled and honored to receive the MVP award, effective 10/1/2008, for contributions to the technical community for Microsoft SMS 2003 &amp;amp; System Center Configuration Manager 2007. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Edited version of the email follows:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/MicrosoftMVP2009AwardConfigurationManage_7B77/MVPLogo_2.jpg"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" height="91" alt="MVPLogo" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/MicrosoftMVP2009AwardConfigurationManage_7B77/MVPLogo_thumb.jpg" width="521" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p align="center"&gt;&lt;em&gt;Subject: Congratulations 2009 Microsoft MVP! &lt;/em&gt; &lt;p align="center"&gt;&lt;em&gt;Dear Steve Thompson, &lt;/em&gt; &lt;p align="center"&gt;&lt;em&gt;Congratulations! We are pleased to present you with the 2009 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. &lt;/em&gt; &lt;p align="center"&gt;&lt;em&gt;The Microsoft MVP Award provides us the unique opportunity to celebrate and honor your significant contributions and say &amp;quot;Thank you for your technical leadership.&amp;quot; &lt;/em&gt; &lt;p align="center"&gt;&lt;em&gt;Toby Richards&lt;br /&gt;General Manager &lt;br /&gt;Community Support Services &lt;/em&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;em&gt;At Microsoft, we believe that technical communities enhance people&amp;#39;s lives and the industry&amp;#39;s success because independent experts, like you, help others extract greater value from products and technologies through the free and objective exchange of knowledge. As a Microsoft MVP, you are part of a highly select group of experts that represent technology&amp;#39;s best and brightest who share a deep commitment to community and a willingness to help others. &lt;/em&gt; &lt;p align="center"&gt;&lt;em&gt;On behalf of everyone at Microsoft, thank you for your contributions to technical communities.&lt;/em&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;It&amp;#39;s been a great experience being part of this community. Please allow me a moment to reflect... I was first awarded MVP status in December 1995 for contributions in Compuserve forums (how many have used Compuserve?? ;) for Microsoft Access. I still have the MVP award&amp;nbsp; letter -- yes, Microsoft sent letters in those days. &lt;/p&gt; &lt;p&gt;I started using these forums to learn Microsoft Access, in the learning process; by answering questions and helping members, it deepened my technical knowledge of the product. Along the way I was recognized by Microsoft for my technical contributions, and awarded MVP status.&lt;/p&gt; &lt;p&gt;In the late 90&amp;#39;s when it appeared that Microsoft was going to let Microsoft Access, specifically Jet (the database engine) die a slow death, I transitioned to the Microsoft SQL Server MVP program. That was a great experience, allowing me to further my understanding of SQL Server which made me better at SMS in general. The MVP community in it&amp;#39;s entirety is an awesome group, the System Center folks made me feel part of their world, even though, formally I was part of another product group.&lt;/p&gt; &lt;p&gt;Now that I am part of the System Center MVP group, I look forward to things to come. &lt;/p&gt; &lt;p&gt;And, watch this space for continued contributions; I&amp;#39;m planning a series of blogs on SQL Server Reporting Services. I&amp;#39;m always open to suggestions as well. &lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122873" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="MVP" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/MVP/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="SQL" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL/default.aspx" /><category term="SSRS" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SSRS/default.aspx" /></entry><entry><title>Installing and configuring Local SQL Server Reporting Services</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/18/installing-and-configuring-local-sql-server-report-services.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/18/installing-and-configuring-local-sql-server-report-services.aspx</id><published>2008-09-18T19:54:28Z</published><updated>2008-09-18T19:54:28Z</updated><content type="html">&lt;p&gt;Your installation may work the first time, if so great!&amp;nbsp; I was not so lucky... &lt;p&gt;Attempted to launch the Report manager web page and it failed to load. &lt;p&gt;I was able to find the following error in the Reporting Services log file: &lt;p&gt;&amp;nbsp; &lt;p&gt;e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.RPCException: The report server cannot decrypt the symmetric key used to access sensitive or encrypted data in a report server database. You must either restore a backup key or delete all encrypted content. Check the documentation for more information. (rsReportServerDisabled), ; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;A search of Microsoft knowledge base turned up the following article:&lt;/p&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/955757/en-us"&gt;Error message when the Report Server service starts or when you try to access the Reporting Services Web site in SQL Server 2008: &amp;quot;Key not valid for use in specified state&amp;quot;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The cause was apparently related to changing the Reporting service account after the product was installed.&lt;/p&gt; &lt;p&gt;Since I had no backup of the symmetric key, I chose method 2 Delete the encrypted content.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/ConfiguringLocalSQLServerReportServices_9782/image_2.png"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="186" alt="image" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/ConfiguringLocalSQLServerReportServices_9782/image_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Back up and running!&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122490" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Reporting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Reporting/default.aspx" /><category term="SSRS" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SSRS/default.aspx" /></entry><entry><title>Microsoft SQL Server sample databases, code, and much more...</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/microsoft-sql-server-sample-databases-code-and-much-more.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/microsoft-sql-server-sample-databases-code-and-much-more.aspx</id><published>2008-09-17T15:58:51Z</published><updated>2008-09-17T15:58:51Z</updated><content type="html">&lt;p&gt;Can be found on &lt;a href="http://codeplex.com/SqlServerSamples"&gt;codeplex&lt;/a&gt;, there are many community based projects available for download including &lt;a href="http://codeplex.com/SqlServerSamples#ssrs"&gt;Microsoft Reporting Services Samples&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122440" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="Software" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Software/default.aspx" /><category term="SSRS" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SSRS/default.aspx" /></entry><entry><title>Microsoft SQL Server 2005 Reporting Services</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/microsoft-sql-server-2005-reporting-services.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/microsoft-sql-server-2005-reporting-services.aspx</id><published>2008-09-17T15:30:00Z</published><updated>2008-09-17T15:30:00Z</updated><content type="html">&lt;p&gt;Over the past few weeks, I&amp;#39;ve been delving deeper into Microsoft SQL Server 2005 Reporting Services (SSRS). In case you are not aware, there are downloads available that allow you to work with SSRS in a local mode, for example on a laptop/desktop. This is great for either learning, or building SSRS reports.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here are the two main components that you&amp;#39;ll need to install.&lt;/p&gt;
&lt;h2&gt;Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;Brief Description&lt;/b&gt; 
&lt;p&gt;Microsoft SQL Server 2005 Express Edition with Advanced Services is a free, easy-to use version of SQL Server Express that includes more features and makes it easier than ever to start developing powerful data-driven applications for web or local desktop development. 
&lt;h6&gt;Overview&lt;/h6&gt;
&lt;p&gt;&lt;a class="" title="Description" name="Description"&gt;&lt;/a&gt;Microsoft SQL Server 2005 Express Edition with Advanced Services (SQL Server Express) is a free, easy-to-use version of SQL Server Express that includes a graphical management tool and powerful features for reporting and advanced text-based searches. SQL Server Express provides powerful and reliable data management tools and rich features, data protection, and fast performance. It is ideal for embedded application clients, light Web applications, and local data stores.&lt;br /&gt;SQL Server Express with Advanced Services has all of the features in SQL Server 2005 Express Edition, plus you can: 
&lt;ul&gt;
&lt;li&gt;Easily manage and administer SQL Server Express with an easy-to-use graphical management tool -- SQL Server 2005 Management Studio Express (SSMSE). 
&lt;li&gt;Issue full-text queries against plain character-based data in SQL Server tables. Full-text queries can include words and phrases, or multiple forms of a word or phrase. 
&lt;li&gt;Run SQL Server Reporting Services reports on local relational data. &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Free to download, free to deploy, and free to redistribute as an embedded part of an application, SQL Server Express with Advanced Services is the fast and easy way to develop and manage data-driven applications with powerful built-in reporting and full-text search functionality.&lt;br /&gt;For more information about SQL Server Express, including other editions and downloadable components now available, see the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=82745"&gt;SQL Server Express page on MSDN&lt;/a&gt;.&lt;br /&gt;For a list of new features and improvements that are included in SQL Server 2005 SP2, review the &lt;a href="http://go.microsoft.com/fwlink/?LinkId=71711"&gt;What&amp;#39;s New document&lt;/a&gt;. 
&lt;h2&gt;Microsoft SQL Server 2005 Express Edition Toolkit&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;Brief Description&lt;/b&gt; 
&lt;p&gt;Microsoft SQL Server 2005 Express Edition Toolkit provides additional tools and resources for SQL Server 2005 Express Edition and SQL Server 2005 Express Edition with Advanced Services. 
&lt;p&gt;SQLEXPR_TOOLKIT.EXE&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122436" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="Software" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Software/default.aspx" /><category term="SSRS" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SSRS/default.aspx" /></entry><entry><title>Free Download Manager...</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/free-download-manager.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/17/free-download-manager.aspx</id><published>2008-09-17T15:11:47Z</published><updated>2008-09-17T15:11:47Z</updated><content type="html">&lt;p&gt;Every now and then I discover a software product that is excellent. For the past few months, I&amp;#39;ve been working remotely using a USB data card for connectivity. This can be a challenge when downloading very large files via FTP. Enter &lt;a href="http://www.freedownloadmanager.org/"&gt;Free Download Manager&lt;/a&gt; -- it allows you to checkpoint downloads so a connection interrupt will allow you to re-continue a download. Best of all it&amp;#39;s free. :)&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122434" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Software" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Software/default.aspx" /></entry><entry><title>Microsoft System Center User Groups in Southern California?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/15/microsoft-system-center-user-groups-in-southern-california.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/15/microsoft-system-center-user-groups-in-southern-california.aspx</id><published>2008-09-15T16:24:28Z</published><updated>2008-09-15T16:24:28Z</updated><content type="html">&lt;p&gt;I&amp;#39;m looking for any existing Microsoft System Center (centric) User Groups located in Southern California; either San Diego or Orange County. Or, if there is interest in starting one, please send me an email via contact link. Thanks!&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122372" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="User Group" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/User+Group/default.aspx" /></entry><entry><title>Robotic BigDog is US army's best friend</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/05/robotic-bigdog-is-us-army-s-best-friend.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/05/robotic-bigdog-is-us-army-s-best-friend.aspx</id><published>2008-09-05T22:34:12Z</published><updated>2008-09-05T22:34:12Z</updated><content type="html">&lt;p&gt;Seems like robotics has come a very long way...&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.telegraph.co.uk/news/worldnews/northamerica/usa/2687038/Robotic-BigDog-is-US-armys-best-friend.html" href="http://www.telegraph.co.uk/news/worldnews/northamerica/usa/2687038/Robotic-BigDog-is-US-armys-best-friend.html"&gt;http://www.telegraph.co.uk/news/worldnews/northamerica/usa/2687038/Robotic-BigDog-is-US-armys-best-friend.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122116" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Misc" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Misc/default.aspx" /></entry><entry><title>How to find computer NIC's with Speed/Duplex not set to 'Auto'?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/03/how-to-find-computer-nic-s-with-speed-duplex-not-set-to-auto.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/03/how-to-find-computer-nic-s-with-speed-duplex-not-set-to-auto.aspx</id><published>2008-09-03T19:10:24Z</published><updated>2008-09-03T19:10:24Z</updated><content type="html">&lt;p&gt;This may sound like an odd request, if you&amp;#39;ve worked in information technology long enough, especially with SMS/ConfigMgr, you&amp;#39;ve probably gotten a lot of strange requests.  &lt;p&gt;Scenario: Network switches are being replaced, any computer on the network with a NIC that has it&amp;#39;s Speed &amp;amp; Duplex property set to something other than &amp;#39;Auto&amp;#39;, will fail to connect to the network and communicate with a DHCP server. Not a good thing. To further complicate this picture, even though computers were originally built with images using a NIC Speed &amp;amp; Duplex set to &amp;#39;Auto&amp;#39;. Desktop support would occasionally set the NIC to 10 Mb Full in an attempt to correct network connection issues. We need to identify and correct these computers prior to the network hardware being swapped to avoid panic calls to the help desk. &lt;p&gt;Solution: Create a custom VBScript that is run on every desktop via SMS/ConfigMgr, &lt;a href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/15/use-of-flag-files-and-software-inventory.aspx"&gt;leaving a file with a unique name and file type of &amp;#39;*.flg&amp;#39;&lt;/a&gt; that could be easily queried and/or used to create a collection of computers that could be corrected via automation. &lt;p&gt;Script: The information we need to locate is in the registry, further, I wanted the ability to log the script activity locally, much like SMS logging. The flag file created for inventory needed to be easy to aggregate via SQL queries. This script was tested with an Intel NIC, other manufactures may use different registry key locations. &lt;p&gt;Flag file format followed by the possible numeric values: &lt;p&gt;&lt;strong&gt;&amp;#39; flag file to be constructed as SMSEng-NIC-&amp;lt;SpeedDuplex&amp;gt;-&amp;lt;DriverDescription (first 5 char)&amp;gt; &lt;/strong&gt; &lt;p&gt;&lt;strong&gt;&amp;nbsp; &amp;#39;0 - Auto Detect&lt;/strong&gt;&lt;b&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;1 - 10Mbps \ Half Duplex&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;2 - 10Mbps \ Full Duplex&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;3 - 100Mbps \ Half Duplex&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;4 - 100Mbps \ Full Duplex&lt;/strong&gt;&lt;/b&gt; &lt;p&gt;LocateNIC.vbs &lt;p&gt;&amp;#39; begin VBscript &lt;p&gt;Option Explicit&lt;br /&gt;&amp;#39;On Error Resume Next  &lt;p&gt;&amp;#39; Begin log stuff&lt;br /&gt;Const ForReading = 1&lt;br /&gt;Const ForWriting = 2&lt;br /&gt;Const ForAppending = 8  &lt;p&gt;Dim strIN, strTextIn&lt;br /&gt;Dim objFSO, objDictionary, objTextFile, objItem&lt;br /&gt;dim strNextLine&lt;br /&gt;dim i&lt;br /&gt;dim FSOOut&lt;br /&gt;dim Overwrite&lt;br /&gt;dim Unicode&lt;br /&gt;dim FileName, FileOut  &lt;p&gt;Dim strFileIn&lt;br /&gt;Dim strFileOut&lt;br /&gt;Dim f&lt;br /&gt;Dim strMsg&lt;br /&gt;&amp;#39; End log stuff  &lt;p&gt;&amp;#39; Flag file&lt;br /&gt;Dim strFlagFile&lt;br /&gt;Dim fFlag&lt;br /&gt;Dim strSMSRoot  &lt;p&gt;Dim strComputer&lt;br /&gt;dim objReg, strKeyPath, subkey, arrSubKeys, dwValue&lt;br /&gt;dim strValue&lt;br /&gt;dim strDriverValue, strModeValue2&lt;br /&gt;Dim strSpeedDuplex&lt;br /&gt;Dim strDriverDesc&lt;br /&gt;Dim strSubkey  &lt;p&gt;Const HKEY_LOCAL_MACHINE = &amp;amp;H80000002  &lt;p&gt;&amp;#39; log file&lt;br /&gt;strSMSRoot = &amp;quot;C:\Program Files\sms&amp;quot;&lt;br /&gt;strFileOut = &amp;quot;SMSEng-NIC.log&amp;quot;  &lt;p&gt;&amp;#39; Verify/Create Folders&lt;br /&gt;&amp;#39; Flag folder&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\flg&amp;quot;)&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC&amp;quot;)  &lt;p&gt;&amp;#39; Delete Any Flag files...&lt;br /&gt;Call DeleteFlagFiles(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC\*.flg&amp;quot;)  &lt;p&gt;&amp;#39; Log folder&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\log&amp;quot;)&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC&amp;quot;)  &lt;p&gt;&amp;#39; file out&lt;br /&gt;Set FSOOut = WScript.CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;Overwrite = False&lt;br /&gt;Unicode = False  &lt;p&gt;&amp;#39; start log file&lt;br /&gt;&amp;#39; open client log file&lt;br /&gt;Call OpenClientLog  &lt;p&gt;strMsg = &amp;quot;Started Script Process...&amp;quot;&lt;br /&gt;Call WriteClientLog (strMsg)  &lt;p&gt;&amp;#39; flag file to be constructed as SMSEng-NIC-&amp;lt;SpeedDuplex&amp;gt;-&amp;lt;DriverDescription (first 5 char)&amp;gt;  &lt;p&gt;&amp;#39; test&lt;br /&gt;&amp;#39;strFlagFile = &amp;quot;SMSEng-NIC-0-INTEL.flg&amp;quot;&lt;br /&gt;&amp;#39;Call CreateFlagFile (strFlagFile)  &lt;p&gt;strComputer = &amp;quot;.&amp;quot;&lt;br /&gt;Set objReg = GetObject(&amp;quot;winmgmts:{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;br /&gt;strKeyPath = &amp;quot;System\Currentcontrolset\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}&amp;quot;&lt;br /&gt;strDriverValue = &amp;quot;DriverDesc&amp;quot;&lt;br /&gt;strModeValue2 = &amp;quot;SpeedDuplex&amp;quot;  &lt;p&gt;objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys  &lt;p&gt;For Each subkey In arrSubKeys  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;0 - Auto Detect&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;1 - 10Mbps \ Half Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;2 - 10Mbps \ Full Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;3 - 100Mbps \ Half Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;4 - 100Mbps \ Full Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Capture Driver Description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strDriverValue, strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strDriverDesc = strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSubkey = subkey  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Capture SpeedDuplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModeValue2, dwValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSpeedDuplex = CStr(dwValue &amp;amp; &amp;quot;&amp;quot;)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo &amp;quot; &amp;quot; &amp;amp; strModeValue2 &amp;amp; &amp;quot;: &amp;quot; &amp;amp; strSpeedDuplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(strSpeedDuplex &amp;amp; &amp;quot;&amp;quot;) &amp;gt; 0 then  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFlagFile = &amp;quot;SMSEng-NIC-&amp;quot; &amp;amp; strSpeedDuplex &amp;amp; &amp;quot;-&amp;quot; &amp;amp; LEFT(UCASE(strDriverDesc),5) &amp;amp; &amp;quot;.flg&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call CreateFlagFile (strFlagFile)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; log entries&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;Create Flag file: &amp;#39;&amp;quot; &amp;amp;&amp;nbsp; strFlagFile &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;... subkey: &amp;#39;&amp;quot; &amp;amp; strSubkey &amp;amp; &amp;quot;&amp;#39; Full Driver Description: &amp;#39;&amp;quot; &amp;amp; strDriverDesc &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;strMsg: &amp;quot; &amp;amp; strMsg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;... subkey: &amp;#39;&amp;quot; &amp;amp; strSubkey &amp;amp; &amp;quot;&amp;#39; Full Driver Description: &amp;#39;&amp;quot; &amp;amp; strDriverDesc &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;strMsg: &amp;quot; &amp;amp; strMsg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If  &lt;p&gt;&amp;#39;&amp;nbsp; End If&lt;br /&gt;Next  &lt;p&gt;&amp;#39; Create Flag file subs&lt;br /&gt;Sub CreateFlagFile (strFlagFile)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp; strFileOut = strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC.log&amp;quot;  &lt;p&gt;&amp;#39;&amp;nbsp;&amp;nbsp; On Error Resume Next  &lt;p&gt;&amp;nbsp;&amp;nbsp; Set fFlag = FSOOut.OpenTextFile(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC\&amp;quot; &amp;amp; strFlagFile, ForAppending, True)&lt;br /&gt;&amp;nbsp;&amp;nbsp; fFlag.Write Now()&lt;br /&gt;&amp;nbsp;&amp;nbsp; fFlag.Close  &lt;p&gt;End Sub  &lt;p&gt;&amp;#39; Begin log subs&lt;br /&gt;Sub OpenClientLog  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next  &lt;p&gt;&amp;nbsp;&amp;nbsp; Set f = FSOOut.OpenTextFile(strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC\&amp;quot; &amp;amp; strFileOut, ForAppending, True)  &lt;p&gt;End Sub  &lt;p&gt;Sub CloseClientLog  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; f.Close  &lt;p&gt;End Sub  &lt;p&gt;Sub WriteClientLog (LineOut)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.Write Now() &amp;amp; &amp;quot;,&amp;quot; &amp;amp; LineOut &amp;amp; vbCRLF  &lt;p&gt;End Sub&lt;br /&gt;&amp;#39; End log subs&lt;br /&gt;Sub VerifyCreateFolder(fldr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; Dim lfso, lmsg, lf&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set lfso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; If (lfso.FolderExists(fldr)) Then&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = fldr &amp;amp; &amp;quot; exists.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = fldr &amp;amp; &amp;quot; doesn&amp;#39;t exist.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set lf = lfso.CreateFolder(fldr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp; ReportFolderStatus = msg&lt;br /&gt;End Sub  &lt;p&gt;Sub DeleteFlagFiles(FlagFiles)  &lt;p&gt;&amp;nbsp;&amp;nbsp; Dim lfso, lmsg, lf&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set lfso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; lfso.DeleteFile(FlagFiles)  &lt;p&gt;End Sub  &lt;p&gt;&amp;#39; End VBscript &lt;p&gt;Hopefully this gives you some ideas for your own &amp;#39;special&amp;#39; requests. The next blog will illustrate how to fix these NIC&amp;#39;s, with automation, of course. :)&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=122032" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>How to change computer NIC Speed/Duplex property to 'Auto'?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/18/how-to-locate-computer-nic-s-with-speed-duplex-not-set-to-auto.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/18/how-to-locate-computer-nic-s-with-speed-duplex-not-set-to-auto.aspx</id><published>2008-08-18T22:13:05Z</published><updated>2008-08-18T22:13:05Z</updated><content type="html">&lt;p&gt;&lt;font size="2"&gt;In another blog entry&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/09/03/how-to-find-computer-nic-s-with-speed-duplex-not-set-to-auto.aspx"&gt;How to find computer NIC&amp;#39;s with Speed/Duplex not set to &amp;#39;Auto&amp;#39;?&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;I described how to identify computers where the speed duplex is not set to auto. This article explains how to automate correcting those computers where the NIC Speed/Duplex property was not set correctly.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;Brief recap, we are able to identify those computers that need to be corrected by inventorying the file type *.flg and creating a collection based on those that are not set to auto detect. Then distribute a advertisement that will run the script to set the NIC property back to Auto. Now, since the script will cause the NIC to temporarily reset, be sure to use the download and execute mode for your advertisement.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;This script was written for and tested on Intel and Dell laptop NIC&amp;#39;s. It has the added advantage of logging change activity to the local desktop, and recreating the new *.flg file so the corrected computers will fall out of the targeted collection. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;As always, test in a lab environment before deploying.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&amp;#39; NIC-Fix-v2.vbs&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;#39; Steve Thompson&lt;br /&gt;&amp;#39;&lt;br /&gt;&amp;#39; Detect and revise those network adapters that are not set to auto detect&lt;br /&gt;&amp;#39; v1  &lt;p&gt;Option Explicit&lt;br /&gt;&amp;#39;On Error Resume Next  &lt;p&gt;&amp;#39; Begin log stuff&lt;br /&gt;Const ForReading = 1&lt;br /&gt;Const ForWriting = 2&lt;br /&gt;Const ForAppending = 8  &lt;p&gt;Dim strIN, strTextIn&lt;br /&gt;Dim objFSO, objDictionary, objTextFile, objItem&lt;br /&gt;dim strNextLine&lt;br /&gt;dim i&lt;br /&gt;dim FSOOut&lt;br /&gt;dim Overwrite&lt;br /&gt;dim Unicode&lt;br /&gt;dim FileName, FileOut  &lt;p&gt;Dim strFileIn&lt;br /&gt;Dim strFileOut&lt;br /&gt;Dim f&lt;br /&gt;Dim strMsg&lt;br /&gt;&amp;#39; End log stuff  &lt;p&gt;&amp;#39; Flag file&lt;br /&gt;Dim strFlagFile&lt;br /&gt;Dim fFlag&lt;br /&gt;Dim strSMSRoot  &lt;p&gt;Dim strComputer&lt;br /&gt;dim objReg, strKeyPath, subkey, arrSubKeys, dwValue&lt;br /&gt;dim strValue&lt;br /&gt;dim strDriverValue, strModeValue2, strModeValue3&lt;br /&gt;Dim strSpeedDuplex&lt;br /&gt;Dim strRequestedMediaType&lt;br /&gt;Dim strDriverDesc&lt;br /&gt;Dim strSubkey  &lt;p&gt;Dim strModNewValue, strModSubkey  &lt;p&gt;Const HKEY_LOCAL_MACHINE = &amp;amp;H80000002  &lt;p&gt;&amp;#39; log file&lt;br /&gt;strSMSRoot = &amp;quot;C:\Program Files\sms&amp;quot;&lt;br /&gt;strFileOut = &amp;quot;SMSEng-NIC.log&amp;quot;  &lt;p&gt;&amp;#39; Verify/Create Folders&lt;br /&gt;&amp;#39; Flag folder&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\flg&amp;quot;)&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC&amp;quot;)  &lt;p&gt;&amp;#39; Delete Any Flag files...&lt;br /&gt;Call DeleteFlagFiles(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC\*.flg&amp;quot;)  &lt;p&gt;&amp;#39; Log folder&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\log&amp;quot;)&lt;br /&gt;Call VerifyCreateFolder(strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC&amp;quot;)  &lt;p&gt;&amp;#39; file out&lt;br /&gt;Set FSOOut = WScript.CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;Overwrite = False&lt;br /&gt;Unicode = False  &lt;p&gt;&amp;#39; start log file&lt;br /&gt;&amp;#39; open client log file&lt;br /&gt;Call OpenClientLog  &lt;p&gt;strMsg = &amp;quot;Started Process...&amp;quot;&lt;br /&gt;Call WriteClientLog (strMsg)  &lt;p&gt;&amp;#39; flag file to be constructed as SMSEng-NIC-&amp;lt;SpeedDuplex&amp;gt;-&amp;lt;DriverDescription (first 5 char)&amp;gt;  &lt;p&gt;&amp;#39; test&lt;br /&gt;&amp;#39;strFlagFile = &amp;quot;SMSEng-NIC-0-INTEL.flg&amp;quot;&lt;br /&gt;&amp;#39;Call CreateFlagFile (strFlagFile)  &lt;p&gt;strComputer = &amp;quot;.&amp;quot;&lt;br /&gt;Set objReg = GetObject(&amp;quot;winmgmts:{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; strComputer &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;br /&gt;strKeyPath = &amp;quot;System\Currentcontrolset\Control\Class\{4D36E972-E325-11CE-BFC1-08002be10318}&amp;quot;&lt;br /&gt;strDriverValue = &amp;quot;DriverDesc&amp;quot;&lt;br /&gt;strModeValue2 = &amp;quot;SpeedDuplex&amp;quot;&lt;br /&gt;strModeValue3 = &amp;quot;RequestedMediaType&amp;quot;  &lt;p&gt;objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys  &lt;p&gt;For Each subkey In arrSubKeys  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;0 - Auto Detect&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;1 - 10Mbps \ Half Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;2 - 10Mbps \ Full Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;3 - 100Mbps \ Half Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;4 - 100Mbps \ Full Duplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Capture Driver Description&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strDriverValue, strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strDriverDesc = strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSubkey = subkey  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Capture SpeedDuplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModeValue2, dwValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSpeedDuplex = CStr(dwValue &amp;amp; &amp;quot;&amp;quot;)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Capture RequestedMediaType (Broadcom - DELL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModeValue3, dwValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strRequestedMediaType = CStr(dwValue &amp;amp; &amp;quot;&amp;quot;)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; WScript.Echo &amp;quot; &amp;quot; &amp;amp; strModeValue2 &amp;amp; &amp;quot;: &amp;quot; &amp;amp; strSpeedDuplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Len(strSpeedDuplex &amp;amp; &amp;quot;&amp;quot;) &amp;gt; 0 then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strSpeedDuplex &amp;lt;&amp;gt; &amp;quot;0&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; modify the subkey for SpeedDuplex&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strModNewValue = &amp;quot;0&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strModSubkey = strModeValue2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call ModifyDuplexSetting (strModSubkey, strModNewValue)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Get SpeedDuplex, one more time for flag file, should be different!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModeValue2, dwValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strSpeedDuplex = CStr(dwValue &amp;amp; &amp;quot;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFlagFile = &amp;quot;SMSEng-NIC-&amp;quot; &amp;amp; strSpeedDuplex &amp;amp; &amp;quot;-&amp;quot; &amp;amp; LEFT(UCASE(strDriverDesc),5) &amp;amp; &amp;quot;.flg&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call CreateFlagFile (strFlagFile)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; log entries&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;*** Create MODIFIED Flag file: &amp;#39;&amp;quot; &amp;amp;&amp;nbsp; strFlagFile &amp;amp; &amp;quot;&amp;#39; ***&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;... subkey: &amp;#39;&amp;quot; &amp;amp; strSubkey &amp;amp; &amp;quot;&amp;#39; Full Driver Description: &amp;#39;&amp;quot; &amp;amp; strDriverDesc &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;strMsg: &amp;quot; &amp;amp; strMsg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElseIf Len(strRequestedMediaType &amp;amp; &amp;quot;&amp;quot;) &amp;gt; 0 Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If strRequestedMediaType &amp;lt;&amp;gt; &amp;quot;0&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; modify the subkey for RequestedMediaType (Broadcom - DELL)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strModNewValue = &amp;quot;0&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strModSubkey = strModeValue3&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call ModifyDuplexSetting (strModSubkey, strModNewValue)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; Get RequestedMediaType (Broadcom - DELL), one more time for flag file&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.GetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModeValue3, dwValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strRequestedMediaType = CStr(dwValue &amp;amp; &amp;quot;&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strFlagFile = &amp;quot;SMSEng-NIC-&amp;quot; &amp;amp; strRequestedMediaType &amp;amp; &amp;quot;-&amp;quot; &amp;amp; LEFT(UCASE(strDriverDesc),5) &amp;amp; &amp;quot;.flg&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call CreateFlagFile (strFlagFile)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; log entries&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;*** Create MODIFIED Flag file: &amp;#39;&amp;quot; &amp;amp;&amp;nbsp; strFlagFile &amp;amp; &amp;quot;&amp;#39; ***&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;... subkey: &amp;#39;&amp;quot; &amp;amp; strSubkey &amp;amp; &amp;quot;&amp;#39; Full Driver Description: &amp;#39;&amp;quot; &amp;amp; strDriverDesc &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;strMsg: &amp;quot; &amp;amp; strMsg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strMsg = &amp;quot;... subkey: &amp;#39;&amp;quot; &amp;amp; strSubkey &amp;amp; &amp;quot;&amp;#39; Full Driver Description: &amp;#39;&amp;quot; &amp;amp; strDriverDesc &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call WriteClientLog (strMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;strMsg: &amp;quot; &amp;amp; strMsg&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If  &lt;p&gt;&amp;#39;&amp;nbsp; End If&lt;br /&gt;Next  &lt;p&gt;strMsg = &amp;quot;End Process...&amp;quot;&lt;br /&gt;Call WriteClientLog (strMsg)  &lt;p&gt;&amp;#39; Create Flag file subs&lt;br /&gt;Sub CreateFlagFile (strFlagFile)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp; strFileOut = strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC.log&amp;quot;  &lt;p&gt;&amp;#39;&amp;nbsp;&amp;nbsp; On Error Resume Next  &lt;p&gt;&amp;nbsp;&amp;nbsp; Set fFlag = FSOOut.OpenTextFile(strSMSRoot &amp;amp; &amp;quot;\flg\SMSEng-NIC\&amp;quot; &amp;amp; strFlagFile, ForAppending, True)&lt;br /&gt;&amp;nbsp;&amp;nbsp; fFlag.Write Now()&lt;br /&gt;&amp;nbsp;&amp;nbsp; fFlag.Close  &lt;p&gt;End Sub  &lt;p&gt;&amp;#39; Begin log subs&lt;br /&gt;Sub OpenClientLog  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next  &lt;p&gt;&amp;nbsp;&amp;nbsp; Set f = FSOOut.OpenTextFile(strSMSRoot &amp;amp; &amp;quot;\log\SMSEng-NIC\&amp;quot; &amp;amp; strFileOut, ForAppending, True)  &lt;p&gt;End Sub  &lt;p&gt;Sub CloseClientLog  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; f.Close  &lt;p&gt;End Sub  &lt;p&gt;Sub WriteClientLog (LineOut)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.Write Now() &amp;amp; &amp;quot;,&amp;quot; &amp;amp; LineOut &amp;amp; vbCRLF  &lt;p&gt;End Sub&lt;br /&gt;&amp;#39; End log subs&lt;br /&gt;Sub VerifyCreateFolder(fldr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; Dim lfso, lmsg, lf&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set lfso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)  &lt;p&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; If (lfso.FolderExists(fldr)) Then&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = fldr &amp;amp; &amp;quot; exists.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp; Else&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = fldr &amp;amp; &amp;quot; doesn&amp;#39;t exist.&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set lf = lfso.CreateFolder(fldr)&lt;br /&gt;&amp;nbsp;&amp;nbsp; End If&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp; ReportFolderStatus = msg&lt;br /&gt;End Sub  &lt;p&gt;Sub DeleteFlagFiles(FlagFiles)  &lt;p&gt;&amp;nbsp;&amp;nbsp; Dim lfso, lmsg, lf&lt;br /&gt;&amp;nbsp;&amp;nbsp; Set lfso = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp; On Error Resume Next&lt;br /&gt;&amp;nbsp;&amp;nbsp; lfso.DeleteFile(FlagFiles)  &lt;p&gt;End Sub  &lt;p&gt;Sub ModifyDuplexSetting (strModSubkey, strModNewValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; On Error Resume Next  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objReg.SetStringvalue HKEY_LOCAL_MACHINE, strKeyPath &amp;amp; &amp;quot;\&amp;quot; &amp;amp; subkey, strModSubkey, strModNewValue&lt;br /&gt;End Sub &lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121393" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Use of 'flag' files and software inventory...</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/15/use-of-flag-files-and-software-inventory.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/15/use-of-flag-files-and-software-inventory.aspx</id><published>2008-08-15T18:19:47Z</published><updated>2008-08-15T18:19:47Z</updated><content type="html">&lt;p&gt;This is a technique that we pioneered in the SMS 2.0 days, and has continued to find useful applicability.&lt;/p&gt; &lt;p&gt;There a number of techniques to inventory computers, and locate resources within ConfigMgr. However, have you ever found those unique situations where the normal methods of hardware/software inventory either do not work, or require a lot of effort to obtain?&lt;/p&gt; &lt;p&gt;This is a two part process:&lt;/p&gt; &lt;p&gt;1) Enable software inventory of file type: &amp;#39;*.flg&amp;#39;&lt;/p&gt; &lt;p&gt;2) Use a script, package, gpo, login script, etc. to create a &amp;lt;filename&amp;gt;.&lt;strong&gt;flg&lt;/strong&gt; on the computer&lt;/p&gt; &lt;p&gt;ConfigMgr software inventory will find and process the &amp;lt;filename&amp;gt;.flg file and store it as software data for the computer. Now, it is very easy to locate those computers with a web reports, or use a query, which could in turn be the basis for a collection. By using a custom file type, we will likely only process those files that are useful to us without a lot of background noise or huge number of inventory records. Ever enable software collection on *.dll? :)&lt;/p&gt; &lt;p&gt;My next blog post will illustrate a practical example of this technique.&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121341" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="Misc" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Misc/default.aspx" /><category term="ConfigMgr" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/ConfigMgr/default.aspx" /></entry><entry><title>The perfect storm of desktop updates this month?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/13/the-perfect-storm-of-desktop-updates-this-month.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/13/the-perfect-storm-of-desktop-updates-this-month.aspx</id><published>2008-08-13T16:00:23Z</published><updated>2008-08-13T16:00:23Z</updated><content type="html">&lt;p&gt;Interesting article by Gregg Keizer.&lt;/p&gt; &lt;p&gt;&lt;a href="http://computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9112450"&gt;Microsoft issues massive security update for Windows, Office&lt;/a&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121258" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="Security" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Security/default.aspx" /></entry><entry><title>Service Accounts - Part 2 of 2</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/12/service-accounts-part-2-of-2.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/12/service-accounts-part-2-of-2.aspx</id><published>2008-08-12T16:37:08Z</published><updated>2008-08-12T16:37:08Z</updated><content type="html">&lt;p&gt;This script was the outcome of researching a way to automate the replacement of a local service account to manage the cluster service. This automation could be used to change any account for any service.&lt;/p&gt; &lt;p&gt;Note that the script logs the sequence as the script proceeds to the local event log -- this serves both as an audit requirement and as a diagnostic tool.&lt;/p&gt; &lt;p&gt;When changing out the service account, it does require stopping the Cluster Server service, be sure to change one node at a time to allow the cluster fail-over to take place. We sequenced the updates allowing one hour interval between cluster nodes.&lt;/p&gt; &lt;p&gt;ModifyServiceAccount.vbs&lt;/p&gt; &lt;p&gt;&amp;#39; Created by Steve Thompson&lt;/p&gt; &lt;p&gt;&amp;#39;&amp;nbsp; v1.00&lt;br /&gt;&amp;#39;&lt;br /&gt;Option Explicit&lt;br /&gt;Const EVENT_SUCCESS = 0&lt;br /&gt;Const EVENT_FAILURE = 1&lt;br /&gt;Const EVENT_WARNING = 2&lt;br /&gt;Dim strComputer&lt;br /&gt;Dim strAccount&lt;br /&gt;Dim objWMIService&lt;br /&gt;Dim colServiceList&lt;br /&gt;Dim strErr&lt;br /&gt;dim objShell&lt;br /&gt;Dim strLogData &lt;/p&gt; &lt;p&gt;On error resume next&lt;br /&gt;Set objShell = WScript.CreateObject(&amp;quot;WScript.Shell&amp;quot;)  &lt;p&gt;strComputer = &amp;quot;.&amp;quot;&lt;/p&gt; &lt;p&gt;&amp;#39; expects arguments passed as part of the command line &lt;/p&gt; &lt;p&gt;&amp;#39; arg1 - domain\account&lt;/p&gt; &lt;p&gt;&amp;#39; arg2 - password&lt;br /&gt;strAccount = WScript.Arguments.Unnamed.Item(0)&lt;br /&gt;strPassword = WScript.Arguments.Unnamed.Item(1)&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&amp;#39; wscript.echo &amp;quot;strAccount= &amp;#39;&amp;quot; &amp;amp; strAccount &amp;amp; &amp;quot;&amp;#39;&amp;quot; &lt;/p&gt; &lt;p&gt;Set objWMIService = GetObject(&amp;quot;winmgmts:&amp;quot; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; &amp;quot;{impersonationLevel=impersonate}!\\&amp;quot; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;)  &lt;p&gt;Set colServiceList = objWMIService.ExecQuery _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;quot;Select * from Win32_Service Where Name = &amp;#39;ClusSvc&amp;#39;&amp;quot;)&lt;br /&gt; &lt;p&gt;For each objService in colServiceList  &lt;p&gt;if UCASE(objService.Name) = &amp;quot;CLUSSVC&amp;quot; Then  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; stop service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objService.StopService()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Stop Service step -- &amp;#39;&amp;quot; &amp;amp; objService.Name &amp;amp; &amp;quot;&amp;#39;. Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wait&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Sleep 20000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; change out service account&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = objService.Change _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( , , , , , , strAccount, strPassword)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Change Service Account and password step -- &amp;quot; &amp;amp; &amp;quot;Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData &lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; restart service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objService.StartService()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Re-start Service step -- &amp;#39;&amp;quot; &amp;amp; objService.Name &amp;amp; &amp;quot;Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData&lt;br /&gt;&amp;nbsp;&amp;nbsp; end if&lt;br /&gt;Next &lt;/p&gt; &lt;p&gt;Sub WriteEventLog (zStatus, zData)  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; objShell.LogEvent zStatus, zData  &lt;p&gt;End Sub&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121225" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Scripting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Scripting/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="VBScript" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/VBScript/default.aspx" /></entry><entry><title>Service Accounts - Part 1 of 2</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/11/service-accounts-part-1-of-2.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/11/service-accounts-part-1-of-2.aspx</id><published>2008-08-11T17:59:34Z</published><updated>2008-08-11T17:59:34Z</updated><content type="html">&lt;p&gt;Microsoft best practice for service accounts, is use the concept of least permissions for the accounts. In other words, if an account needs to have local administrative rights on a server or desktop, add the account to the local administrators group. Do not make the account a Domain Administrator! &lt;p&gt;In researching Service Accounts that were in use at my last company, we determined that an account commonly used as a Cluster Service (to administer the server Cluster) account was a Domain Administrator account. The solution, was creation of a standard service account with user level permissions, then adding this user account to the local Administrators group and applying the proper nt rights to the account. &lt;p&gt;Now, how to automate replacing this account on 60 or more server nodes? We created a package in SMS/SCCM with a command file that accepts the name of the domain user account in the format of domanname\account making the command file generic. After experimentation we found the resource kit utility ntrights.exe could adjust the nt rights (the ones listed below are required for a service account). Just place the ntrights.exe in the same package folder as the cmd file. &lt;p&gt;Tomorrow&amp;#39;s blog will be use of automation to swap out the old service account and adding in the new one. &lt;p&gt;ntrights-modify-admin.cmd &lt;p&gt;@echo on&lt;br /&gt;REM Pass DomainName\Account to this cmd file&lt;br /&gt;REM Add account to local administrators group...  &lt;p&gt;NET LocalGroup Administrators %1 /add  &lt;p&gt;REM Assign proper rights to the account...  &lt;p&gt;ntrights +r SeIncreaseQuotaPrivilege -u %1&lt;br /&gt;ntrights +r SeLockMemoryPrivilege -u %1&lt;br /&gt;ntrights +r SeServiceLogonRight -u %1&lt;br /&gt;ntrights +r SeTcbPrivilege -u %1 &lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121169" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Scripting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Scripting/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="VBScript" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/VBScript/default.aspx" /></entry><entry><title>Automate creation of SNMP Trap Destinations with SMS/ConfigMgr!</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/08/automate-creation-of-snmp-trap-destinations-with-sms-configmgr.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/08/automate-creation-of-snmp-trap-destinations-with-sms-configmgr.aspx</id><published>2008-08-08T22:51:04Z</published><updated>2008-08-08T22:51:04Z</updated><content type="html">&lt;p&gt;We had a situation where 1400+ servers needed to be able to communicate with a second SNMP server that was added as a backup to receive SNMP trap alerts.&lt;/p&gt; &lt;p&gt;Changing this information manually would be far too intensive.&lt;/p&gt; &lt;p&gt;I developed the following VBScript that was deployed by SMS to make the revision. Note that you would modify the &amp;#39;SERVERNAME1&amp;#39; and &amp;#39;SERVERNAME2&amp;#39; values below. The value for &amp;lt;identifier&amp;gt; relates to unique name that a company would choose. &lt;/p&gt; &lt;p&gt;The SNMP service gets recycled after the update so the trap destination change takes effect immediately.&lt;/p&gt; &lt;p&gt;Enjoy, as always test in a lab before deploying to 1000&amp;#39;s of servers ;)&lt;/p&gt; &lt;p&gt;&amp;#39; watch word wrap!&lt;/p&gt; &lt;p&gt;OPTION EXPLICIT&lt;br /&gt;const HKEY_LOCAL_MACHINE = &amp;amp;H80000002&lt;br /&gt;dim strKeyPathRoot&lt;br /&gt;dim strKeyPath&lt;br /&gt;dim strComputer&lt;br /&gt;dim strESXHost&lt;br /&gt;dim strValueName&lt;br /&gt;dim oReg&lt;br /&gt;dim strValue&lt;br /&gt;dim strUpdateMode&lt;br /&gt;dim dwValue&lt;br /&gt;Dim objWMIService&lt;br /&gt;Dim colServiceList&lt;br /&gt;DIM objService  &lt;p&gt;&amp;#39; test mode reads and reports&lt;br /&gt;&amp;#39;strUpdateMode = &amp;quot;Test&amp;quot;&lt;br /&gt;&amp;#39; Update mode updates reg keys and does not report&lt;br /&gt;strUpdateMode = &amp;quot;Update&amp;quot;  &lt;p&gt;strComputer = &amp;quot;.&amp;quot;  &lt;p&gt;&amp;#39; adjust SNMP parms&lt;br /&gt;SetSNMP  &lt;p&gt;&amp;#39; recycle SNMP service&lt;br /&gt;RecycleSNMP  &lt;p&gt;&amp;#39; Set StdOut = WScript.StdOut&lt;br /&gt;Sub SetSNMP  &lt;p&gt;Set oReg=GetObject(&amp;quot;winmgmts:{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strComputer &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;) &lt;/p&gt; &lt;p&gt;&lt;br /&gt;strKeyPathRoot = &amp;quot;SYSTEM\CurrentControlSet\Services\SNMP\Parameters&amp;quot; &lt;/p&gt; &lt;p&gt;&amp;#39; read TrapConfig key, if not found create new!&lt;br /&gt;strKeyPath = strKeyPathRoot &amp;amp; &amp;quot;\TrapConfiguration\&amp;lt;identifier&amp;gt;\&amp;quot;&lt;br /&gt;strValueName = &amp;quot;1&amp;quot;&lt;br /&gt;oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue&lt;br /&gt;if strUpdateMode = &amp;quot;Test&amp;quot; Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo &amp;quot;strValue = &amp;quot; &amp;amp; strValue&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo &amp;quot;strValueName = &amp;quot; &amp;amp; strValueName&lt;br /&gt;end if&lt;br /&gt;&amp;#39; strValue contains a NULL if not found...&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strKeyPath = strKeyPathRoot &amp;amp; &amp;quot;\TrapConfiguration\&amp;lt;identifier.&amp;quot;&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wscript.echo &amp;quot;strKeyPath = &amp;quot; &amp;amp; strKeyPath&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oReg.CreateKey HKEY_LOCAL_MACHINE, strKeyPath  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strValue = &amp;quot;SERVERNAME1&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strValueName = &amp;quot;1&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oReg.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strValue = &amp;quot;SERVERNAME2&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strValueName = &amp;quot;2&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oReg.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue  &lt;p&gt;End Sub  &lt;p&gt;Sub RecycleSNMP&lt;br /&gt;&amp;#39; stop &amp;amp; restart service...&lt;br /&gt;Set objWMIService = GetObject(&amp;quot;winmgmts:&amp;quot; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; &amp;quot;{impersonationLevel=impersonate}!\\&amp;quot; _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp; strComputer &amp;amp; &amp;quot;\root\cimv2&amp;quot;)  &lt;p&gt;Set colServiceList = objWMIService.ExecQuery _&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;quot;Select * from Win32_Service Where Name = &amp;#39;SNMP&amp;#39;&amp;quot;)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp; (&amp;quot;Select * from Win32_Service Where Name = &amp;#39;ccmexec&amp;#39;&amp;quot;)  &lt;p&gt;For each objService in colServiceList  &lt;p&gt;if UCASE(objService.Name) = &amp;quot;SNMP&amp;quot; Then  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wscript.echo &amp;quot;objService.Name= &amp;#39;&amp;quot; &amp;amp; objService.Name &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; stop service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objService.StopService()&lt;br /&gt;&amp;nbsp; &amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;nbsp; &amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Stop Service step -- &amp;#39;&amp;quot; &amp;amp; objService.Name &amp;amp; &amp;quot;&amp;#39;. Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;nbsp; &amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; wait&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wscript.Sleep 20000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; change out service account&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = objService.Change _&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( , , , , , , strAccount, &amp;quot;nt$local&amp;quot;)&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Change Service Account and password step -- &amp;quot; &amp;amp; &amp;quot;Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData  &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39; restart service&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objService.StartService()&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strErr = err&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strLogData = &amp;quot;Re-start Service step -- &amp;#39;&amp;quot; &amp;amp; objService.Name &amp;amp; &amp;quot;Return Code(&amp;#39;&amp;quot;&amp;nbsp; &amp;amp; strErr &amp;amp; &amp;quot;&amp;#39;)&amp;quot;&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WriteEventLog EVENT_SUCCESS, strLogData&lt;br /&gt;&amp;nbsp;&amp;nbsp; end if&lt;br /&gt;Next&lt;br /&gt;End Sub&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:be7a1d6b-4273-4ef3-a965-852a42585cdf" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/vbscript" rel="tag"&gt;vbscript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sms%202003" rel="tag"&gt;sms 2003&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sccm%202007" rel="tag"&gt;sccm 2007&lt;/a&gt;&lt;/div&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=121098" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Earthquake country...</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/01/earthquake-country.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/08/01/earthquake-country.aspx</id><published>2008-08-01T18:47:55Z</published><updated>2008-08-01T18:47:55Z</updated><content type="html">&lt;p&gt;On Tuesday, I was in San Clemente, CA meeting with my manager when an earthquake occurred. It was my first experience with an earthquake, a large convex mirror in the corner of the room started shaking, hanging lights started swinging... lady at a nearby table stands up, looking a little scared, clutching the table and says: &amp;quot;oh my, this is a good one!&amp;quot;&lt;/p&gt; &lt;p&gt;I&amp;#39;m sitting at the table with two folks that have had far more experience in earthquake country than I -- they are staying put. Meanwhile, I&amp;#39;m thinking, do I run out of the building, or hide under the table for protection?! My manager is smiling. &lt;/p&gt; &lt;p&gt;When the earthquake ended, he says: &amp;quot;That was about a 5.5.&amp;quot; Turns out that was fairly accurate, it was a 5.4 magnitude quake, epicenter was in Chino Hills, CA.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f7bf5d94-a226-4060-8da5-543501e26c77" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/div&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=120772" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>California arrival</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/07/15/california-arrival.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/07/15/california-arrival.aspx</id><published>2008-07-16T00:04:00Z</published><updated>2008-07-16T00:04:00Z</updated><content type="html">&lt;p&gt;We arrived in Newport Beach CA today, it took us 7 days to drive cross country. Approximately 3100 mi in all.&lt;/p&gt; &lt;p&gt;At the end of the day yesterday we crossed into CA, drove from the high desert of New Mexico, into Flagstaff AZ, then south to Phoenix, and west on I-10 to CA. Spent the night in Blythe, CA which is on the Colorado river. It is interesting to drive through the Arizona desert, and see so much green, it looked like the Nile river after the desert. This morning it was 83F at 7:30am... it was 105F yesterday. The locals told us it was cool... they were expecting 120F temps later this week. &lt;p&gt;It was a great experience... if you ever get the opportunity and don&amp;#39;t mind driving, I highly recommend a cross country trip.&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=119964" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Misc" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Misc/default.aspx" /></entry><entry><title>Day 4 on the road...</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/07/12/day-4-on-the-road.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/07/12/day-4-on-the-road.aspx</id><published>2008-07-13T01:16:09Z</published><updated>2008-07-13T01:16:09Z</updated><content type="html">&lt;p&gt;This past week has been a whirl wind; quit my job, said goodbye to friends and family and packed up the 5th wheel RV. Additionally, we decided to ship a cargo trailer we had and a 4 door sedan on a flatbed truck, now that was an interesting operation to watch.&lt;/p&gt; &lt;p&gt;This is the 3rd time I have driven cross country. Several things impress me on each journey; the greatness of this country in terms of expanse, variety of terrain and some very interesting people!&lt;/p&gt; &lt;p&gt;We are presently in Western Oklahoma, and will be heading through Texas tomorrow. Will post more as time permits.&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cbf38c82-8e47-461c-b44d-a92b0f0597d5" style="padding-right:0px;display:inline;padding-left:0px;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/misc" rel="tag"&gt;misc&lt;/a&gt;&lt;/div&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=119824" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Time for a change</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/06/25/time-for-a-change.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/06/25/time-for-a-change.aspx</id><published>2008-06-25T15:41:00Z</published><updated>2008-06-25T15:41:00Z</updated><content type="html">&lt;span style="COLOR:navy;"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;font color="#000000"&gt;Time for a change&lt;/font&gt;&lt;/p&gt;&lt;font color="#000000"&gt;&amp;nbsp;&lt;/font&gt;&lt;span style="COLOR:navy;"&gt;Last week I accepted a job offer in Southern California. We had been working on a possible west coast relocation from Massachusetts for the past year. With our home selling in less than 5 days on the market, it seemed to be a very good omen. &lt;/span&gt;&lt;span style="COLOR:navy;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:navy;"&gt;It also appeared to be very good timing, that while we were on the west coast to attend a college graduation ceremony, I spotted a consulting position opportunity on myITForum. Forwarded a copy of my resume, and the rest is history. &lt;/span&gt;&lt;span style="COLOR:navy;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:navy;"&gt;Thank you myITforum, this is actually the second time that you folks have played a role in finding a new opportunity. &lt;/span&gt;&lt;span style="COLOR:navy;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:navy;"&gt;I&amp;#39;ll be working as a consultant; designing and implementing Microsoft Systems Center Configuration Manager 2007. I&amp;#39;ll be roaming mostly in San Diego County, and Orange County. &lt;/span&gt;&lt;span style="COLOR:navy;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;span style="COLOR:navy;"&gt;I am very excited about this new opportunity, will be very busy over the next 6 weeks as we complete our transition. &lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt;Look for more updates in the future!&lt;/span&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=118982" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Using conditional logic with VBScript (IPStackSize)</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/28/using-conditional-logic-with-vbscript-ipstacksize.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/28/using-conditional-logic-with-vbscript-ipstacksize.aspx</id><published>2008-03-28T17:57:00Z</published><updated>2008-03-28T17:57:00Z</updated><content type="html">&lt;p&gt;One of the things I really like about VBScript is the ability to use conditional logic. As promised in an earlier blog entry, here is a good example. &lt;/p&gt;
&lt;p&gt;We found that in order for a particular software product to install (that product name shall remain nameless) and function properly; the IRPStackSize needs to be adjusted to a minimum size. The problem?&amp;nbsp; Many desktops and servers have this key set to a larger value than the minimum required. In that event we do not want to change it to perhaps a smaller value, potentially reintroducing issues. Also, to add to the complexity of the problem at hand this key may, or may not exist.&lt;/p&gt;
&lt;p&gt;If you review the logic of this VBScript, we test to see if the value exists, if a null is found, it means the key does not exist, create the key with the proper value. If the key and value exist, check the value to see if the new value needs to replace the existing value.&lt;/p&gt;
&lt;p&gt;This gave us the ability to use this script as part of the installation process minimizing risk that it would introduce any new issues.&lt;/p&gt;
&lt;p&gt;Here are a couple of kb articles that explain one of the more common errors with IRPStackSize and the resolution.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Event ID 2011&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Not enough server storage is available to process this command.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/106167"&gt;http://support.microsoft.com/kb/106167&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Description of the IRPStackSize parameter in Windows 2000, in Windows XP, and in Windows Server 2003&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/285089"&gt;http://support.microsoft.com/kb/285089&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Excerpt: The &lt;i&gt;IRPStackSize&lt;/i&gt; parameter specifies the number of stack locations in I/O request packets (IRPs) that are used by Windows 2000 Server, by Windows Server 2003, and by Windows XP. You may have to increase this number for certain transports, for media access control (MAC) drivers, or for file system drivers. Each stack uses 36 bytes of memory for each receive buffer.&lt;/p&gt;
&lt;p&gt;As always, test before deploying, most of all have fun…&lt;/p&gt;
&lt;p&gt;&amp;#39;&lt;font color="#008000"&gt; *********************************************************************&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; 2/6/2008&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; Adjust size of IRP Stack Size - specifically for xyz product&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; install on servers.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; Key location:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; &amp;gt; IRPStackSize&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; Optimum size of value is 30, or larger... if value is less than 30, modify.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; **********************************************************************&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;OPTION EXPLICIT&lt;/p&gt;
&lt;p&gt;const HKEY_LOCAL_MACHINE = &amp;amp;H80000002&lt;/p&gt;
&lt;p&gt;dim strKeyPathRoot&lt;/p&gt;
&lt;p&gt;dim strKeyPath&lt;/p&gt;
&lt;p&gt;dim strComputer&lt;/p&gt;
&lt;p&gt;dim strValueName&lt;/p&gt;
&lt;p&gt;dim oReg&lt;/p&gt;
&lt;p&gt;dim strValue&lt;/p&gt;
&lt;p&gt;dim strNewValue&lt;/p&gt;
&lt;p&gt;dim dwValue&lt;/p&gt;
&lt;p&gt;Dim objWMIService&lt;/p&gt;
&lt;p&gt;Dim colServiceList&lt;/p&gt;
&lt;p&gt;DIM objService&lt;/p&gt;
&lt;p&gt;strValueName = &amp;quot;IRPStackSize&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;‘ change IRPStackSize value here, if required&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;strNewValue = 30&lt;/p&gt;
&lt;p&gt;strComputer = &amp;quot;.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; Read IRP Stacksize... adjust as needed&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;IRPStackSize&lt;/p&gt;
&lt;p&gt;Sub IRPStackSize&lt;/p&gt;
&lt;p&gt;On Error Resume Next&lt;/p&gt;
&lt;p&gt;Set oReg=GetObject(&amp;quot;winmgmts:{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp; _&lt;/p&gt;
&lt;p&gt;strComputer &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;/p&gt;
&lt;p&gt;strKeyPathRoot = &amp;quot;SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; this logic allows us to extend to keys below the path&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;strKeyPath = strKeyPathRoot&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; retrieve the IRPStackSize value&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;oReg.GetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; strValue contains a NULL if not found...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;if strValue &amp;amp; &amp;quot;&amp;quot; = &amp;quot;&amp;quot; Then&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; key name and value not found, create key set to strNewValue&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; wscript.echo &amp;quot;strValue = &amp;quot; &amp;amp; strValue &amp;amp; &amp;quot; - Empty/no key, add one&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;oReg.SetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strNewValue&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Else&lt;/p&gt;
&lt;p&gt;&amp;nbsp; If strValue &amp;lt; strNewValue Then&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; value is set to something less than strNewValue, adjust&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; wscript.echo &amp;quot;strValue = &amp;quot; &amp;amp; strValue &amp;amp; &amp;quot; - value &amp;lt; 30, update!&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;oReg.SetDWordValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strNewValue&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp; Else&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; Nothing to do&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&amp;#39; wscript.echo &amp;quot;strValue = &amp;quot; &amp;amp; strValue &amp;amp; &amp;quot; - nothing to do&amp;quot;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp; End If&lt;/p&gt;
&lt;p&gt;End if&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=114357" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Scripting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Scripting/default.aspx" /><category term="VBScript" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/VBScript/default.aspx" /></entry><entry><title>How do I use a wildcard for add remove program information?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/13/how-do-i-use-a-wildcard-for-add-remove-program-information.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/13/how-do-i-use-a-wildcard-for-add-remove-program-information.aspx</id><published>2008-03-13T15:19:00Z</published><updated>2008-03-13T15:19:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Question: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;What I really could use is report #96 (&amp;quot;Computers with specific software registered in Add Remove Programs&amp;quot;), that allows me to include a wildcard, so I can find not only &amp;quot;Adobe Acrobat 8.0.0 Professional&amp;quot;, but &amp;quot;Adobe Acrobat 7.0.8 Professional&amp;quot;, and &amp;quot;Adobe Acrobat 8.1.2 Professional&amp;quot; and all other versions w/in a particular collection. &lt;br /&gt;SMS forces me to pick a specific one.&amp;nbsp; I could use report #99 (&amp;quot;Count of all instances of software registered with Add or Remove Programs&amp;quot;), but I&amp;#39;m only interested in &amp;quot;Adobe Acrobat % Professional&amp;quot;.&amp;nbsp; &lt;br /&gt;Anybody have an easy button for this? &lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;~~~&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;[Steve] Great question, created a report like this to solve a very similar problem. Interestingly, had to use this report today, just before reading your question. I named the report:&lt;/p&gt;
&lt;p&gt;“Computers with software (like) registered in Add Remove Programs”&lt;/p&gt;
&lt;p&gt;It contains 2 prompts, one for add remove program name, and one for collection id. Here is the base report query (amended 3/18/08 to add the Group by statement):&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Select sys.Netbios_Name0, fcm.SiteCode, sys.User_Domain0, sys.User_Name0, sys.Operating_System_Name_and0, arp.DisplayName0 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FROM v_R_System sys&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;JOIN v_GS_ADD_REMOVE_PROGRAMS arp ON sys.ResourceID = arp.ResourceID &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;JOIN v_FullCollectionMembership fcm on sys.ResourceID=fcm.ResourceID&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WHERE DisplayName0 LIKE @displayname and fcm.CollectionID=@CollID&lt;/b&gt;&lt;/p&gt;&lt;font color="#0000ff" size="2"&gt;
&lt;p&gt;&lt;strong&gt;GROUP&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;BY&lt;/font&gt;&lt;font size="2"&gt; sys&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;Netbios_Name0&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; fcm&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;SiteCode&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; sys&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;User_Domain0&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/p&gt;&lt;/font&gt;&lt;/strong&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;strong&gt;sys&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;User_Name0&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; sys&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;font size="2"&gt;Operating_System_Name_and0&lt;/font&gt;&lt;font color="#808080" size="2"&gt;,&lt;/font&gt;&lt;font size="2"&gt; arp&lt;/font&gt;&lt;font color="#808080" size="2"&gt;.&lt;/font&gt;&lt;/strong&gt;&lt;font size="2"&gt;&lt;strong&gt;DisplayName0&lt;/strong&gt; &lt;/p&gt;&lt;/font&gt;
&lt;p&gt;Define 2 prompts&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image002_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="213" alt="clip_image002" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Prompt Name: &lt;/p&gt;
&lt;p&gt;&lt;b&gt;displayname&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Prompt SQL Statement:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;begin&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;if (@__filterwildcard = &amp;#39;&amp;#39;)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Select DISTINCT DisplayName0 FROM v_GS_ADD_REMOVE_PROGRAMS order by DisplayName0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;else&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Select DISTINCT DisplayName0 FROM v_GS_ADD_REMOVE_PROGRAMS&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WHERE DisplayName0 like @__filterwildcard&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;order by DisplayName0&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;end&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image004_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="244" alt="clip_image004" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image004_thumb.jpg" width="221" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Prompt Name:&lt;/p&gt;
&lt;p&gt;Collid&lt;/p&gt;
&lt;p&gt;Prompt SQL Statement:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;begin&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;if (@__filterwildcard = &amp;#39;&amp;#39;)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;select CollectionID, Name from v_Collection order by Name&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;else&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;select CollectionID, Name from v_Collection&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WHERE CollectionID like @__filterwildcard&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;order by Name&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;end&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image006_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="244" alt="clip_image006" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image006_thumb.jpg" width="226" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you’ve put it all together is should look like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image008_2.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="142" alt="clip_image008" src="http://myitforum.com/cs2/blogs/sthompson/WindowsLiveWriter/HowdoIuseawildcardforaddremoveprograminf_9F30/clip_image008_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=113631" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="SQL" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL/default.aspx" /><category term="Reporting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Reporting/default.aspx" /></entry><entry><title>How do I tune SQL Server memory for optimal performance with SMS/SCCM?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/04/how-do-i-tune-sql-server-memory-for-optimal-performance-with-sms-sccm.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/03/04/how-do-i-tune-sql-server-memory-for-optimal-performance-with-sms-sccm.aspx</id><published>2008-03-04T20:48:00Z</published><updated>2008-03-04T20:48:00Z</updated><content type="html">&lt;h3 style="MARGIN:auto 0in;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;Question:&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style="MARGIN:auto 0in;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;We are in the process of fine tuning our primary site.&amp;nbsp; We are looking at changing some setting in SQL 2005.&amp;nbsp; Is anyone using AWE to allocate memory with SCCM?&amp;nbsp; Also is there a recommendation to use a maximum server memory?&amp;nbsp; We have 4 gb of memory on our Primary Site Server with the database on the same box.&amp;nbsp; Should we up our maximum server memory in SQL to use more then 2 gb?&lt;/span&gt;&lt;span style="FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;~~~~&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;[Steve] When running Microsoft SQL Server 2005 on a server (let’s say Windows&amp;nbsp;Server 2003) with&amp;nbsp;SCCM/SMS, do not let SQL Server dynamically use all available memory. There are circumstances that may allow SQL to consume all available memory. This activity in turn will slow the operating system, SMS/SCCM, or both.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&amp;nbsp;&lt;/span&gt; 
&lt;p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;The goal of fine tuning memory usage is to balance the amount of memory allocated to SQL, with leaving enough&amp;nbsp;memory that the OS and SMS/SCCM can function without using the page file.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;I recommend using AWE, with Dynamic memory configuration. Set a minimum and maximum amount of server memory.&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp; &lt;/span&gt;Use SQL Server: &lt;b style="mso-bidi-font-weight:normal;"&gt;DBCC MEMORYSTATUS&lt;/b&gt; for memory usage metrics as perfmon is not accurate&amp;nbsp;&lt;a title="http://support.microsoft.com/kb/907877/en-us" href="http://support.microsoft.com/kb/907877/en-us"&gt;http://support.microsoft.com/kb/907877/en-us&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;With 4GB of memory, and as a starting point, consider allocating a maximum of 3GB (dynamic memory) to SQL Server. This allows the remainder of memory to be reserved for the operating system and SMS/SCCM.&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;If you decide not to use AWE, use performance monitor logging to monitor key memory counters, page file usage, etc over a few days. Make adjustments as needed to SQL Server dynamic memory usage.&amp;nbsp;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&amp;nbsp;&lt;a class="" title="SQL Server memory options" href="http://myitforum.com/cs2/photos/sthompson/images/113499/original.aspx" target="_blank"&gt;Here is one example for illustration (3gb server memory)&lt;/a&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;img height="1" alt="" src="http://myitforum.com/cs2/photos/sthompson/picture113499.aspx" width="1" align="left" border="0" /&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;From SQL Server 2005 Books Online&lt;/span&gt; 
&lt;h3 style="MARGIN:auto 0in;"&gt;&lt;span style="FONT-FAMILY:Tahoma;"&gt;Configuring Memory Options&lt;/span&gt;&lt;/h3&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;SQL Server 2005 dynamically allocates AWE-mapped memory when running with any of the Windows Server 2003 operating system editions. In other words, the buffer pool can dynamically manage AWE-mapped memory (within the constraints of the &lt;b&gt;min server memory&lt;/b&gt; and &lt;b&gt;max server memory&lt;/b&gt; options) to balance SQL Server memory use with the overall system requirements. &lt;/span&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;When AWE is enabled, SQL Server 2005 always attempts to use AWE-mapped memory. This applies to all memory configurations, including computers configured to provide applications with less than 3&amp;nbsp;GB of user mode address space.&lt;/span&gt; 
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 12pt;mso-margin-top-alt:auto;mso-list:l0 level1 lfo1;tab-stops:list .5in;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;We recommend setting AWE as the default memory mode for SQL Server 2005 running under Windows Server 2003. The Hot-Add Memory feature requires AWE to be enabled during SQL Server startup. For information, see Hot Add Memory.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;table class="MsoNormalTable" style="WIDTH:100%;mso-cellspacing:0in;mso-padding-alt:0in 0in 0in 0in;" cellspacing="0" cellpadding="0" class="MsoNormalTable"&gt;

&lt;tr style="mso-yfti-irow:0;mso-yfti-firstrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:0in;BORDER-TOP:#ece9d8;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:#ece9d8;PADDING-TOP:0in;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;&lt;b&gt;&lt;font face="Times New Roman"&gt;Note: &lt;/font&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style="mso-yfti-irow:1;mso-yfti-lastrow:yes;"&gt;
&lt;td class="" style="BORDER-RIGHT:#ece9d8;PADDING-RIGHT:0in;BORDER-TOP:#ece9d8;PADDING-LEFT:0in;PADDING-BOTTOM:0in;BORDER-LEFT:#ece9d8;PADDING-TOP:0in;BORDER-BOTTOM:#ece9d8;BACKGROUND-COLOR:transparent;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0in 0in 0pt;"&gt;&lt;font face="Times New Roman"&gt;AWE is not needed and cannot be configured on 64-bit operating systems. &lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;ul&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 12pt;mso-margin-top-alt:auto;mso-list:l1 level1 lfo2;tab-stops:list .5in;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;Since AWE-mapped memory is supported below 3&amp;nbsp;GB, you can define the &lt;b&gt;min server memory&lt;/b&gt; and &lt;b&gt;max server memory&lt;/b&gt; values within the physical memory range, or use the default values for both options.&lt;/span&gt;&lt;/li&gt;
&lt;li class="MsoNormal" style="MARGIN:0in 0in 0pt;mso-margin-top-alt:auto;mso-list:l1 level1 lfo2;tab-stops:list .5in;mso-margin-bottom-alt:auto;"&gt;&lt;span style="FONT-SIZE:10pt;FONT-FAMILY:Tahoma;"&gt;You may consider setting &lt;b&gt;max server memory&lt;/b&gt; for SQL Server to guarantee additional memory for other applications operating on the computer. Although SQL Server can dynamically release AWE-mapped memory, the current amount of allocated AWE-mapped memory cannot be swapped out to the page file.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=113489" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /></entry><entry><title>How do I return all records when there are no matching rows in a joined table?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/28/how-do-i-return-all-records-when-there-are-no-matching-rows-in-a-joined-table.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/28/how-do-i-return-all-records-when-there-are-no-matching-rows-in-a-joined-table.aspx</id><published>2008-02-28T18:30:00Z</published><updated>2008-02-28T18:30:00Z</updated><content type="html">&lt;p&gt;Question from the myITforum list:&lt;/p&gt;
&lt;p&gt;Need some help from all you experts out there, I have created an SMS report for all machines in a particular collection, but some of the machines are logged onto by local accounts, these are not being picked up on the report as there is no entry in the v_R_User, I have looked at the SQL that creates this view, it only detects accounts that are domain accounts. How can I get the ones that use local accounts to show up, do I need a left, inner, outer, right join somewhere?&lt;br /&gt;&lt;br /&gt;SELECT &amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.Netbios_Name0 AS [Computer Name],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.User_Name0 AS [KID],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUS.Full_User_Name0 AS [Full Name],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.AD_Site_Name0 AS [AD Site],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.User_Domain0 AS [Domain],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS.Manufacturer0 AS [Manufacturer],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS.Model0 AS [Model],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCM.SiteCode AS [SMS Site Code]&lt;br /&gt;FROM &amp;nbsp;&amp;nbsp;&amp;nbsp; v_R_System SYS&lt;br /&gt;JOIN &amp;nbsp;&amp;nbsp;&amp;nbsp; v_FullCollectionMembership FCM ON SYS.ResourceID=FCM.ResourceID&lt;br /&gt;JOIN &amp;nbsp;&amp;nbsp;&amp;nbsp; v_R_User RUS ON RUS.User_Name0 = SYS.User_Name0&lt;br /&gt;JOIN&amp;nbsp;&amp;nbsp;&amp;nbsp; v_GS_Computer_System CS on SYS.ResourceID = CS.ResourceID&lt;br /&gt;WHERE &amp;nbsp;&amp;nbsp;&amp;nbsp; FCM.CollectionID = &amp;#39;P000128C&amp;#39;&lt;br /&gt;ORDER BY SYS.Netbios_Name0, SYS.User_Name0&lt;/p&gt;
&lt;p&gt;~~~&lt;/p&gt;
&lt;p&gt;[Steve] The reason that there are no results shown when matching records are missing from the joined table is due to the specified JOIN statement. A JOIN statement by default, is an equi-join. An equi-join will only return records when a match is found on the specified condition.&amp;nbsp;To return all records regardless of a matching condition&amp;nbsp;from the&amp;nbsp;LEFT side of the JOIN, change the JOIN type to LEFT OUTER JOIN (below).&lt;/p&gt;
&lt;p&gt;SELECT &amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.Netbios_Name0 AS [Computer Name],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.User_Name0 AS [KID],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RUS.Full_User_Name0 AS [Full Name],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.AD_Site_Name0 AS [AD Site],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SYS.User_Domain0 AS [Domain],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS.Manufacturer0 AS [Manufacturer],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS.Model0 AS [Model],&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FCM.SiteCode AS [SMS Site Code]&lt;br /&gt;FROM &amp;nbsp;&amp;nbsp;&amp;nbsp; v_R_System SYS&lt;br /&gt;JOIN &amp;nbsp;&amp;nbsp;&amp;nbsp; v_FullCollectionMembership FCM ON SYS.ResourceID=FCM.ResourceID&lt;br /&gt;&lt;strong&gt;LEFT OUTER&lt;/strong&gt; &lt;strong&gt;JOIN&lt;/strong&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; v_R_User RUS ON RUS.User_Name0 = SYS.User_Name0&lt;br /&gt;JOIN&amp;nbsp;&amp;nbsp;&amp;nbsp; v_GS_Computer_System CS on SYS.ResourceID = CS.ResourceID&lt;br /&gt;WHERE &amp;nbsp;&amp;nbsp;&amp;nbsp; FCM.CollectionID = &amp;#39;P000128C&amp;#39;&lt;br /&gt;ORDER BY SYS.Netbios_Name0, SYS.User_Name0&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=113346" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="SQL Server" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL+Server/default.aspx" /><category term="SQL" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SQL/default.aspx" /><category term="Reporting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Reporting/default.aspx" /></entry><entry><title>How do I list computers that do not have a particular software?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/15/how-do-i-list-computers-that-do-not-have-a-particular-software.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/15/how-do-i-list-computers-that-do-not-have-a-particular-software.aspx</id><published>2008-02-15T21:01:12Z</published><updated>2008-02-15T21:01:12Z</updated><content type="html">&lt;p&gt;This question may be one of the more challenging things to solve in SQL. And, the way to achieve the results may seem unorthodox.&lt;/p&gt;  &lt;p&gt;OK, we want to get a list of all computers that do not have Winword.exe installed. Since, we are looking to create a query that executes fast, and can readily be used to join to other tables or views, we&amp;#8217;ll just return the machineid (or resourceid in other tables).&lt;/p&gt;  &lt;p&gt;Let&amp;#8217;s start with the positive, how do we get a list of all computers that have winword.exe installed.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SELECT DISTINCT SMS_G_System_SYSTEM.MachineID &lt;/p&gt;  &lt;p&gt;FROM System_DISC AS SMS_R_System &lt;/p&gt;  &lt;p&gt;INNER JOIN System_DATA AS SMS_G_System_SYSTEM &lt;/p&gt;  &lt;p&gt;ON SMS_G_System_SYSTEM.MachineID = SMS_R_System.ItemKey&lt;/p&gt;  &lt;p&gt;INNER JOIN vSMS_G_System_SoftwareFile AS SMS_G_System_SoftwareFile &lt;/p&gt;  &lt;p&gt;ON SMS_G_System_SoftwareFile.ClientId = SMS_R_System.ItemKey &lt;/p&gt;  &lt;p&gt;WHERE SMS_G_System_SoftwareFile.FileName = &amp;#39;WINWORD.EXE&amp;#39;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Will give us that list. &lt;/p&gt;  &lt;p&gt;Now, to give us a list of all computers that do not have Winword.exe installed, we use a subselect query. A subselect is a query within a query, the results from the inner query are passed to the outer query.&lt;/p&gt;  &lt;p&gt;Now, to answer the question posed earlier, how do we get a list of all computers that do not have winword.exe installed, the following query will give us that information. Check out the NOT IN clause (below), we are selecting the positive in the subquery, then excluding them from the main, or top-level query. This logic could also be used to return a list of computers where one type of software is installed, yet missing another.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SELECT DISTINCT SMS_G_System_SYSTEM.Name0 &lt;/p&gt;  &lt;p&gt;FROM System_DISC AS SMS_R_System &lt;/p&gt;  &lt;p&gt;INNER JOIN System_DATA AS SMS_G_System_SYSTEM &lt;/p&gt;  &lt;p&gt;ON SMS_G_System_SYSTEM.MachineID = SMS_R_System.ItemKey&lt;/p&gt;  &lt;p&gt;where SMS_G_System_SYSTEM.MachineID &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOT IN&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;(SELECT DISTINCT SMS_G_System_SYSTEM.MachineID &lt;/p&gt;  &lt;p&gt;FROM System_DISC AS SMS_R_System &lt;/p&gt;  &lt;p&gt;INNER JOIN System_DATA AS SMS_G_System_SYSTEM &lt;/p&gt;  &lt;p&gt;ON SMS_G_System_SYSTEM.MachineID = SMS_R_System.ItemKey&lt;/p&gt;  &lt;p&gt;INNER JOIN vSMS_G_System_SoftwareFile AS SMS_G_System_SoftwareFile &lt;/p&gt;  &lt;p&gt;ON SMS_G_System_SoftwareFile.ClientId = SMS_R_System.ItemKey &lt;/p&gt;  &lt;p&gt;WHERE SMS_G_System_SoftwareFile.FileName = &amp;#39;WINWORD.EXE&amp;#39;)&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=112712" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author></entry><entry><title>Reassign an SMS or Configuration Manager Client to another Site</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/11/reassign-an-sms-or-configuration-manager-client-to-another-site.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/11/reassign-an-sms-or-configuration-manager-client-to-another-site.aspx</id><published>2008-02-11T12:48:00Z</published><updated>2008-02-11T12:48:00Z</updated><content type="html">&lt;p&gt;Some time ago, I wrote an article about reassigning an SMS client to another SMS site. Since this topic seems to crop up periodically on both the myITforum list and public newsgroups, it is worth mentioning here.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;At the time this script was developed, we were closing a large office in one location and moving the clients to another physical location. This meant &lt;span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Arial;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;transitioning &lt;/span&gt;approximately 2,500 clients between buildings. We could have uninstalled the client first, however it seemed to make more sense to script a solution that would detect what was the current site code for the&amp;nbsp;client, and what was the client&amp;#39;s assigned site code. If these 2 values were different, reset the client to the discovered site.&lt;/p&gt;
&lt;p&gt;This functionality has also proved useful for situations where SMS/ConfigMgr clients become orphaned. This script can be launched as a machine GPO, or sent as an advertisement.&lt;/p&gt;
&lt;p&gt;* Note: probably the only &amp;quot;flaw&amp;quot; in this logic, if you have an active advertisement running, a roaming laptop could &lt;span style="FONT-SIZE:10pt;COLOR:black;FONT-FAMILY:Arial;mso-fareast-font-family:&amp;#39;Times New Roman&amp;#39;;mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;inadvertently &lt;/span&gt;be discovered/assigned to an incorrect site. This script could be tuned to detect and ignore&amp;nbsp;laptop class computers.&lt;/p&gt;
&lt;p&gt;&amp;#39; DiscoverSetAssignedSite.vbs&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Option Explicit&lt;/p&gt;
&lt;p&gt;dim oSMSClient&lt;br /&gt;dim strDiscoverSite&lt;br /&gt;dim strAssignedSite&lt;/p&gt;
&lt;p&gt;On Error Resume Next&lt;/p&gt;
&lt;p&gt;Set oSMSClient = CreateObject (&amp;quot;Microsoft.SMS.Client&amp;quot;)&lt;/p&gt;
&lt;p&gt;If err.Number &amp;lt;&amp;gt; 0 then&lt;br /&gt;&amp;#39;&amp;nbsp;&amp;nbsp; wscript.echo &amp;quot;Could not create SMS Client Object - quitting&amp;quot;&lt;br /&gt;Else&lt;br /&gt;&amp;nbsp; strDiscoverSite = CallAutoDiscoverSite ()&lt;br /&gt;&amp;nbsp; strAssignedSite = CallGetAssignedSite ()&lt;br /&gt;&amp;nbsp; If strAssignedSite &amp;lt;&amp;gt; strDiscoverSite Then&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Call SetAssignedSite (strDiscoverSite)&lt;br /&gt;&amp;nbsp; End If&lt;br /&gt;End If&lt;/p&gt;
&lt;p&gt;Set oSMSClient=nothing&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Function CallAutoDiscoverSite ()&lt;br /&gt;&amp;nbsp; dim strDiscoveredSite&lt;/p&gt;
&lt;p&gt;&amp;nbsp; strDiscoveredSite = oSMSClient.AutoDiscoverSite&lt;/p&gt;
&lt;p&gt;&amp;nbsp; If Len(strDiscoveredSite &amp;amp; &amp;quot;&amp;quot;)&amp;gt;0 Then&lt;br /&gt;&amp;nbsp; &amp;#39; we have something&lt;br /&gt;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strDiscoveredSite = &amp;quot;DiscoveredSiteNotFound&amp;quot;&lt;br /&gt;&amp;nbsp; End If&lt;br /&gt;&amp;#39;&amp;nbsp; wscript.echo &amp;quot;Discovered Site is : &amp;#39;&amp;quot; &amp;amp; strDiscoveredSite &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; CallAutoDiscoverSite = strDiscoveredSite&lt;/p&gt;
&lt;p&gt;End Function&lt;/p&gt;
&lt;p&gt;Function CallGetAssignedSite ()&lt;br /&gt;&amp;nbsp; dim strAssignedSite&lt;/p&gt;
&lt;p&gt;&amp;nbsp; strAssignedSite = oSMSClient.GetAssignedSite&lt;/p&gt;
&lt;p&gt;&amp;nbsp; If Len(strAssignedSite &amp;amp; &amp;quot;&amp;quot;)&amp;gt;0 Then&lt;br /&gt;&amp;nbsp; &amp;#39; we have something&lt;br /&gt;&amp;nbsp; Else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strAssignedSite = &amp;quot;AssignedSiteNotFound&amp;quot;&lt;br /&gt;&amp;nbsp; End If&lt;br /&gt;&amp;#39;&amp;nbsp; wscript.echo &amp;quot;Assigned Site is : &amp;#39;&amp;quot; &amp;amp; strAssignedSite &amp;amp; &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; CallGetAssignedSite = strAssignedSite&lt;/p&gt;
&lt;p&gt;End Function&lt;/p&gt;
&lt;p&gt;Sub SetAssignedSite (SiteCode)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSMSClient.SetAssignedSite SiteCode,0&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=112460" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Scripting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Scripting/default.aspx" /><category term="SMS 2003" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SMS+2003/default.aspx" /><category term="SCCM 2007" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/SCCM+2007/default.aspx" /><category term="VBScript" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/VBScript/default.aspx" /></entry><entry><title>Other methods to set Registry key values</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/08/other-methods-to-set-registry-key-values.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/08/other-methods-to-set-registry-key-values.aspx</id><published>2008-02-08T17:20:00Z</published><updated>2008-02-08T17:20:00Z</updated><content type="html">&lt;p&gt;One of the interesting things about automation, and scripting in general, there are always multiple ways to solve a problem. In yesterday’s blog, the original question “How do set DWord values in a VBScript?” was solved &lt;a href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/07/how-do-i-set-dword-values-in-a-vbscript.aspx"&gt;this way&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;There were 3 other methods (actually 2 new, one enhancement) posted yesterday that are interesting, and worth breaking down. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Method 1 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Using regedit and merging the registry keys. Now; this method has been around for a long time (the article references Windows 3.1 :), and have used it myself with great results. Jeff Gilbert was kind enough to post the method and a link to the article. &lt;/p&gt;
&lt;p&gt;Just save the regedit (modify a computer registry and export the key) and add the command line to the program/mst by using &lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&lt;strong&gt;regedit /s:REGEDIT /S /U&lt;/strong&gt; &amp;lt;your .reg goes here&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/82814/en-us"&gt;http://support.microsoft.com/kb/82814/en-us&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Additionally, you could set this as a package/program option in SMS/SCCM making this perhaps the most simple.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Method 2 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Using the &lt;a href="http://msdn2.microsoft.com/en-us/library/yfdfhz1b.aspx"&gt;WScript RegWrite method&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here’s a partial breakdown (see the link for full disclosure):&lt;/p&gt;
&lt;p&gt;Creates a new key, adds another value-name to an existing key (and assigns it a value), or changes the value of an existing value-name.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;u&gt;object&lt;/u&gt;&lt;/i&gt;&lt;b&gt;.RegWrite(&lt;/b&gt;&lt;i&gt;&lt;u&gt;strName&lt;/u&gt;&lt;/i&gt;, &lt;i&gt;&lt;u&gt;anyValue&lt;/u&gt;&lt;/i&gt; [,&lt;i&gt;&lt;u&gt;strType&lt;/u&gt;&lt;/i&gt;])&lt;/p&gt;
&lt;p&gt;It is somewhat shortened by a few lines of code (thanks to Sherry Kissinger for the code sample):&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;Set oWS = Wscript.CreateObject(&amp;quot;Wscript.Shell&amp;quot;) &lt;br /&gt;‘ Single line each, watch line wrap&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;oWS.RegWrite &amp;quot;HKLM\SOFTWARE\JavaSoft\Java Update\Policy\EnableJavaUpdate&amp;quot;, &amp;quot;00000000&amp;quot;, &amp;quot;REG_DWORD&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;oWS.RegWrite &amp;quot;HKLM\SOFTWARE\JavaSoft\Java Update\Policy\NotifyDownload&amp;quot;, &amp;quot;00000000&amp;quot;, &amp;quot;REG_DWORD&amp;quot;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Method 3&lt;/b&gt; &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Using the same method that I posted yesterday, Maarten van Willigen used an array to enumerate the key names and set the values (note: this works because each of the keys being set are DWord). Simplification is good, also very creative solution.&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;const HKEY_LOCAL_MACHINE = &amp;amp;H80000002&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;strComputer = &amp;quot;.&amp;quot; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;Set objRegistry=GetObject(&amp;quot;winmgmts:{impersonationLevel=impersonate}!\\&amp;quot; &amp;amp;_ &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;strComputer &amp;amp; &amp;quot;\root\default:StdRegProv&amp;quot;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;strKeyPath = &amp;quot;SOFTWARE\JavaSoft\Java Update\Policy&amp;quot; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;For Each strValueName In Array(&amp;quot;EnableJavaUpdate&amp;quot;,&amp;quot;NotifyDownload&amp;quot;,&amp;quot;NotifyInstall&amp;quot;) &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;nbsp; dwValue = &amp;quot;0&amp;quot; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;&amp;nbsp; objRegistry.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier" size="1"&gt;Next &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;As many of you know, I&amp;#39;m partial to scripting based solutions. However, sometimes whatever gets the job done is OK as well. &lt;/p&gt;
&lt;p&gt;In a future blog, I&amp;#39;ll post an example of why scripting and scripting solutions in general is a vitally important item to learn. &lt;/p&gt;
&lt;p&gt;I know there are other ways and languages to solve this, comments, suggestions? Let me know what you think.&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=112397" width="1" height="1"&gt;</content><author><name>sthompson</name><uri>http://myitforum.com/cs2/members/sthompson.aspx</uri></author><category term="Scripting" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/Scripting/default.aspx" /><category term="VBScript" scheme="http://myitforum.com/cs2/blogs/sthompson/archive/tags/VBScript/default.aspx" /></entry><entry><title>How do I set DWord values in a VBScript?</title><link rel="alternate" type="text/html" href="http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/07/how-do-i-set-dword-values-in-a-vbscript.aspx" /><id>http://myitforum.com/cs2/blogs/sthompson/archive/2008/02/07/how-do-i-set-dword-values-in-a-vbscript.aspx</id><published>2008-02-07T18:32:00Z</published><updated>2008-02-07T18:32:00Z</updated><content type="html">&lt;div&gt;&lt;em&gt;Need help creating a vb script to merge the following registry info:&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy]&lt;br /&gt;&amp;quot;EnableJavaUpdate&amp;quot;=dword:00000000&lt;br /&gt;&amp;quot;NotifyDownload&amp;quot;=dword:00000000&lt;b