<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Ask the Performance Team</title><link>http://blogs.technet.com/b/askperf/</link><description>Thoughts from the EPS Windows Server Performance Team</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Great blog post on RDS in Windows Server 2012</title><link>http://blogs.technet.com/b/askperf/archive/2012/05/11/great-blog-post-on-rds-in-windows-server-2012.aspx</link><pubDate>Fri, 11 May 2012 13:08:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3497457</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3497457</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/05/11/great-blog-post-on-rds-in-windows-server-2012.aspx#comments</comments><description>&lt;p&gt;Good morning Folks!&amp;nbsp; Today is a quick post to inform you of a new Blog from the Windows Server team that talks about the new RDS (Remote Desktop Services) features in Windows Server 2012.&amp;nbsp; Check it out!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blogs.technet.com/b/windowsserver/archive/2012/05/09/windows-server-2012-remote-desktop-services-rds.aspx" target="_blank"&gt;Windows Server 2012 Remote Desktop Services (RDS)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Have a great weekend!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3497457" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Terminal+Server/">Terminal Server</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Remote+Desktop+Services/">Remote Desktop Services</category></item><item><title>Improve caching for CSR</title><link>http://blogs.technet.com/b/askperf/archive/2012/04/27/improve-caching-for-csr.aspx</link><pubDate>Fri, 27 Apr 2012 11:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3494806</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3494806</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/04/27/improve-caching-for-csr.aspx#comments</comments><description>&lt;p&gt;In previous versions of Windows, clients with remote connections would often initiate network traffic to retrieve remote information from a print server, resulting in a resource-consuming call to the server.&amp;#160; This behavior was more significant when Client Side Rendering (CSR) was used that caused increased communication with the remote server. Many applications use certain APIs to query the print spooler for print information at startup, at document creation time, and when displaying available fonts. This often resulted in visible delays or hangs in the applications from the user’s perspective. In Windows 7 and Windows Server 2008 R2, the performance of many spooler API calls has been improved through more aggressive caching that will reduce the remote server calls and improve end user performance.&lt;/p&gt;  &lt;p&gt;In general, the intent of the enhancements has been to decouple applications that use client print APIs (winspool.drv) from the print server to avoid application UI delays. Some of the APIs that are used by major client applications such as the print dialog and Microsoft Office have had their caching behavior improved. OpenPrinter, EnumJobs, and some forms of GetPrinterDriver are the main APIs that will see caching improvements.&lt;/p&gt;  &lt;h6&gt;&lt;b&gt;&lt;/b&gt;&lt;/h6&gt;  &lt;h6&gt;&lt;font style="font-weight: bold"&gt;Overview of CSR caching behavior&lt;/font&gt;&lt;/h6&gt;  &lt;p&gt;The CSR provider maintains a cache of print connection data for remote connections. This cache is persisted in the registry and loaded at provider startup.&amp;#160; The cache follows a “pull” model and in general operates asynchronously.&amp;#160; Calls requesting remote connection data are serviced from the local cache immediately where possible, and an asynchronous work item is queued that will synchronize with the remote server if necessary. Only in the case where the remote data is not cached locally will the call go over the network synchronously. The asynchronous synchronization with the remote server is done only periodically; most cache entries have an expiry time of 120 seconds. Cache coherency is enforced by checking Change IDs associated with both the local cache and the remote connection. If a request is made for cached data last accessed over 120 seconds ago, the remote Change ID will be compared to the local one, incurring a single RPC call of overhead. If they differ the cache will be updated from the remote server, incurring one or more RPC calls.&lt;/p&gt;  &lt;h6&gt;&lt;b&gt;&lt;/b&gt;&lt;/h6&gt;  &lt;h6&gt;&lt;b&gt;Caching behavior of common APIs&lt;/b&gt;&lt;/h6&gt;  &lt;p&gt;The table below shows the caching characteristics of common print APIs. The cache refresh interval for each caching mode is described in the next section.&lt;/p&gt;  &lt;p&gt;Caching behavior of key print APIs    &lt;table border="1" cellspacing="0" cellpadding="0" width="534"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="248"&gt;           &lt;p&gt;&lt;b&gt;API&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="119"&gt;           &lt;p&gt;&lt;b&gt;Caching Behavior&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p&gt;&lt;b&gt;Caching Mode&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="102"&gt;           &lt;p&gt;&lt;b&gt;Changed from previous versions ?&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="248"&gt;           &lt;p&gt;OpenPrinter&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="119"&gt;           &lt;p&gt;Cached.&amp;#160; Client spooler still initiates network traffic for “Set” API calls and opens the remote printer handle when absolutely necessary.&amp;#160; OpenPrinter learns the server response per access mask; this it may block while populating the cache with results for masks it hasn't seen before.&amp;#160; &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="64"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="102"&gt;           &lt;p&gt;Yes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="247"&gt;           &lt;p&gt;EnumJobs&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="119"&gt;           &lt;p&gt;Cached. Certain operations, like creating a job, cause an update of the EnumJobs cache.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="65"&gt;           &lt;p&gt;Volatile&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;Yes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="247"&gt;           &lt;p&gt;GetPrinterDriver&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="119"&gt;           &lt;p&gt;Cached when there is a printer connection to the target server.&amp;#160; &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="66"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;Yes, but only for level 8 calls&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="247"&gt;           &lt;p&gt;EnumForms&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Cached for both server and printer handles when there is at least one printer connection to the target server. Not cached otherwise.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="67"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;EnumPrinterDrivers&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Not cached.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;EnumPrintProcessorDatatypes&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Cached.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;Yes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;GetPrinter&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Cached when there is a printer connection to the target server.&amp;#160; Not cached otherwise.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;GetJob&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Not cached.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;EnumPrinters&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Cached for Level 4.&amp;#160; Level 4 only returns data when there are print connections.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;Yes&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;EnumPorts&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Not cached.&amp;#160; &lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="68"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="246"&gt;           &lt;p&gt;OpenPrinter2&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="118"&gt;           &lt;p&gt;Cached based on flag.&amp;#160; Calls with ‘NO_CACHE’ flag will not be cached.&amp;#160; Calls without the ‘NO_CACHED’ flag will be cached.&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="69"&gt;           &lt;p&gt;Normal&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="101"&gt;           &lt;p&gt;No&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;h6&gt;&lt;a name="_Ref226111633"&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/h6&gt;  &lt;h6&gt;&lt;font style="font-weight: bold"&gt;Registry keys for cache refresh intervals&lt;/font&gt;&lt;/h6&gt;  &lt;p&gt;Two registry key values control the cache refresh behavior for print APIs. Caching mode “Normal” is controlled by the following registry key value and defaults to 120 seconds:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;HKLM\Software\Policies\Microsoft\Windows NT\Printers\SyncCacheAgeUser&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Caching mode “Volatile” is controlled by the following registry key value and defaults to 0 seconds:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#0000ff"&gt;HKLM\Software\Policies\Microsoft\Windows NT\Printers\SyncCacheAgeVolatile&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;-Bernd Hogen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3494806" width="1" height="1"&gt;</description></item><item><title>Task Scheduler Error “A specified logon session does not exist”</title><link>http://blogs.technet.com/b/askperf/archive/2012/04/18/task-scheduler-error-a-specified-logon-session-does-not-exist.aspx</link><pubDate>Wed, 18 Apr 2012 11:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3492736</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3492736</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/04/18/task-scheduler-error-a-specified-logon-session-does-not-exist.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf!&amp;#160; Kapil Patry here from the Microsoft Platforms Support Team.&amp;#160; I am blogging today about an issue I recently worked.&amp;#160; This particular issue dealt with the creation of a task using Task Scheduler on a Windows 2008 R2 Server (can occur on Windows 7 as well).&amp;#160; When I attempted to create a scheduled task, the following error appeared:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4466.clip_5F00_image001_5F00_485D569B.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6114.clip_5F00_image001_5F00_thumb_5F00_4BFB7178.png" width="478" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Task Scheduler&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;An error has occurred for the task &amp;lt;task name&amp;gt;. Error message: The following error was reported: A specified logon session does not exist. It may have already been terminated..&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;This error came up whether I was logged on as a Local Administrator, Domain Administrator, or any other user that had rights to log on locally.&lt;/p&gt;  &lt;p&gt;After extensive research, I found that the above error will only occur if the following Security Policy is enabled and you select the “Run whether user is logged on or not” Security option on the General tab, when creating a new task:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Network access: Do not allow storage of passwords and credentials for network authentication&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8171.clip_5F00_image003_5F00_6733CA79.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1738.clip_5F00_image003_5F00_thumb_5F00_0676714D.jpg" width="568" height="220" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To resolve this issue, simply Set this policy to Disabled:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0654.clip_5F00_image005_5F00_45D424DD.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4454.clip_5F00_image005_5F00_thumb_5F00_30766F75.jpg" width="389" height="461" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The new version of Task Scheduler (Windows Vista onwards) uses Windows Credential Manager to store the credentials of the account that is specified to perform a task.&amp;#160; If the &lt;b&gt;Network access: Do not allow storage of passwords and credentials for network authentication&lt;/b&gt; policy is enabled and applied, Credential Manager cannot store the credentials locally, thus this error message appears.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; you will not receive this error if the “Run only when user is logged on” Security option on the General tab is selected (we do not store passwords in this scenario).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Addition Resources&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc507860.aspx" target="_blank"&gt;Windows Vista Task Scheduler&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc722152.aspx" target="_blank"&gt;Task Security Context&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb756979.aspx" target="_blank"&gt;Task Scheduler 2.0&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Kapil Patry&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3492736" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Task+Scheduler/">Task Scheduler</category></item><item><title>Migrating Print Queues quickly using PRINTBRM, configuration files, and the Generic/Text Only Driver</title><link>http://blogs.technet.com/b/askperf/archive/2012/04/03/migrating-print-queues-quickly-using-printbrm-configuration-files-and-the-generic-text-only-driver.aspx</link><pubDate>Tue, 03 Apr 2012 11:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3489766</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3489766</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/04/03/migrating-print-queues-quickly-using-printbrm-configuration-files-and-the-generic-text-only-driver.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf! Digvijay here to chat about print server migration. All server admins have probably had an opportunity to migrate print servers. This process can be fast and easy when migrating between the same versions of operating systems; and can be done with a bit of effort moving between Operating Systems with different architecture (e.g., moving from 32-bit to 64-bit versions of Server 2008). However, things really get challenging when we have to migrate from an older Operating System to the latest Operating System on a different architecture. (e.g., from Windows 2003 Server x86 to Windows Server 2008 R2 x64). Fortunately, there are new tools such as the &lt;a href="http://technet.microsoft.com/en-us/library/cc731857.aspx" target="_blank"&gt;Print Management Console&lt;/a&gt; that ships with Server 2008 R2 or, if you prefer the command line interface, then you can use &lt;a href="http://technet.microsoft.com/en-us/library/dd379470(v=WS.10).aspx" target="_blank"&gt;PRINTBRM.EXE&lt;/a&gt;. However, there can be some hurdles getting all the printers migrated successfully if we do not understand the Printer restoration process and fulfill necessary pre-requisites.&lt;/p&gt;
&lt;p&gt;Things to keep in mind during printer migrations:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;A print queue cannot function without a driver of the same server architecture (x86 or x64) on which it exists.&amp;nbsp; &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. &lt;/b&gt;&lt;b&gt;Unless the print processor is migrated successfully, the print queue will not show up.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. &lt;/b&gt;&lt;b&gt;If you are migrating from a 32-bit Operating System to a 64-bit Operating System, it is important that you have 64-bit drivers pre-installed for all of your printers, along with the 32-bit drivers. (Remember that for a 64-bit client to print to print server hosted on 32-bit Operating System, you need the 64-bit version of the driver.)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. &lt;/b&gt;&lt;b&gt;When a cross-architecture migration includes the migration of printer language monitors, an error will occur during the process of restoring the printers to the destination server using the PRINTBRM command-line tool. The reason for the error is that language monitor driver architecture must always be the same as the source server architecture. Therefore, when migrating from x86-based architecture to x64-based platforms, language monitor migration cannot be successful. An error posted to the event log will state that the source architecture is not the same as that of the destination server.&lt;/b&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;More info about this behavior can be found in the &lt;/b&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd379510(v=ws.10).aspx" target="_blank"&gt;Print Services Migration Guide&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. &lt;/b&gt;&lt;b&gt;When using PRINTBRM, always run commands from an Administrative command prompt&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;If performing a 32-bit to 64-bit migration and all the existing client machines are 32-bit, then you will have to install 64-bit drivers for all the 32-bit drivers before starting the migration. It is common to have third-party 32-bit printer drivers that do not have 64-bit equivalents. For those instances, we typically suggest using universal drivers if available but contacting the printer vendor for their input is the safest bet.&lt;/p&gt;
&lt;p&gt;During the Printer restore in cross-platform scenarios, if the backup file does not contain driver binaries for target server platform, PRINTBRM will attempt to install the drivers from the target server&amp;rsquo;s driver store if a matching driver is available. If a matching driver for the target platform is not available (either in the backup or on the server) then the print queue will not be created and there will be errors. See below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3021.image_5F00_4A7E7A35.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6138.image_5F00_thumb_5F00_02BCF14E.png" width="550" height="277" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7215.image_5F00_76BB0119.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4571.image_5F00_thumb_5F00_5633C167.png" width="551" height="275" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We will see relevant events in the event viewer also:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5460.image_5F00_555B5B7D.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3173.image_5F00_thumb_5F00_2695A2DB.png" width="552" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2818.image_5F00_4C8B5331.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2821.image_5F00_thumb_5F00_7DAA8DD1.png" width="552" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7215.image_5F00_0AA46DE3.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7608.image_5F00_thumb_5F00_09CC07F9.png" width="553" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So to make it easy for everyone to understand, here is the straightforward way to successfully restore all the printers:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. &lt;/b&gt;&lt;b&gt;Install 64-bit drivers on the Windows 2003 x86 Print server (source) or install all the required 64-bit drivers on the 2008/R2 Server (target). Keep in mind that the driver name string must be an exact match. If the names do not match exactly, the migration will treat it as if the driver is not present. &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Take a backup of the printers on the Windows 2003 source server using the Print Management Console or printbrm.exe run from the Windows 2008 R2 Server.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Import the backup to the 2008 R2 server.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; We need to preinstall any driver that has different components when installed on x86 than when installed on x64. As long as the driver is installed then the printer installation will not be blocked unless there is a non-existent Monitor value in the Printer registry key.&amp;nbsp; If the printer (not the driver) requires this setting, then we will need to install the driver that uses this monitor on the x64 machine.&amp;nbsp; If there is no x64 monitor provided by the vendor or if the vendor provides a new x64 monitor that uses a different name, then you will need to add a printer using the x64 version of the driver on the new machine since the vendor providing the driver did not provide compatibility to the new OS.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Keeping it simple&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;To avoid most of these driver and component pitfalls, it&amp;rsquo;s often easiest to switch all the print processors and print monitors on the source server over to some basic defaults ones (eg: cleaning up the PRINT registry before starting with the migration). This will speed up the process and maximize the number of queues successfully migrated. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Microsoft has provided a &lt;a href="http://go.microsoft.com/?linkid=9662904" target="_blank"&gt;Spooler FixIT for Windows 2003/2008&lt;/a&gt; to automate the spooler cleanup process. See our &lt;a href="http://blogs.technet.com/b/askperf/archive/2012/02/24/microsoft-fixit-for-printing.aspx" target="_blank"&gt;previous AskPerf blog entry&lt;/a&gt; for information about the functionality and usage of this tool.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;We also recommend removing old and unused drivers from the server before taking a backup.&lt;/p&gt;
&lt;p&gt;However, if you do not want to go through this lengthy process of fulfilling these prerequisites, are on a time crunch, want to quickly restore the print queue information on the target server and deal with the driver worries later, then read on.&lt;/p&gt;
&lt;p&gt;In order to quickly get the queues migrated to the new server, we can create them using the &amp;ldquo;Generic / Text only&amp;rdquo; printer driver without restoring any of original the drivers on the target. Remember that we need to have 64-bit drivers present either in the package or on the target server for the restore to finish and the print queue to be available for printing.&lt;/p&gt;
&lt;p&gt;Here are the steps to successfully migrate all of your print queues using the in-box &amp;ldquo;Generic/Text Only&amp;rdquo; print driver:&lt;/p&gt;
&lt;p&gt;1. On the source Windows 2003 Server, change all print processors to winprint using the following setprinter.exe command:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SetPrinter.exe \\Servername 2 pPrintProcessor="Winprint" &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;This can also be accomplished using WMI:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;wmic printer set PrintProcessor = WinPrint &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;2. Install the latest update for Printbrm on the target 2008R2 server:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;2636591" target="_blank"&gt;KB 2636591&amp;nbsp; An update to improve the restore operation performance of Printbrm.exe in Windows 7 or in Windows Server 2008 R2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;3. Install a local printer on the target 2008 R2 server using the &lt;b&gt;&lt;i&gt;Generic / Text Only&lt;/i&gt;&lt;/b&gt; driver and share it to enable the firewall exceptions for the Print Services.&lt;/p&gt;
&lt;p&gt;4. From the Windows 2008R2 server, take a backup of the 2003 print server using the nobin switch&lt;/p&gt;
&lt;p&gt;(we are using the nobin switch since we don&amp;rsquo;t want to migrate any of the print drivers):&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Printbrm.exe &amp;ndash;b &amp;ndash;s \\servername &amp;ndash;f nobin.printerexport &amp;ndash;nobin &lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. &lt;/b&gt;Next, we have to modify the contents of the backup files. Expand the printerexport backup to a directory and the replace the BrmDrivers.xml, BRMLMons.xml and PProcs.xml files. The command to extract the files to a directory is:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;printbrm.exe&amp;nbsp; -r -d c:\temp\expand&amp;nbsp; -f nobin.printerexport&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7380.image_5F00_68D89551.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2818.image_5F00_thumb_5F00_7A48F629.png" width="552" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The Expanded directory will look similar to this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7128.image_5F00_39A6A9BA.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2402.image_5F00_thumb_5F00_38CE43D0.png" width="552" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;BrmDrivers&lt;/b&gt; &amp;ndash; contains a list of every driver installed on the computer and the driver files for each driver&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BrmForms&lt;/b&gt; &amp;ndash; contains a list of all the installed forms&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BrmLMons&lt;/b&gt; &amp;ndash; will usually contain either Windows NT x86 or Windows x64 as the architecture and a list of port monitors and the port monitor files installed&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BrmPorts&lt;/b&gt; &amp;ndash; contains a list of all the installed printer ports&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BrmPrinters&lt;/b&gt; &amp;ndash; contains a list of all printers that have been installed&lt;/li&gt;
&lt;li&gt;&lt;b&gt;BrmSpoolerAttrib&lt;/b&gt; &amp;ndash; contains information about the spooler directory path and also indicates whether or not the source server was a cluster server&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;6. Now we need to edit the existing xml files and delete the information about unused print processors, language monitors and drivers in them and then create a new file without these components.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; You may ask if we already set all the printers to use WinPrint as default print processor using the earlier methods, then why do I need to do this? The answer is that when we take a backup using PRINTBRM, the tool copies all the files from their respective directories inside C:\Windows\System32\spool\. Hence even if we have replaced the information on the queues, these files will be backed up and at the restore operation, they will also be restored. So even though we took a backup using the nobin switch, the xml files contains information about all the drivers. When you attempt to restore, the server will try to look for these drivers and restore them. Also, the -nobin switch only omits the driver files, the Language monitor and the Print processors are still backed-up.&lt;/p&gt;
&lt;p&gt;For creating new BrmDrivers.xml, BRMLMons.xml and PProcs.xml files, we can use the following templates:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;BrmDrivers.xml&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;=========== &lt;/p&gt;
&lt;p&gt;&amp;lt;PRINTERDRIVERS&amp;gt; &lt;br /&gt;&amp;lt;/PRINTERDRIVERS&amp;gt;&lt;/p&gt;
&lt;p&gt;===========&lt;/p&gt;
&lt;p&gt;&lt;b&gt;BRMLMons.xml&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;==========&lt;/p&gt;
&lt;p&gt;&amp;lt;LMONS Arch="Windows x64"/&amp;gt;&lt;/p&gt;
&lt;p&gt;==========&lt;/p&gt;
&lt;p&gt;&lt;b&gt;PProcs.xml&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;========&lt;/p&gt;
&lt;p&gt;&amp;lt;PPROCS&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/PPROCS&amp;gt;&lt;/p&gt;
&lt;p&gt;=========&lt;/p&gt;
&lt;p&gt;7. Once we have saved the new xml files in place, we will re-pack the backup using this command to get a new backup file that we will use to restore on the target server:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;printbrm.exe&amp;nbsp; -b -d c:\temp\expand&amp;nbsp; -f newbackupfile.printerexport&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;8. Now that we have a clean printer backup, we will use the &lt;a href="http://blogs.technet.com/b/askperf/archive/2009/02/20/two-minute-drill-printbrm-and-the-configuration-file.aspx" target="_blank"&gt;BRMConfig file&lt;/a&gt; to create all the printers using the &amp;ldquo;Generic / Text only&amp;rdquo; driver. The BRMConfig.xml file needs to have a mapping of all the drivers present on the source server that we want to restore with the Generic / Text Only driver.&lt;/p&gt;
&lt;p&gt;A sample BRMConfig file may look like this:&lt;/p&gt;
&lt;p&gt;=============&lt;/p&gt;
&lt;p&gt;&amp;lt;BrmConfig&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;PLUGINS&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/PLUGINS&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;DriverMap&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;DRV old="HP Universal Printing PCL 6" new="Generic / Text Only"/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;DRV old="HP Laserjet 5000 PCL 6" new="Generic / Text Only"/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;DRV old="HP Universal Printing PS 6" new="Generic / Text Only"/&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/DriverMap&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/BrmConfig&amp;gt;&lt;/p&gt;
&lt;p&gt;==================&lt;/p&gt;
&lt;p&gt;For restoring all the printers from the backup, we need to mention all the existing drivers here.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE &lt;/b&gt;The name of the driver has to be an exact match.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;9. Once you have your brmconfig.xml file finished, run this command to start the restore:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;printbrm &amp;ndash;r &amp;ndash;s \\2008R2Servername&amp;nbsp; &amp;ndash;f newbackupfile.printerexport -c c:\temp\brmconfig.xml &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; We need to provide the absolute path of the BrmConfig.xml file here.&lt;/p&gt;
&lt;p&gt;10. If all the mentioned instructions have been followed, you will see all the print queues getting created on the server using the &lt;i&gt;Generic / Text Only&lt;/i&gt; driver.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4478.image_5F00_4CE76059.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2577.image_5F00_thumb_5F00_77539176.png" width="555" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is where we started from:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7608.image_5F00_3D644E8A.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0830.image_5F00_thumb_5F00_03750B9E.png" width="557" height="437" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And this is what we have accomplished:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2500.image_5F00_5B625C7E.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0841.image_5F00_thumb_5F00_2C9CA3DC.png" width="558" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;11. Verify that the printers are working fine by sending some test pages to the printers.&lt;/p&gt;
&lt;p&gt;12. After the queues are created on the target server, you can install the 64bit drivers for the printers as per your convenience and then switch the queues again.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Simplifying the BRMConfig.xml file creation&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Considering most typical production scenarios, Print Servers you have hundreds of print queues and many print drivers, creating the BrmConfig.XML file for mapping each driver to Generic / Text Only driver can be real time consuming process. To ease the pain of creating this file yourself, there&amp;rsquo;s a BRMC tool that will come in handy. Download the tool from &lt;a href="https://brmc.codeplex.com/" target="_blank"&gt;https://brmc.codeplex.com/&lt;/a&gt; and run it from the directory where the BRMDrivers.XML is located. (So run it from the expanded location). Once the tool is run, and it creates a BRMConfig.xml file, pack the backup and then run the restore using the BrmConfig.XML file (to to step 8 and then go to step 10).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4544.image_5F00_6B8E2477.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8666.image_5F00_thumb_5F00_6AB5BE8D.png" width="546" height="573" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The BRMC tool creates the brmconfig.xml file that has the driver mappings. It also creates clean BrmDrivers.xml, BRMLMons.xml and PProcs.xml in the same directory. Be aware, the tool overwrites the original files, so save the original .printerexport file as a backup of BrmDrivers.xml, BRMLMons.xml and PProcs.xml.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Troubleshooting&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;If you encounter any errors during a Print Migration restore, check the event logs for possible causes. Common ones may be &lt;i&gt;Print Processor is unknown&lt;/i&gt;, &lt;i&gt;Unknown Port&lt;/i&gt;, or &lt;i&gt;Print driver is unknown&lt;/i&gt; which usually means that the spooler was not cleaned properly on the source server when the initial backup was generated. Look for more in-depth troubleshooting of these kinds errors in a future blog.&lt;/p&gt;
&lt;p&gt;I hope this information will come in handy the next time you are working through a printer migration. Until next time&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Addition Resources&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/dd379488(WS.10).aspx" target="_blank"&gt;Print Services Migration Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2010/06/04/installing-cross-architectural-print-drivers-32bit-on-64bit-and-vice-versa-from-the-server-locally.aspx" target="_blank"&gt;AskPerf Blog: Installing cross-architectural print drivers from the server locally&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2009/10/09/windows-7-windows-server-2008-r2-printbrm.aspx" target="_blank"&gt;AskPerf Blog: Windows 7 / Windows Server 2008 R2: PrintBRM&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2009/02/20/two-minute-drill-printbrm-and-the-configuration-file.aspx" target="_blank"&gt;Two Minute Drill: PRINTBRM and the Configuration File&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Digvijay&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3489766" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Print+Migration/">Print Migration</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/PrintBRM/">PrintBRM</category></item><item><title>Windows Performance Monitor Disk Counters Explained</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx</link><pubDate>Fri, 16 Mar 2012 21:43:58 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3487185</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3487185</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx#comments</comments><description>&lt;p&gt;Hello AskPerf and Happy Friday!&amp;#160; This is just a quick post to let you know that Flavio, one of our Disk Experts on the Core team, has posted another informative blog post; this time on Performance Monitor Disk Counters.&amp;#160; Check it out and have a great weekend!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Performance Monitor Disk Counters Explained&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/askcore/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx" href="http://blogs.technet.com/b/askcore/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx" target="_blank"&gt;http://blogs.technet.com/b/askcore/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3487185" width="1" height="1"&gt;</description></item><item><title>Print update rollup available for Windows 7 &amp; Windows Server 2008 R2</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/16/print-update-rollup-available-for-windows-7-amp-windows-server-2008-r2.aspx</link><pubDate>Fri, 16 Mar 2012 13:45:06 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3487083</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3487083</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/16/print-update-rollup-available-for-windows-7-amp-windows-server-2008-r2.aspx#comments</comments><description>&lt;p&gt;A new printing hotfix rollup was released that updates the core print spooler components localspl.dll, splwow64.exe, spoolsv.exe, win32spl.dll, and Winprint.dll.&amp;#160; This rollup is designed to reduce known issues such as printing performance, print spooler crashes, connectivity to print queues, and print driver installation.&amp;#160; &lt;/p&gt;  &lt;p&gt;To download the update and get more information on the fixes included in this rollup, please see KB article 2647753:&amp;#160; &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-US;2647753" target="_blank"&gt;Description of an update rollup for the printing core components in Windows 7 and in Windows Server 2008 R2&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Many of the printing related support cases at Microsoft are resolved by one of the included hotfixes.&amp;#160;&amp;#160; We highly recommend installing this hotfix rollup when troubleshooting any printing related issues.&amp;#160; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3487083" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category></item><item><title>Unable to connect to WMI locally – “Win32: The system cannot find the path specified”</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/09/unable-to-connect-to-wmi-locally-win32-the-system-cannot-find-the-path-specified.aspx</link><pubDate>Fri, 09 Mar 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3485581</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3485581</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/09/unable-to-connect-to-wmi-locally-win32-the-system-cannot-find-the-path-specified.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf! Sanket Jagtap here from Platforms Team here to discuss an interesting issue I recently worked.&amp;#160; My customer had a Windows 2008 R2 Server, and could not connect locally to WMI.&amp;#160; When they ran “wmimgmt.msc” and tried to connect, the following error appeared:&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;Failed to connect to &amp;lt;local computer&amp;gt; because &amp;quot;Win32: The system cannot find the path specified.&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6685.image_5F00_1CEAF6A4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2477.image_5F00_thumb_5F00_3097E038.png" width="415" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When this failed, the following events were recorded to the Application log:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Log Name: Application      &lt;br /&gt;Source: Microsoft-Windows-WMI       &lt;br /&gt;Date: &amp;lt;Date/Time&amp;gt;       &lt;br /&gt;Event ID: 28       &lt;br /&gt;Task Category: None       &lt;br /&gt;Level: Error       &lt;br /&gt;Keywords: Classic       &lt;br /&gt;User: N/A       &lt;br /&gt;Computer: &amp;lt;Computer Name&amp;gt;       &lt;br /&gt;Description: Failed to Initialize WMI Core or Provider SubSystem or Event SubSystem with error number 0x80070003. This could be due to a badly installed version of WMI, WMI repository upgrade failure, insufficient disk space or insufficient memory.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Log Name: Application      &lt;br /&gt;Source: Microsoft-Windows-WMI       &lt;br /&gt;Date: &amp;lt;Date/Time&amp;gt;       &lt;br /&gt;Event ID: 43       &lt;br /&gt;Task Category: None       &lt;br /&gt;Level: Warning       &lt;br /&gt;Keywords: Classic       &lt;br /&gt;User: N/A       &lt;br /&gt;Computer: &amp;lt;Computer Name&amp;gt;       &lt;br /&gt;Description: Windows Management Instrumentation ADAP failed to connect to namespace \\.\root\cimv2 with the following error 0x80070003&lt;/font&gt;     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;We checked the WMI Security tab, and the Root namespace was missing, as well as under the Advanced tab:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1004.image_5F00_6F8960D3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5618.image_5F00_thumb_5F00_4E95EE2C.png" width="452" height="413" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5125.image_5F00_38CC05CF.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1884.image_5F00_thumb_5F00_10B956B0.png" width="458" height="416" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;During the course of troubleshooting, we tried running “winmgmt /verifyrepository”, however it failed with a similar error:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;C:\&amp;gt;winmgmt /verifyrepository      &lt;br /&gt;WMI repository verification failed       &lt;br /&gt;Error code: 0x80070003       &lt;br /&gt;Facility: Win32       &lt;br /&gt;Description: The system cannot find the path specified.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;At this point, we decided to run the WMIDiag Tool (WMIDiag 2.1) to help troubleshoot this issue. The WMIDiag log reported the same error multiple times for most of the Root namespace:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;1843 12:43:16 (0) ** - Root, 0x80070003 - The system cannot find the path specified.      &lt;br /&gt;Error Result: 0x80070003 ( -2147024893 )       &lt;br /&gt;ID Defined as: ERROR_PATH_NOT_FOUND       &lt;br /&gt;Message Text: The system cannot find the path specified.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;We then popped open the Registry and browsed to the following key:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM]&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;We compared a working to a non-working registry and made the following discover:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Working Machine&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0827.clip_5F00_image006_5F00_3DCE437E.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2480.clip_5F00_image006_5F00_thumb_5F00_7D2BF70E.jpg" width="558" height="44" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Non-Working Machine&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1423.clip_5F00_image008_5F00_238DDA5A.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8838.clip_5F00_image008_5F00_thumb_5F00_4DFA0B77.jpg" width="561" height="43" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The registry “Type” was set to &lt;strong&gt;REG_SZ&lt;/strong&gt; instead of &lt;strong&gt;REG_EXPAND_SZ&lt;/strong&gt;. We took a backup of the CIMON folder, then deleted the old “Repository Directory” value and created a new one using the REG_EXPAND_SZ type. After a restart, WMI now successfully connected to the Repository/Default Namespace.&lt;/p&gt;  &lt;p&gt;Unfortunately, we were unable to determine what changed this value, however it could have been a user change, some type of script, or caused by an application.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2012/02/03/wmidiag-2-1-is-here.aspx" target="_blank"&gt;WMIDiag 2.1 is here!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2008/07/11/wmi-troubleshooting-the-repository-on-vista-server-2008.aspx" target="_blank"&gt;WMI Troubleshooting: The Repository on Vista / Server 2008&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;- Sanket Jagtap&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3485581" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/WMI/">WMI</category></item><item><title>Performance issues due to Inactive Terminal Server Ports</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/06/performance-issues-due-to-inactive-terminal-server-ports.aspx</link><pubDate>Tue, 06 Mar 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3484632</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3484632</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/06/performance-issues-due-to-inactive-terminal-server-ports.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf!&amp;nbsp; There are several issues that have been associated with a high number of inactive Terminal Server ports.&amp;nbsp; Delayed logon times to RDP sessions, failure of printers to redirect, and slow server performance due to registry bloat from all the ports. These inactive TS ports accumulate because the Remote Desktop Services Device Redirector service creates a new port every time an RDP session is established, but the ports are not always recycled.&amp;nbsp; Every RDP session can possibly create a new port, and every ended session means a new inactive port. Performance degradation is known to occur when 250 or more TS ports exist in the registry. Increasingly large numbers of redirected devices will exacerbate performance delays.&lt;/p&gt;
&lt;p&gt;To eliminate any issues these TS ports may cause, we have a new Windows Server 2008 R2 hotfix.&amp;nbsp; The Hotfix can be downloaded here&amp;nbsp;- KB 2655998 &lt;a href="http://support.microsoft.com/kb/2655998" target="_blank"&gt;Long logon time when you establish an RD session to a Windows Server 2008 R2-based RD Session Host server if Printer Redirection is enabled&lt;/a&gt;.&amp;nbsp; This hotfix will prevent inactive TS ports from accumulating in the future, but you also have to clean up any currently inactive TS ports using the Fixit tool included in &lt;a href="http://support.microsoft.com/kb/2655998" target="_blank"&gt;KB2655998&lt;/a&gt;.&amp;nbsp; The FixIT tool itself can also be downloaded directly from &lt;a href="http://go.microsoft.com/?linkid=9799054" target="_blank"&gt;http://go.microsoft.com/?linkid=9799054&lt;/a&gt;.&amp;nbsp; The FixIt tool will remove the entries already accumulated under the TS ports registry key below:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;" color="#ff0000"&gt;[HKLM\SYSTEM\CurrentControlSet\Control\DeviceClasses\{28d78fad-5a12-11d1-ae5b-0000f803a8c2}\##?#Root#RDPBUS#0000#{28d78fad-5a12-11d1-ae5b-0000f803a8c2}]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Because the Hotfix and the FixIt perform two different functions, you must install the Hotfix and run the FixIt one time on your 2008 R2 Remote Desktop Server.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For down-level operating systems such as Server 2003,&amp;nbsp;Server 2008 Terminal Servers and Windows 7 in a &lt;a href="http://www.microsoft.com/en-us/server-cloud/desktop/virtualization.aspx" target="_blank"&gt;VDI&lt;/a&gt; scenario, we highly recommend a scheduled task be created to execute the Inactive TS Port FixIt on a bi-weekly basis, since the hotfix only supports Windows Server 2008 R2 at this time.&lt;/p&gt;
&lt;p&gt;The FixIt is an MSI package so you can run it silently with no user interaction required.&amp;nbsp; Follow these simple steps:&lt;/p&gt;
&lt;p&gt;1. Locate the MSI file in Windows Explorer and note the exact path to it&lt;/p&gt;
&lt;p&gt;2. Click Start and type in the following:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;msiexec /package &amp;ldquo;path&amp;rdquo; /quiet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For example, if the MSI file MicrosoftFixit50833.msi is located in the &amp;ldquo;temp&amp;rdquo; folder of your C drive, then the path would be C:\temp\MicrosoftFixit50833.msi and the command would look like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;msiexec /package &amp;ldquo;C:\temp\MicrosoftFixit50833.msi&amp;rdquo; /quiet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;3. To add logging and check the results, use this command:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;msiexec /package "c:\temp\MicrosoftFixit50833.msi" /quiet /log c:\temp\MSI50833.log&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MSIEXEC commands &lt;a href="http://support.microsoft.com/kb/314881" target="_blank"&gt;http://support.microsoft.com/kb/314881&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Available Updates for Terminal Services (Remote Desktop Services) in Windows Server 2008 &lt;a href="http://support.microsoft.com/kb/2312539" target="_blank"&gt;http://support.microsoft.com/kb/2312539&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Available Updates for Terminal Services (Remote Desktop Services) in Windows Server 2008 R2 &lt;a href="http://support.microsoft.com/kb/2601888" target="_blank"&gt;http://support.microsoft.com/kb/2601888&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Jess Cunningham&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3484632" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Terminal+Server/">Terminal Server</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Remote+Desktop+Services/">Remote Desktop Services</category></item><item><title>Internet Printing – How Windows decides if http or RPC is used for a Print Connection to an IPP Server</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/02/internet-printing-how-windows-decides-if-http-or-rpc-is-used-for-a-print-connection-to-an-ipp-server.aspx</link><pubDate>Fri, 02 Mar 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3484175</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3484175</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/02/internet-printing-how-windows-decides-if-http-or-rpc-is-used-for-a-print-connection-to-an-ipp-server.aspx#comments</comments><description>&lt;p&gt;We often get asked from time to time how to force printers that a user has installed on their workstation using the IPP website to use RPC in lieu of the Internet printing protocol. There is a document available on TechNet that explains how to accomplish this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc757981(WS.10).aspx" target="_blank"&gt;http://technet.microsoft.com/en-us/library/cc757981(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(It’s as simple as changing the IE Zone Security to Medium-Low)&lt;/p&gt;  &lt;p&gt;Often though, we run into customers who have already customized the settings in their IE Zone security and would still like to force the use of RPC for IPP printers without resetting those IE Zone settings to Medium-Low.&lt;/p&gt;  &lt;p&gt;So what settings is the IPP printer really checking to accomplish this?&lt;/p&gt;  &lt;p&gt;The process Windows uses to decide how to connect to a printer looks like this:&lt;/p&gt;  &lt;p&gt;1. The OS checks if the following Registry Key is set:&lt;/p&gt;  &lt;p&gt;[HKEY_CURRENT_USER\Printers\Settings\PreferredConnection]&lt;/p&gt;  &lt;p&gt;If this key exists and its value is 0, the printer connection is using HTTP.&lt;/p&gt;  &lt;p&gt;2. If the Registry Key is not set we are looking for two Settings:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;a. Java Permissions&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This Setting cannot be made inside IE. You have to configure the Settings with GPO.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7737.clip_5F00_image002_5F00_7B38D2D1.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7416.clip_5F00_image002_5F00_thumb_5F00_0113766B.jpg" width="554" height="360" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Java Permissions need to be at least set to Medium Safety to use RPC. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;b. ActiveX&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Additionally the OS checks the Value from “Initialize and script ActiveX controls not marked as safe for scripting”.&lt;/p&gt;  &lt;p&gt;If the Value is disabled we will use RPC otherwise we will use HTTP for the Print Connection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0385.clip_5F00_image003_5F00_0E0D567C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3122.clip_5F00_image003_5F00_thumb_5F00_2DBC3044.png" width="513" height="216" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A last pre-requisite is that the Protected Mode in IE needs to be turned off to use RPC&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3034.clip_5F00_image004_5F00_17F247E7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0066.clip_5F00_image004_5F00_thumb_5F00_4C92A422.png" width="522" height="99" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Bernd Hogen&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3484175" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category></item><item><title>Windows Server 8 beta now available!</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/01/windows-server-8-beta-now-available.aspx</link><pubDate>Thu, 01 Mar 2012 16:14:19 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3484106</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3484106</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/01/windows-server-8-beta-now-available.aspx#comments</comments><description>&lt;p&gt;This morning Bill Laing, Corporate Vice President of Server and Cloud Announced the &lt;a href="http://blogs.technet.com/b/windowsserver/archive/2012/03/01/windows-server-8-beta-available-now.aspx" target="_blank"&gt;beta release of Windows Server “8”&lt;/a&gt;.&amp;#160; I think it is really important for anyone who is interested in hearing more about what is coming in this beta with Hyper-V and our Virtualization development efforts; please go read what Bill has to say.&lt;/p&gt;  &lt;p&gt;In the coming days and months, there will be more Windows Server “8” blog posts coming from Bill Laing and his leadership team on the &lt;a href="http://blogs.technet.com/b/windowsserver/" target="_blank"&gt;Windows Server Blog&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Also, stay tuned in the coming days and weeks for more deeper dives in the supporting technologies here.&amp;#160; I have been waiting to start talking, so hope you have some time carved out to learn more about Windows Server “8” technologies.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/evalcenter/hh670538.aspx?ocid=&amp;amp;wt.mc_id=TEC_108_1_33" target="_blank"&gt;Download Windows Server “8” Beta here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3484106" width="1" height="1"&gt;</description></item><item><title>Windows 8 Consumer Preview available now!</title><link>http://blogs.technet.com/b/askperf/archive/2012/03/01/windows-8-consumer-preview-available-now.aspx</link><pubDate>Thu, 01 Mar 2012 13:54:13 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3484063</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3484063</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/03/01/windows-8-consumer-preview-available-now.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf!&amp;#160; Yesterday we announced the availability of the Windows 8 Consumer Preview (beta) for download/testing.&amp;#160; This is huge for our Client OS business and we encourage you to download and play around with it.&amp;#160; Please see the following links for information and the download location for the Windows 8 beta.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://windows.microsoft.com/en-US/windows-8/consumer-preview" href="http://windows.microsoft.com/en-US/windows-8/consumer-preview" target="_blank"&gt;Windows 8 Consumer Preview&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://windows.microsoft.com/en-US/windows-8/download" target="_blank"&gt;Windows 8 Download Link&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/b8/archive/2012/02/29/welcome-to-windows-8-the-consumer-preview.aspx?ocid=soc-n-mea-loc--ZaFb" target="_blank"&gt;Welcome to Windows 8 – The Consumer Preview&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/b8/archive/2012/02/29/running-the-consumer-preview-system-recommendations.aspx" target="_blank"&gt;Running the Consumer Preview: system recommendations&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=28970" target="_blank"&gt;Windows 8 Consumer Preview Product Guide for Business&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We will be Blogging more about the exciting new features from a “Performance” standpoint over the coming months, so stay tuned!&lt;/p&gt;  &lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3484063" width="1" height="1"&gt;</description></item><item><title>Microsoft Fixit for Printing</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/24/microsoft-fixit-for-printing.aspx</link><pubDate>Fri, 24 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3482664</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3482664</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/24/microsoft-fixit-for-printing.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf world!&amp;#160; Jeff Hagler from the Remote Resources team here to chat about printing.&amp;#160; How many of you have ever dealt with an issue where you just knew that something was wrong with your print spooler but could not quite put a finger on it?&amp;#160; Maybe print jobs were slow, certain users could print to some printers but not others, or maybe nobody could print at all?&lt;/p&gt;  &lt;p&gt;Back in the day, we included a tool with the &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=17657" target="_blank"&gt;Windows 2003 Resource Kit&lt;/a&gt; called Cleanspl that was able to make sure that the spooler service was configured correctly and clear of any third party dependencies that may be referencing bad/missing files.&amp;#160; Cleanspl is a great tool, but by being hidden in the resource kit, it was rarely used.&amp;#160; Up until now, this tool did not exist/work in recent Operating Systems like Windows Server 2008..&lt;/p&gt;  &lt;p&gt;We are happy to announce the same functionality in Cleanspl (and a bit more) has been built into one of our Fixits that will run on Windows XP/2003 and Windows Vista/2008 and can be downloaded from &lt;a href="http://go.microsoft.com/?linkid=9662904" target="_blank"&gt;here&lt;/a&gt;.&amp;#160;&amp;#160; If you are running Windows 7 or Server 2008 R2, have no fear as we have a similar tool for you in the works right now, and we’ll update this blog with a link as soon as it becomes available.&lt;/p&gt;  &lt;p&gt;This Fixit package consists of two modes: &lt;b&gt;Light&lt;/b&gt; and &lt;b&gt;Full&lt;/b&gt;.&amp;#160; &lt;b&gt;Light&lt;/b&gt; will make changes to the spooler that should not require your end user to make any changes, while the &lt;b&gt;Full&lt;/b&gt; mode will restore the print spooler to defaults and will require a complete reinstall of your print drivers and printers.&amp;#160; Think of the &lt;b&gt;Light&lt;/b&gt; version as something you can run on any system (print server, terminal server, normal client system) as a first troubleshooting step, and the &lt;b&gt;Full&lt;/b&gt; version as something to reserve for systems that get their printers and print drivers pushed down from Print Servers (via Group Policy and Point and Print).&amp;#160; Let’s cover the key part of the previous statement again &lt;b&gt;– do not run the Full version on a Print Server as it will delete all the printers.&amp;#160; Basically, it puts your Print Environment back to the way it was when the OS was installed.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;When you first run the Fixit on your system, you will be prompted with the normal installation/licensing agreement screens.&amp;#160; You will then receive the dialog box below.&amp;#160; To run the &lt;b&gt;Light&lt;/b&gt; version, just click Next.&amp;#160; To run the &lt;b&gt;Full&lt;/b&gt; version, you will need to check the box to “Reset the print spooler to defaults”.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt; the &lt;b&gt;Light&lt;/b&gt; version does not require a reboot but the &lt;b&gt;Full&lt;/b&gt; version does.&amp;#160; &lt;b&gt;Again,&lt;/b&gt; &lt;b&gt;do not run the Full version on a Print Server as it will delete all the printers.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3146.clip_5F00_image001_5F00_19346774.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3443.clip_5F00_image001_5F00_thumb_5F00_5172DE8C.jpg" width="462" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here are the details on what actually happens during each of these cleanups:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Light Mode&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Set the print spooler service back to its defaults (automatically start, run as Local System, etc.) &lt;/li&gt;    &lt;li&gt;Remove any dependencies that the spooler may have on 3&lt;sup&gt;rd&lt;/sup&gt; party services &lt;/li&gt;    &lt;li&gt;Delete any print jobs from %windir%\system32\spool\printers (shd and spl files) &lt;/li&gt;    &lt;li&gt;Turn on logging of print errors and warning to the event log (Printers -&amp;gt; File -&amp;gt; Server Properties -&amp;gt; Advanced Tab -&amp;gt; “Log spooler error events” and “Log spooler warning Events” will be checked) &lt;/li&gt;    &lt;li&gt;Make sure the standard print monitors are present (USB, Local Port, and TCPIP) under [HKLM\CurrentControlSet\Control\Print\Monitors] (and WSD on 2008/Vista only) &lt;/li&gt;    &lt;li&gt;Ensure that the winprint print processor is present for the architecture of the computer – for example: [HKLM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\winprint] &lt;/li&gt;    &lt;li&gt;Start the print spooler service &lt;/li&gt;    &lt;li&gt;If any of the core print spooler binaries are missing (spoolsv.exe, spoolss.dll, localspl.dll, win32spl.dll), the package attempts to copy that file from dllcache - if they aren’t present in dllcachce, we log that in the desktop log file &lt;/li&gt;    &lt;li&gt;If ntprint.inf is missing, we log that to the desktop log file &lt;/li&gt;    &lt;li&gt;If there is a bogus path for the spool directory DefaultSpoolDirectory under [HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers], we log that information to the desktop log file &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Full Mode&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Does all of the &lt;b&gt;Light&lt;/b&gt; steps first &lt;/li&gt;    &lt;li&gt;Delete *.spl and *.shd files from a non-default spool folder &lt;/li&gt;    &lt;li&gt;Delete *.spl and *.shd files from the default spool folder:&amp;#160; %windir%\System32\spool\printers &lt;/li&gt;    &lt;li&gt;Delete printer shares &lt;/li&gt;    &lt;li&gt;Delete per-machine printers from [HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers] (except on Vista do not delete &amp;quot;Microsoft XPS Document Writer&amp;quot; and “Fax”) &lt;/li&gt;    &lt;li&gt;Delete per-machine connections from [HKLM\SYSTEM\CurrentControlSet\Control\Print\Connections] and the “Connections” key itself &lt;/li&gt;    &lt;li&gt;Delete per-user connections under &amp;lt;USER HIVE&amp;gt;\Printers &lt;/li&gt;    &lt;li&gt;Delete Monitors under [HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors] (except Local Port) &lt;/li&gt;    &lt;li&gt;Delete each driver under [HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows &amp;lt;arch&amp;gt;\Drivers\Version-3] (except on Vista don’t delete “Microsoft XPS Document Writer” and “Microsoft Shared Fax Driver”) &lt;/li&gt;    &lt;li&gt;Vista: delete all files under “%windir%\System32\spool\drivers\&amp;lt;arch&amp;gt;\3” except for driver files associated with “Microsoft XPS Document Writer” and “Microsoft Shared Fax Driver”.&amp;#160; Ignore subdirectories. &lt;/li&gt;    &lt;li&gt;XP: delete the “%windir%\System32\spool\drivers” folder &lt;/li&gt;    &lt;li&gt;Set back the defaults : [HKLM\SYSTEM\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers] (AddPrinterDrivers=0) &lt;/li&gt;    &lt;li&gt;Delete [HKLM\SYSTEM\CurrentControlSet\Control\Print\Providers\Internet Print Provider\Ports] &lt;/li&gt;    &lt;li&gt;Add back these default values:      &lt;ul&gt;       &lt;li&gt;HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\USB Monitor &lt;/li&gt;        &lt;li&gt;HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port &lt;/li&gt;        &lt;li&gt;(XP) HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\BJ Language Monitor &lt;/li&gt;        &lt;li&gt;(XP) HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\PJL Language Monitor &lt;/li&gt;        &lt;li&gt;(Vista) HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\WSD Port &lt;/li&gt;        &lt;li&gt;(If Fax driver was installed) HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Microsoft Shared Fax Monitor &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As you can see the light mode of this tool is a great first pass at troubleshooting a myriad of Print Spooler issues, with minimal risk/downtime for your users.&amp;#160; Give it a go and let us know how it works for you.&lt;/p&gt;  &lt;p&gt;-Jeff Hagler&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3482664" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Print+fixit/">Print fixit</category></item><item><title>Useful WMIC Queries</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/17/useful-wmic-queries.aspx</link><pubDate>Fri, 17 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3481426</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3481426</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/17/useful-wmic-queries.aspx#comments</comments><description>&lt;p&gt;Hello AskPerf Blog Readers! This morning’s post is going to be more of a reference point for all those WMI junkies out there.&amp;#160; Have you ever wanted to test WMI using the command line (outside of VBSCRIPT)?&amp;#160; If so, then WMIC is the tool for you.&amp;#160; In its simplest form, WMIC is a utility that allows you to interact with WMI from a WMI-aware command-line shell.&amp;#160; All WMI objects and their properties, including their methods, are accessible through the shell, which makes WMIC an advanced systems management console.&lt;/p&gt;  &lt;p&gt;This blog will assume that you already have a grasp of WMI and are looking for more WMI testing options via the Command Line.&amp;#160; With that said, the following is a list of WMIC queries that you can run on your Workstations/Servers.&lt;/p&gt;  &lt;p&gt;To execute these queries, run “WMIC” at a command prompt, followed by one of the following alias/es:&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="1" cellpadding="1" width="533"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="121"&gt;           &lt;p&gt;baseboard&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="407"&gt;           &lt;p&gt;get Manufacturer, Model, Name, PartNumber, slotlayout, serialnumber, poweredon&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="123"&gt;           &lt;p&gt;bios&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="405"&gt;           &lt;p&gt;get name, version, serialnumber&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="125"&gt;           &lt;p&gt;bootconfig&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="403"&gt;           &lt;p&gt;get BootDirectory, Caption, TempDirectory, Lastdrive&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="127"&gt;           &lt;p&gt;cdrom&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="402"&gt;           &lt;p&gt;get Name, Drive, Volumename&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="128"&gt;           &lt;p&gt;computersystem&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="401"&gt;           &lt;p&gt;get Name, domain, Manufacturer, Model, NumberofProcessors, PrimaryOwnerName,Username, Roles, totalphysicalmemory /format:list&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="129"&gt;           &lt;p&gt;cpu&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Caption, MaxClockSpeed, DeviceID, status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;datafile&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;where name='c:\\boot.ini' get Archive, FileSize, FileType, InstallDate, Readable, Writeable, System, Version&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;dcomapp&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, AppID /format:list&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;desktop&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, ScreenSaverExecutable, ScreenSaverActive, Wallpaper /format:list&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;desktopmonitor&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get screenheight, screenwidth&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;diskdrive&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Manufacturer, Model, InterfaceType, MediaLoaded, MediaType&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;diskquota&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get User, Warninglimit, DiskSpaceUsed, QuotaVolume&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;environment&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Description, VariableValue&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;fsdir&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;where name='c:\\windows' get Archive, CreationDate, LastModified, Readable, Writeable, System, Hidden, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;group&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, InstallDate, LocalAccount, Domain, SID, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;idecontroller&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Manufacturer, DeviceID, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;irq&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;job&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Owner, DaysOfMonth, DaysOfWeek, ElapsedTime, JobStatus, StartTime, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;loadorder&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, DriverEnabled, GroupOrder, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;logicaldisk&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Compressed, Description, DriveType, FileSystem, FreeSpace, SupportsDiskQuotas, VolumeDirty, VolumeName&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;memcache&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, BlockSize, Purpose, MaxCacheSize, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;memlogical&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get AvailableVirtualMemory, TotalPageFileSpace, TotalPhysicalMemory, TotalVirtualMemory&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;memphysical&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Manufacturer, Model, SerialNumber, MaxCapacity, MemoryDevices&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;netclient&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Name, Manufacturer, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;netlogin&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Fullname, ScriptPath, Profile, UserID, NumberOfLogons, PasswordAge, LogonServer, HomeDirectory, PrimaryGroupID&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;netprotocol&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Description, GuaranteesSequencing, SupportsBroadcasting, SupportsEncryption, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;netuse&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, DisplayType, LocalName, Name, ProviderName, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;nic&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get AdapterType, AutoSense, Name, Installed, MACAddress, PNPDeviceID,PowerManagementSupported, Speed, StatusInfo&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;nicconfig&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get MACAddress, DefaultIPGateway, IPAddress, IPSubnet, DNSHostName, DNSDomain&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;nicconfig&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get MACAddress, IPAddress, DHCPEnabled, DHCPLeaseExpires, DHCPLeaseObtained, DHCPServer&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;nicconfig&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get MACAddress, IPAddress, DNSHostName, DNSDomain, DNSDomainSuffixSearchOrder, DNSEnabledForWINSResolution, DNSServerSearchOrder&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;nicconfig&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get MACAddress, IPAddress, WINSPrimaryServer, WINSSecondaryServer, WINSEnableLMHostsLookup, WINSHostLookupFile&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;ntdomain&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, ClientSiteName, DomainControllerAddress, DomainControllerName, Roles, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;ntevent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;where (LogFile='system' and SourceName='W32Time') get Message, TimeGenerated&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;ntevent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;where (LogFile='system' and SourceName='W32Time' and Message like '%timesource%') get Message, TimeGenerated&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;ntevent&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;where (LogFile='system' and SourceName='W32Time' and EventCode!='29') get TimeGenerated, EventCode, Message&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;onboarddevice&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Description, DeviceType, Enabled, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;os&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Version, Caption, CountryCode, CSName, Description, InstallDate, SerialNumber, ServicePackMajorVersion, WindowsDirectory /format:list&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;os&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get CurrentTimeZone, FreePhysicalMemory, FreeVirtualMemory, LastBootUpTime, NumberofProcesses, NumberofUsers, Organization, RegisteredUser, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;pagefile&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, CurrentUsage, Status, TempPageFile&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;pagefileset&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, InitialSize, MaximumSize&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;partition&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Size, PrimaryPartition, Status, Type&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;printer&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get DeviceID, DriverName, Hidden, Name, PortName, PowerManagementSupported, PrintJobDataType, VerticalResolution, Horizontalresolution&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;printjob&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Description, Document, ElapsedTime, HostPrintQueue, JobID, JobStatus, Name, Notify, Owner, TimeSubmitted, TotalPages&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;process&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, CommandLine, Handle, HandleCount, PageFaults, PageFileUsage, PArentProcessId, ProcessId, ThreadCount&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;product&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Description, InstallDate, Name, Vendor, Version&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;qfe&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get description, FixComments, HotFixID, InstalledBy, InstalledOn, ServicePackInEffect&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;quotasetting&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, DefaultLimit, Description, DefaultWarningLimit, SettingID, State&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;recoveros&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get AutoReboot, DebugFilePath, WriteDebugInfo, WriteToSystemLog&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;Registry&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get CurrentSize, MaximumSize, ProposedSize, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;scsicontroller&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, DeviceID, Manufacturer, PNPDeviceID&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;server&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get ErrorsAccessPermissions, ErrorsGrantedAccess, ErrorsLogon, ErrorsSystem, FilesOpen, FileDirectorySearches&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;service&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Caption, State, ServiceType, StartMode, pathname&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;share&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get name, path, status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;sounddev&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, DeviceID, PNPDeviceID, Manufacturer, status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;startup&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Location, Command&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;sysaccount&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Domain, Name, SID, SIDType, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;sysdriver&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Name, PathName, ServiceType, State, Status&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;systemenclosure&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Height, Depth, Manufacturer, Model, SMBIOSAssetTag, AudibleAlarm, SecurityStatus, SecurityBreach, PoweredOn, NumberOfPowerCords&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;systemslot&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Number, SlotDesignation, Status, SupportsHotPlug, Version, CurrentUsage, ConnectorPinout&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;tapedrive&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Name, Capabilities, Compression, Description, MediaType, NeedsCleaning, Status, StatusInfo&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;timezone&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get Caption, Bias, DaylightBias, DaylightName, StandardName&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="130"&gt;           &lt;p&gt;useraccount&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="400"&gt;           &lt;p&gt;get AccountType, Description, Domain, Disabled, LocalAccount, Lockout, PasswordChangeable, PasswordExpires, PasswordRequired, SID&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;In troubleshooting WMI issues here on the Performance team, I often run the following commands to test WMI locally and remotely:&lt;/p&gt;  &lt;p&gt;WMIC CPU GET NAME&lt;/p&gt;  &lt;p&gt;WMIC /NODE:SERVERNAME CPU GET NAME&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb742610.aspx" target="_blank"&gt;WMIC – Take Command-line Control over WMI&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc739091(WS.10).aspx" target="_blank"&gt;Security with WMIC&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc784966(WS.10).aspx" target="_blank"&gt;WMIC verbs&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3481426" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/WMI+Scripting/">WMI Scripting</category></item><item><title>Measuring Disk Latency with Perfmon</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/16/measuring-disk-latency-with-perfmon.aspx</link><pubDate>Thu, 16 Feb 2012 17:05:51 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3481402</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3481402</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/16/measuring-disk-latency-with-perfmon.aspx#comments</comments><description>&lt;p&gt;Hello AskPerf folks!&amp;#160; This is just a quick blog post to inform you of a great posting from one of our Disk Experts on our Core team.&amp;#160; It is very informative and talks about measuring Physical Disk IO Latency with Perfmon.&amp;#160; Check it out!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Measuring Disk Latency with Windows Performance Monitor (Perfmon)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon.aspx" href="http://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon.aspx" target="_blank"&gt;http://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3481402" width="1" height="1"&gt;</description></item><item><title>RDS Multiple Server Access</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/14/rds-multiple-server-access.aspx</link><pubDate>Tue, 14 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3480687</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3480687</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/14/rds-multiple-server-access.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf!&amp;#160; Nabarun here from the Windows Performance Team to discuss the method of allowing RDP access to multiple servers in a flash.&amp;#160; System administrators often want to know how to enable RDP access throughout the domain.&amp;#160; The uninspired answer is to go around to every machine in the domain and add users and groups to the local “Remote Desktop Users” group.&lt;/p&gt;  &lt;p&gt;This is the most restrictive and conservative approach to achieve the solution, reinforcing the idea that administrators should enable RDP access only to servers where it is necessary.&lt;/p&gt;  &lt;p&gt;There are still situations where administrators need to allow domain users and groups RDP access to a large number of systems.&lt;/p&gt;  &lt;p&gt;For RDP access, the following Security Setting must be configured:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Computer Configuration | Windows Settings | Security Settings | Local Policies | User Rights Assignment |Allow log on through Remote Desktop Services&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The user or group must also have the “Allow User Access” permission on the “RDP-Tcp” connection.&amp;#160; By default, the local group “Remote Desktop Users” has access to both items above; so adding any user to “Remote Desktop Users” group ensures RDP access.&amp;#160; Click &lt;a href="http://blogs.technet.com/b/askperf/archive/2011/09/09/allow-logon-through-terminal-services-group-policy-and-remote-desktop-users-group.aspx" target="_blank"&gt;here&lt;/a&gt; for another blog on the topic.     &lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Myth&lt;/b&gt; - Adding a user to the “AD Users and Computers\Builtin\Remote Desktop Users” group does &lt;b&gt;NOT&lt;/b&gt; allow RDP access to all servers throughout the domain!&amp;#160; This is just a local group for the DC.&lt;/p&gt;  &lt;p&gt;There are several different methods to add users and groups to the local Remote Desktop Users group for client systems or member servers.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Method 1 (Startup script)&lt;/b&gt;&lt;u&gt;      &lt;br /&gt;&lt;/u&gt;Add the following command to a startup script for all servers where RDP access is required:&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;NET LocalGroup &amp;quot;Remote Desktop Users&amp;quot; /ADD &amp;quot;&lt;i&gt;domain\user or group name&lt;/i&gt;&amp;quot; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Method 2 (“Restrictive groups” GPO)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Scripts are generally the least preferred method of achieving configuration if there is an easier, scalable way to enable RDP access for groupings of systems throughout the domain.&amp;#160; This can be achieved with the “Restrictive Groups” group policy.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;This policy allows us to configure group memberships on client computers or member servers.&amp;#160; We can add domain accounts or groups to local groups on systems within the domain.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;In this example, we will add the domain group DomainRDPGroup to the local Remote Desktop Users group on all client computers in the domain in one shot:     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;1. Create a new group named DomainRDPGroup (configure it as a Global Security group) and then add the users who need RDP access to the systems.&lt;/p&gt;  &lt;p&gt;2. Open Group Policy Management Console, and right click on the Default domain policy, then select Edit - this should open the Group policy management editor&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Keep in mind this is only an example and by editing the default domain policy you will be adding the DomainRDPGroup to the Remote Desktop Users group on every machine in your domain – including your domain controllers. It’s generally better to create a separate policy and link it to a specific OU that contains the systems we need to enable RDP access to.)&lt;/p&gt;  &lt;p&gt;3. Right-click “&lt;b&gt;Restricted Groups&lt;/b&gt;” from &lt;b&gt;Computer Configuration | Policies | Windows Settings | Security Settings&lt;/b&gt;, and select “Add Group”&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7633.clip_5F00_image001_5F00_4CB81AB9.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4403.clip_5F00_image001_5F00_thumb_5F00_69A13F8E.jpg" width="459" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. Type in or browse to the group we created in step 1 named “DomainRDPGroup”, then click OK.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4810.clip_5F00_image003_5F00_0B00E52B.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7633.clip_5F00_image003_5F00_thumb_5F00_36B1AF27.jpg" width="459" height="186" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After this, the “DomainRDPGroup Properties” will appear with an upper and a lower section.&amp;#160; The top section allows you to modify the group membership of the group.&amp;#160; Since we already added users to the DomainRDPGroup group, we can ignore this section in the policy.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Entering any usernames as part of the policy setting will replace any existing group membership for this DomainRDPGroup.&amp;#160; If we were to click Add and type user3 here, it would remove all of the users from DomainRDPGroup, and only leave user3.&amp;#160; Leaving this section blank means it will use the existing group membership of DomainRDPGroup in Active Directory.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1261.clip_5F00_image005_5F00_455C5B0C.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5383.clip_5F00_image005_5F00_thumb_5F00_31433E83.jpg" width="453" height="557" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. In the bottom section, click “Add” and type in the name of the local group; in this case, it is “Remote Desktop Users.”    &lt;br /&gt;This adds the entries entered in the section “This group is member of” into the local “Remote Desktop Users” group on each computer where the policy is applied. &lt;/p&gt;  &lt;p&gt;Where the policy is applied depends on where the group policy is linked in the Domain. (Site, Domain, or Organizational Unit).This feature is non-intrusive and will not replace or remove the existing group membership of the Remote Desktop Users group on the target system.&amp;#160; It simply adds additional members to the group. &lt;/p&gt;  &lt;p&gt;More information about Restrictive Groups is available on &lt;a href="http://technet.microsoft.com/en-us/library/cc756802(WS.10).aspx" target="_blank"&gt;TechNet&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1777.clip_5F00_image007_5F00_5236B12A.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3324.clip_5F00_image007_5F00_thumb_5F00_00FC69CD.jpg" width="447" height="552" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;7. Run “&lt;b&gt;gpupdate/force”&lt;/b&gt; on the client computer.&amp;#160; This will force the policy to apply immediately instead of waiting for the group policy processing interval to complete.&lt;/p&gt;  &lt;p&gt;The following screenshot shows the local group “Remote Desktop Users”, which now includes our domain level group DomainRDPGroup.&amp;#160; It also retains existing group members LocalUser1 and LocalUser2 which were added manually on the client computer.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2251.clip_5F00_image009_5F00_2FC2226F.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7853.clip_5F00_image009_5F00_thumb_5F00_50B59516.jpg" width="447" height="498" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;This is a dynamic and seamless procedure of managing remote desktop group memberships at the Admin level without having to access the client computer/member server directly.&amp;#160; Good luck!     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;-Nabarun Chakraborty&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3480687" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Terminal+Server/">Terminal Server</category><category domain="http://blogs.technet.com/b/askperf/archive/tags/Remote+Desktop+Services/">Remote Desktop Services</category></item><item><title>Using Resource Monitor to Troubleshoot Windows Performance Issues Part 2</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/08/using-resource-monitor-to-troubleshoot-windows-performance-issues-part-2.aspx</link><pubDate>Wed, 08 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3479489</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3479489</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/08/using-resource-monitor-to-troubleshoot-windows-performance-issues-part-2.aspx#comments</comments><description>&lt;p&gt;Hello again AskPerf Blog Readers! Leonard back again to continue Part 2 of our Resource Monitor topic. Today we are going to cover the System Health Report, aka System Diagnostics Report. This report is a combination of data generated through Perfmon, Kernel Event Tracing (.EVT), and WMI queries. There are 2 ways to gather and view the data:&lt;/p&gt;  &lt;p&gt;1. Automatically though Control Panel | Performance Information and Tools | Advanced tools | Generate a system heath report (the report will be viewed through a Resource and Performance Monitor window).&lt;/p&gt;  &lt;p&gt;2. Manually though Perfmon: To do this run, Perfmon and expand Data Collect Sets, then select System. On the right pane right click on System Diagnostics and choose Start. The view will change to System Diagnostics selected on the left and all of the data being gathered on the right. The data is stored in the “C:\PerfLogs\System\Diagnostics\&amp;lt;HOSTNAME&amp;gt;-Date” folder. On the left under Reports, there will be a System Diagnostics report which is saved in HTML format. After 60 seconds, selecting it will display the same data as Resource and Performance Monitor window. Each time a report is generated, it will be saved here.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;TIP&lt;/b&gt; you can also kick it off by running “Perfmon /report”&lt;/p&gt;  &lt;p&gt;Here are all of the categories that are available:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1346.clip_5F00_image002_5F00_41E5CAEF.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2251.clip_5F00_image002_5F00_thumb_5F00_1320124D.jpg" width="558" height="288" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Expanding the view on any of these will display additional information and offer additional subcategories. Selecting the icon that looks like a page will bring up a tree view list which is the most efficient way to find something in the report.&lt;/p&gt;  &lt;p&gt;The report provides 2 types of information:&lt;/p&gt;  &lt;p&gt;1. Software and hardware configuration checks reporting the values found, and providing errors or warnings about problems or non-optimally configured settings&lt;/p&gt;  &lt;p&gt;2. List of disk, network, process and memory activities&lt;/p&gt;  &lt;p&gt;The configuration checks can be useful for checking to confirm that Windows is configured with recommended settings. Here is an example view where Windows Update is not configured and AV is not installed. It also shows that the disk SMART table reports that the disk is operating normally. This is a useful check to predict if a disk will fail before it fails:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6136.clip_5F00_image004_5F00_527DC5DD.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4807.clip_5F00_image004_5F00_thumb_5F00_38A98FAE.jpg" width="564" height="424" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here we can see one of the lists that are generated. In this case, it is the hot files list which shows the files with the most IO and what process is generating the IO. In this example, I was generating a test.zip file using Windows built in compression which uses the system process:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1346.clip_5F00_image006_5F00_29FEE3C9.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4314.clip_5F00_image006_5F00_thumb_5F00_0977A417.jpg" width="556" height="186" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;With that, we have come to the end of our two part blog posts on Resource Monitoring. Now go forth and start resolving those High CPU/MEMORY/DISK/NETWORK related issues!!!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2008/05/02/two-minute-drill-system-diagnostics-report.aspx" target="_blank"&gt;Two Minute Drill: System Diagnostics Report&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc766130.aspx" target="_blank"&gt;View Reports in Windows Performance Monitor&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Leonard Severt&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3479489" width="1" height="1"&gt;</description></item><item><title>WMIDiag 2.1 is here!</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/03/wmidiag-2-1-is-here.aspx</link><pubDate>Fri, 03 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3478631</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3478631</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/03/wmidiag-2-1-is-here.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf blog readers! Subheet here from the Windows Performance Team. It&amp;rsquo;s been a while since I&amp;rsquo;ve written a BLOG, and am really excited about this one. This time, I&amp;rsquo;m back with our brand new, much anticipated, WMI troubleshooting tool, WMIDIAG 2.1.&lt;/p&gt;
&lt;p&gt;The WMI Diagnosis Tool is a VBScript based-tool for testing, validating, and analyzing WMI installation/issues. The tool collects data from WMI installations on all Microsoft Operating Systems at any or no service pack level.&lt;/p&gt;
&lt;p&gt;WMI Diagnostics 2.1 requires you to have Local Administrator rights as well as Windows Script Host (WSH) enabled.&lt;/p&gt;
&lt;p&gt;To download this tool, please click &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=7684" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After you download WMIDiag.exe, run it and extract the files to a local folder. If you double-click WMIDiag.vbs, the following message will appear:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7701.clip_5F00_image001_5F00_7385EBEB.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2110.clip_5F00_image001_5F00_thumb_5F00_32E39F7C.png" width="419" height="221" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to see its activity, then you would run &amp;ldquo;&lt;b&gt;cscript WMIDiag.vbs&lt;/b&gt;&amp;rdquo; from the command prompt.&lt;/p&gt;
&lt;p&gt;WMIDIAG can be run from Windows Explorer, or from the command line. Each time it runs, the WMI Diagnosis Tool creates the following three files in the %TEMP% directory:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.LOG file containing all the WMI Diagnosis Tool activity as well as a WMI report at the end&lt;/li&gt;
&lt;li&gt;.TXT file containing the WMI Diagnosis Tool report&lt;/li&gt;
&lt;li&gt;.CSV file containing statistics that can be used to measure trends and issues&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the WMI Diagnosis Tool terminates, the ERRORLEVEL environment variable is set to one of the following values:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;0 = SUCCESS&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WSH has a script execution timeout setup (in machine or system environment)&lt;/li&gt;
&lt;li&gt;Machine reports suspicious improper shutdowns&lt;/li&gt;
&lt;li&gt;User Account Control (UAC) status is reported (Vista and above)&lt;/li&gt;
&lt;li&gt;Local account token filter policy is reported (Vista and above)&lt;/li&gt;
&lt;li&gt;Unexpected binaries in the WBEM folder&lt;/li&gt;
&lt;li&gt;The Windows Firewall is enabled&lt;/li&gt;
&lt;li&gt;Some WMI service installed in the machine are dependent on the WMI service (i.e. "SMS Agent)&lt;/li&gt;
&lt;li&gt;WMI ADAP has a status different than 'running'&lt;/li&gt;
&lt;li&gt;Some WMI namespaces require a packet privacy encryption for a successful connection&lt;/li&gt;
&lt;li&gt;Some WMI permanent subscriptions or timer instructions are configured&lt;/li&gt;
&lt;li&gt;Some information about registry key configurations for DCOM and/or WMI was reported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;1 = ERROR&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System32 or WBEM folders are not in the PATH&lt;/li&gt;
&lt;li&gt;WMI system file(s)\ repository is/are missing&lt;/li&gt;
&lt;li&gt;WMI repository is inconsistent (XP SP2, 2003 SP1 and above)&lt;/li&gt;
&lt;li&gt;DCOM is disabled&lt;/li&gt;
&lt;li&gt;WMI service is disabled&lt;/li&gt;
&lt;li&gt;The RPCSS and/or the WMI service(s) cannot be started&lt;/li&gt;
&lt;li&gt;WMI DCOM setup issues&lt;/li&gt;
&lt;li&gt;Expected default trustee or ACE has been removed from a DCOM or WMI security descriptor&lt;/li&gt;
&lt;li&gt;The ADAP status is not available&lt;/li&gt;
&lt;li&gt;One or more WMI connections failed&lt;/li&gt;
&lt;li&gt;Some GET operations\WMI class MOF representations\WMI qualifier retrieval operations failed&lt;/li&gt;
&lt;li&gt;Some critical WMI ENUMERATION operations\WMI EXECQUERY\WMI GET operations failed&lt;/li&gt;
&lt;li&gt;Some WRITE operations in the WMI repository\PUT\DELETE operations failed&lt;/li&gt;
&lt;li&gt;One of the queries of the event log entries for DCOM, WMI and WMIADAPTER failed&lt;/li&gt;
&lt;li&gt;Some critical registry key configurations for DCOM and/or WMI were reported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;2 = WARNING&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;System32 or WBEM folders are further in the PATH string than the maximum system length&lt;/li&gt;
&lt;li&gt;System drive and/or Drive type reporting are skipped&lt;/li&gt;
&lt;li&gt;DCOM has an incorrect default authentication level (other than 'Connect')&lt;/li&gt;
&lt;li&gt;DCOM has an incorrect default impersonation level (other than 'Identify')&lt;/li&gt;
&lt;li&gt;WMI service has an invalid host setup&lt;/li&gt;
&lt;li&gt;WMI service (SCM configuration) has an invalid registry configuration&lt;/li&gt;
&lt;li&gt;Some WMI components have a DCOM registration issue&lt;/li&gt;
&lt;li&gt;WMI COM ProgID cannot be instantiated&lt;/li&gt;
&lt;li&gt;Some WMI providers have a DCOM registration issue&lt;/li&gt;
&lt;li&gt;Some dynamic WMI classes have a registration issue&lt;/li&gt;
&lt;li&gt;Some WMI providers are registered in WMI but their registration lacks a CLSID&lt;/li&gt;
&lt;li&gt;Some WMI providers have a correct CIM/DCOM registration but the corresponding binary file cannot be found&lt;/li&gt;
&lt;li&gt;A new ACE or Trustee with a denied access has been modified to a default trustee of a DCOM or WMI security descriptor&lt;/li&gt;
&lt;li&gt;An invalid ACE has been found for an actual DCOM or WMI security descriptor&lt;/li&gt;
&lt;li&gt;WMI ADAP never ran on the examined system&lt;/li&gt;
&lt;li&gt;Some WMI non-critical ENUMERATION operations failed\skipped&lt;/li&gt;
&lt;li&gt;Some WMI non-critical EXECQUERY operations failed\skipped&lt;/li&gt;
&lt;li&gt;Some non-critical WMI GET VALUE operations failed&lt;/li&gt;
&lt;li&gt;Some WMI GET VALUE operations were skipped (because of an issue with the WMI provider)&lt;/li&gt;
&lt;li&gt;The WRITE operations in the WMI repository were not completed&lt;/li&gt;
&lt;li&gt;The information collection for the DCOM, WMI and WMIADAPTER event log entries was skipped&lt;/li&gt;
&lt;li&gt;New event log entries for DCOM, WMI and WMIADAPTER were created during the WMI Diagnosis Tool execution&lt;/li&gt;
&lt;li&gt;Some non-critical registry key configurations for DCOM and/or WMI were reported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;3 = Command Line Parameter errors&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4 = User Declined &lt;/b&gt;(Clicked the Cancel button when getting a consent prompt)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WMIDiag is started on an unsupported build or OS version&lt;/li&gt;
&lt;li&gt;WMIDiag has no Administrative privileges&lt;/li&gt;
&lt;li&gt;WMIDiag is started in Wow environment (64-bit systems only)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you run the WMI Diagnosis Tool via command line:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;C:\&amp;gt;CSCRIPT WMIDiag.vbs&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6712.clip_5F00_image003_5F00_202EA5C5.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4670.clip_5F00_image003_5F00_thumb_5F00_1EEA0CE6.jpg" width="539" height="567" /&gt;&lt;/a&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The generated report &amp;ldquo;&lt;i&gt;%TEMP%\WMIDIAG-V2.1_WIN7_.CLI.SP1.64_MYPC_2012.02.02_12.53.07-REPORT.TXT&lt;/i&gt;&amp;ldquo; contains two types of figures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WARNING&lt;/strong&gt; - Information that is useful if certain actions are executed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ERROR&lt;/strong&gt; - Problems that need to be solved to avoid errors reported by WMI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;" size="4"&gt;WMI DIAG 2.1 FAQ:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name="_Toc157241770"&gt;&lt;/a&gt;&lt;a name="_Toc135182722"&gt;&lt;/a&gt;&lt;span style="color: #000000;" color="#000000"&gt;1.&lt;/span&gt;&lt;span style="color: #000000;" color="#000000"&gt; Where can I get the WMI Diagnosis Tool?&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;The WMI Diagnosis Tool can be downloaded from the Microsoft Download Center at &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=7684" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=7684&lt;/a&gt;. More information about the WMI Diagnosis Tool usage can be found in the document (&lt;b&gt;WMIDiag.doc&lt;/b&gt;) which comes along with the download.&lt;/p&gt;
&lt;h4&gt;&lt;a name="_Toc157241773"&gt;&lt;/a&gt;&lt;span style="color: #000000;" color="#000000"&gt;&lt;span style="font-weight: bold;"&gt;2. Is it possible to &amp;ldquo;officially&amp;rdquo; engage Microsoft for feedback on this tool?&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;There is no official support for WMI Diagnosis Tool. However, feedback for the tool is welcome and can be sent to &lt;a href="mailto:WMIDiag@microsoft.com" target="_blank"&gt;WMIDiag@microsoft.com&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;&lt;span style="color: #000000; font-weight: bold;" color="#000000"&gt;3.&lt;/span&gt;&lt;a name="_Toc157241788"&gt;&lt;/a&gt;&lt;a name="_Ref148916403"&gt;&lt;/a&gt;&lt;span style="color: #000000; font-weight: bold;" color="#000000"&gt; Can the WMI Diagnosis Tool diagnose a remote computer?&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;The WMI Diagnosis Tool is not designed to diagnose remote computers. This is due to the fact that WMI remote access is mainly based on the WMI infrastructure. Because the aim of WMI Diagnosis Tool is to diagnose WMI, the WMI Diagnosis Tool does not use WMI to perform its core operations. That&amp;rsquo;s why the WMI Diagnosis Tool must be run locally. However, the WMI Diagnosis Tool can be deployed remotely using Group Policy, Systems Management Server (SMS), or Microsoft Operations Manager (MOM) via a Management Pack. With Windows Vista, the WMI Diagnosis Tool can also be remotely executed through WinRM/WinRS, provided you configure and enable these features (WinRM/WinRS are not enabled by default). Microsoft SysInternals tool PSEXEC.EXE can also be used.&lt;/p&gt;
&lt;h4&gt;&lt;a name="_Toc157241792"&gt;&lt;/a&gt;&lt;span style="color: #000000; font-weight: bold;" color="#000000"&gt;4. Does the WMI Diagnosis Tool fix problems it discovers?&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;No. The WMI Diagnosis Tool executes in read-only mode. Even though the WMI Diagnosis Tool diagnoses the situation and provides procedures to fix problems, at no time does the tool automatically fix a problem. This is by design, because the correct repair procedure depends on the context, the usage, and the list of applications installed on the computer.&lt;/p&gt;
&lt;p&gt;I hope this new tool will help you identifying potential WMI issues in your environment. Don&amp;rsquo;t forget to read the support document (WMIDiag.doc) included in the WMIDIAG 2.1 download. Until my next post, take care!&lt;/p&gt;
&lt;p&gt;-Subheet Rastogi&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3478631" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/WMI/">WMI</category></item><item><title>Using Resource Monitor to Troubleshoot Windows Performance Issues Part 1</title><link>http://blogs.technet.com/b/askperf/archive/2012/02/01/using-resource-monitor-to-troubleshoot-windows-performance-issues-part-1.aspx</link><pubDate>Wed, 01 Feb 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3478149</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3478149</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/02/01/using-resource-monitor-to-troubleshoot-windows-performance-issues-part-1.aspx#comments</comments><description>&lt;p&gt;Hello AskPerf! Leonard with the Performance Team here to discuss the Resource Monitor tool and we can use it to troubleshoot Windows Performance issues. In this blog, (the first of 2 on the subject of underutilized tools) I will discuss Resource Monitor which is available on both client and server versions of Windows starting with Windows Vista. Resource Monitor can be launched from the advanced tools tab in “Performance Information and Tools”, which is located in Control Panel. It can also be launched directly by running &lt;b&gt;Resmon.exe&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;Resource Monitor is a method of viewing Perfmon data. In fact, Resource Monitor is composed of Perfmon data combined with Windows Event Tracing data. You can view this tracing session by launching Perfmon, expanding Data Collector Sets, then select Event Tracing Sessions. There you will see a session called WDC.GUID (the GUID will vary). You can confirm this provides the data for Resource Monitor by observing that this trace is only running when Resource Monitor is running. Also, when it is running, you can view the channels that provide the data. Launching Resource Monitor will also launch a background process of Perfmon to act as a data source.&lt;/p&gt;  &lt;p&gt;Resmon will show the window below on first launch. Each new launch will show the view as configured when Resmon was closed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5076.image_5F00_64DFB4D9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0777.image_5F00_thumb_5F00_6EC4A644.png" width="564" height="398" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;There are 5 tabs to choose from. The overview tab gives a summary of the other ones. The main tabs are CPU, Memory, Disk and Networking. In each of the tabs the windows on the left can be collapsed, expanded and resized. It is also possible to filter each view by the process, for example you are only interested in seeing the activity for Explorer, check the box for that process and the bottom window will only show the activity for that process. With no processes selected, the bottom windows will show activity for all active processes. The graphs on the right can be resized between small, medium and large, but I would recommend keeping them at the default large setting. The numeric scale for the graphs will change as activity changes.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;My Favorite features&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The memory tab has one unique graph that provides a quick view of what physical memory is being used for. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8371.image_5F00_6D800D65.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2844.image_5F00_thumb_5F00_3AB006F1.png" width="554" height="112" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It is easy to see the total physical memory and what it is being actively used along with showing what is hardware reserved. Hardware Reserved represents physical memory addresses that have been reserved by hardware (generally busses like PCI or video cards) and is not available for Windows to use. It is usually small on x64 systems (except servers that do memory mirroring) but can be several 100MB up to 1GB on x32 systems. This means a 4GB x86 system can have only 3 GB of accessible memory.&lt;/p&gt;  &lt;p&gt;The network tab is useful in that it not only shows the process that is generating activity, but the IP address it is connected to.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7215.image_5F00_6111EA3C.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8272.image_5F00_thumb_5F00_396B6E12.png" width="553" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I recently had an issue where the system process was showing high CPU activity on a Windows 2008 Server. Two of the things that run in system are the SMB and SMB2 processes. I suspected that the high CPU was due to network activity and was a load based problem and not a problem with a process. To confirm that was the cause, I used Process Explorer to determine the threads that were running in the system process. I confirmed that there were 15+ SMB and SMB2 threads that were always the highest consumer of CPU. I then ran Resmon and looked at all of the IP addresses that were associated with system. We identified a management server that was receiving a lot of data. Based on that information, we were able to narrow down the problem to the request coming from that server. While the problem could have been identified using different tools, Resmon provided the most efficient way to identify the problem.&lt;/p&gt;  &lt;p&gt;I hope this overview of Resource Monitor will make it one of the tools you use the next time you need to look at performance data or activity on the system.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resource&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee731897(WS.10).aspx" target="_blank"&gt;What’s New in Performance and Reliability Monitoring?&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Leonard Severt&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3478149" width="1" height="1"&gt;</description></item><item><title>Real life SQL Working Set Trimming issue</title><link>http://blogs.technet.com/b/askperf/archive/2012/01/25/real-life-sql-working-set-trimming-issue.aspx</link><pubDate>Wed, 25 Jan 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3477031</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3477031</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/01/25/real-life-sql-working-set-trimming-issue.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf! Leonard here to chat about a performance issue we often see on the Windows performance team surrounding SQL and Working Set Trimming. I recently worked an issue on a 2003 SP2 x64 Server, running SQL 2005, that was experiencing periods of slow performance and filling up the SQL log with the following error:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000" size="2"&gt;A significant part of sql server process memory has been paged out. This may result in performance degradation.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;This error is covered in detail in the following article:&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;How to reduce paging of buffer pool memory in the 64-bit version of SQL Server&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/918483" target="_blank"&gt;http://support.microsoft.com/kb/918483&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This error is logged when the working set of SQL is trimmed, meaning it is paged out to disk. The working set of a program is just the memory it is using. Normally working set trimming isn’t necessarily a bad thing. It’s the way Windows takes memory from one program that hasn’t been used most recently (and might never be used again) and gives it to other programs. But for SQL to operate efficiently, it must keep a large part of its data in memory. When it gets trimmed, then SQL operations can take a significantly longer time to complete. Therefore we needed to determine what was using a large amount of memory on the system causing the problem. For almost all Windows performance issues we gather Perfmon data, as I did in this case. We had it capturing a circular log, and stop it after the SQL error occurred. I then produced a summary of the Perfmon logs and the following data stood out:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6371.image_5F00_4D659442.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0412.image_5F00_thumb_5F00_2C72219B.png" width="535" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="Cordia New"&gt;&lt;/font&gt;&lt;/p&gt; I could see a SIGNIFICANT range between Minimum and Maximum in Available Bytes, Private Bytes, Working Set, and Cache Bytes. This was occurring when there should have been a somewhat constant work load and therefore memory usage should not have varied greatly. The SQLserver process was the only process with significant working set values. When discovering something in the numbers like this, the next step is to see how some of the important counters change together over time. Looking at a visual graph is the best way to see that relationship.   &lt;p&gt;Here we see a pattern where Available MB drops below 100 MB ~ every 2 hours and 10 min and working set is trimmed; mostly from SQL since it is the largest process:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2555.image_5F00_324CC534.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0083.image_5F00_thumb_5F00_76ACB673.png" width="470" height="445" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Looking at the one where SQL gets trimmed to 2 GB at ~ 3:50 AM. I added in Cache bytes since we know it varies. I also wanted to know what processes were starting during this period. My favorite counter for that is Process\Elapsed Time. If you scale it to the graph, it is easy to see anything with a sharp angle (meaning it would intersect with the bottom of the graph) or that starts and stops. I removed all of the ones that were flat and was left with the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7357.image_5F00_5B93E765.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7026.image_5F00_thumb_5F00_0B6E8927.png" width="482" height="458" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can see above that Cache Bytes grow to 15 gig when all of this occurs. The processes that start at this time were bpcd and dbbackex, and the bphdb was restarted (these are all backup processes). Here is one with the bpcd process selected so we can see where it is running:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6763.image_5F00_4987A3D8.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6036.image_5F00_thumb_5F00_07348B95.png" width="489" height="457" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Zooming out we see the pattern repeats with a different backup process selected. This confirms that the cause of the working set trimming is always the same backup process:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0488.image_5F00_12E9D2C7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3704.image_5F00_thumb_5F00_5434D560.png" width="495" height="466" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Conclusion: The SQL backup (Veritas Netbackup) was causing cache bytes to grow up to ~15 GB and Windows was trimming SQL working set memory to give memory back to cache. This can be a common problem on 64 bit Windows where cache used for file IO can grow large enough to impact Windows performance. There were 2 possible solutions to this:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution 1&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Implement SQL lock pages in memory. When memory is locked by SQL, it prevents Windows from taking that memory from SQL. The down side to that is Windows memory management might not be able to respond to even smaller request for memory from programs that need it. Because of this, only use lock pages in memory when need.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution 2&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Another option would be to implement the Windows Dynamic Cache service. This is a service that was developed in-house to use Windows memory management API’s to control the amount of cache memory that is used on Windows. There are a number of registry keys that can be set to control the behavior and therefore it can be adapted to different issues and Windows configurations.&lt;/p&gt;  &lt;p&gt;On this particular case, we decided to implement the Dynamic Cache service. To download the Microsoft Windows Dynamic Cache Service, check the following link:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=9258" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=9258&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After it was installed, we set the following registry key:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;RegValue: MaxSystemCacheMBytes&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Type: REG_DWORD&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Value: 1000&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Setting this registry key allowed us to set a limit on cache memory to 1GB. We choose this value because it would provide some cache, but was small enough to not impact SQL.&lt;/p&gt;  &lt;p&gt;Other possible values for this registry key are:&lt;/p&gt;  &lt;p&gt;0 = Limit to 90% of Physical RAM (default)&lt;/p&gt;  &lt;p&gt;1-99 = Limit the maximum size of the System File Cache to this percentage of Physical RAM&lt;/p&gt;  &lt;p&gt;&amp;gt; 200 = Limit the maximum size of the System File Cache to x Mbytes&lt;/p&gt;  &lt;p&gt;Once this was service was implemented, we monitored the system for a week. After this time, we confirmed that both SQL and the backup processes were stable with no performance related issues.&lt;/p&gt;  &lt;p&gt;Hopefully this post will help you tackle those fun Working Set/Cache issues on your Windows Servers.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2007/05/18/sql-and-the-working-set.aspx" target="_blank"&gt;SQL and the Working Set&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/yongrhee/archive/2010/02/16/windows-7-and-windows-server-2008-r2-do-you-still-need-the-microsoft-windows-dynamic-cache-service.aspx" target="_blank"&gt;Windows 7 and Windows Server 2008 R2: Do you still need the Microsoft Windows Dynamic Cache Service?&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Leonard Severt&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3477031" width="1" height="1"&gt;</description></item><item><title>Troubleshooting High CPU Utilization issues using Tracelog.exe</title><link>http://blogs.technet.com/b/askperf/archive/2012/01/20/troubleshooting-high-cpu-utilization-issues-using-tracelog-exe.aspx</link><pubDate>Fri, 20 Jan 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3476339</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3476339</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/01/20/troubleshooting-high-cpu-utilization-issues-using-tracelog-exe.aspx#comments</comments><description>&lt;p&gt;Good day AskPerf!&amp;nbsp; Vinod Rawat here to discuss/demonstrate the benefits of using the Tracelog.exe utility to troubleshoot High CPU issues.&amp;nbsp; Tracelog.exe is a command line utility that allows us to start/stop or enable trace logging, and offers the following features:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Starts and stops trace sessions, including private trace sessions, NT Kernel Logger trace sessions, and Global Logger trace sessions&lt;/li&gt;
&lt;li&gt;Configures and changes the properties of trace sessions&lt;/li&gt;
&lt;li&gt;Enables and disables trace providers&lt;/li&gt;
&lt;li&gt;Flushes trace session buffers&lt;/li&gt;
&lt;li&gt;Lists running (real-time) trace sessions&lt;/li&gt;
&lt;li&gt;Lists registered trace providers&lt;/li&gt;
&lt;li&gt;Measures time spent in deferred procedure calls (DPCs) and interrupt service routines (ISRs)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; Tracelog.exe is included in the tools\tracing\&amp;lt;Platform&amp;gt; subdirectory of the Windows Driver Kit (WDK), where &amp;lt;Platform&amp;gt; is either i386, amd64, or ia64.&lt;/p&gt;
&lt;p&gt;In this post, I am going to talk about troubleshooting a High CPU issue, where no user-mode processes are visibly spiking the CPU.&amp;nbsp; With that, let&amp;rsquo;s get started!&lt;/p&gt;
&lt;p&gt;The first thing you will want to do is download &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653"&gt;Process Explorer&lt;/a&gt; and run it on the affected workstation/server.&amp;nbsp; In this example, we see that Interrupts and its corresponding CPU usage shown below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6431.clip_5F00_image002_5F00_54486925.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4265.clip_5F00_image002_5F00_thumb_5F00_1E22DCD7.jpg" width="535" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can also add the following Performance Monitor Counters and see the same behavior:&lt;/p&gt;
&lt;p&gt;Processor: % Interrupt Time&lt;/p&gt;
&lt;p&gt;Processor: %DPC Time&lt;/p&gt;
&lt;p&gt;Processor: %Privilege Time&lt;/p&gt;
&lt;p&gt;This is where tracelog.exe comes in handy.&amp;nbsp; Open an Elevated Command Prompt, and browse to the folder that includes the tracelog.exe utility (see Note above).&amp;nbsp; During the high interrupt time we can capture DPC/ISR ETL tracing with the following syntax:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tracelog -start -f test.etl -dpcisr -UsePerfCounter -b 64&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Switches:&lt;/p&gt;
&lt;p&gt;-start = Starts up the test.etl trace session&lt;/p&gt;
&lt;p&gt;-f = Log to file &amp;lt;name&amp;gt;&lt;/p&gt;
&lt;p&gt;-dpcisr = Enable kernel events for DPC/ISR analysis&lt;/p&gt;
&lt;p&gt;-UsePerfCounter = Use Perf Counter clock&lt;/p&gt;
&lt;p&gt;-b 64 = Sets buffer size to &amp;lt;n&amp;gt; Kbytes&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;NOTE&lt;/b&gt; When tracing DPCs and ISRs, always add the -UsePerfCounter parameter to the command. The system timer resolution is too low to measure the time spent in these activities. Tracerpt.exe, the tool that formats DPC/ISR events, requires the performance counter clock values for its reports. (Tracerpt is included in Windows XP and later versions of Windows.)&lt;/p&gt;
&lt;p&gt;Let the tracelog.exe run for roughly 30seconds to 1 minute, then stop the tracing with following syntax:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tracelog -stop&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Now we can create a report using the Tracerpt.exe tool with the following command:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;tracerpt test.etl -report dpcisr.html -f html&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;These switches create the report file dpcisr.html in HTML format.&lt;/p&gt;
&lt;p&gt;Now comes the fun part (The following is just a descriptive example and what I experienced on my machine).&lt;/p&gt;
&lt;p&gt;1. Open the html file you created above&lt;/p&gt;
&lt;p&gt;2. Locate the &lt;b&gt;DPC/ISR&lt;/b&gt; section in the report:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1122.clip_5F00_image003_5F00_2F933DAF.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="clip_image003" border="0" alt="clip_image003" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7180.clip_5F00_image003_5F00_thumb_5F00_6EF0F13F.jpg" width="528" height="100" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3. Depending on your scenario, focus on either &amp;ldquo;Distribution of DPC execution times&amp;rdquo; or &amp;ldquo;ISR processor utilization&amp;rdquo; columns:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0574.clip_5F00_image004_5F00_43402743.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8883.clip_5F00_image004_5F00_thumb_5F00_34957B5E.jpg" width="531" height="208" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;4. Sort by the Percent column and you will see the highest consumer (dxgkrnl.sys) at top:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7418.clip_5F00_image005_5F00_25EACF79.jpg"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1541.clip_5F00_image005_5F00_thumb_5F00_65488309.jpg" width="539" height="164" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dxgkrnl.sys is at top taking &lt;b&gt;highest-but-nominal&lt;/b&gt; ISR processor time on my machine above (which is obviously &lt;i&gt;normal&lt;/i&gt;).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;For those who want to go deeper than this: &lt;/b&gt;When a culprit driver&amp;rsquo;s ISR routines are keeping the CPU busy, you can further zoom in and find out the exact range of time these routines are spending in:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33/1057.dofISRet.png"&gt;&lt;img border="0" alt="" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33/1057.dofISRet.png" /&gt;&lt;/a&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5355.clip_5F00_image006_5F00_048B29DD.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Focus on Lower Bound and Upper Bound range and the corresponding Percent. More than 88% (61.66 + 26.59 = 88.25%) count is taking more than 25 microseconds.&amp;nbsp; Microsoft recommends that DPCs should not run longer than 100 microseconds and ISRs should not run longer than 25 microseconds. ISR routines belonging to the driver above (obscured) have exceeded this value, thus you know how to pin-point the culprit and then check the concerned ISR routines&amp;rsquo; time taken.&lt;/p&gt;
&lt;p&gt;Happy tracing!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional Resources:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff552994(v=VS.85).aspx" target="_blank"&gt;Tracelog on MSDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff545764(VS.85).aspx" target="_blank"&gt;Measuring DPC/ISR Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Vinod Rawat&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3476339" width="1" height="1"&gt;</description></item><item><title>System Data Collector Sets fail on an upgraded 2008 / 2008 R2 DC</title><link>http://blogs.technet.com/b/askperf/archive/2012/01/13/system-data-collector-sets-fail-on-an-upgraded-2008-2008-r2-dc.aspx</link><pubDate>Fri, 13 Jan 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3475240</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3475240</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/01/13/system-data-collector-sets-fail-on-an-upgraded-2008-2008-r2-dc.aspx#comments</comments><description>&lt;p&gt;Hello Askperf! Shamesh Pillai here to discuss an interesting issue I recently worked. On Microsoft Windows Server 2008, 2008 R2 Domain Controllers, Perfmon may fail when starting a &lt;b&gt;System Data Collector Set.&lt;/b&gt; This includes the Active Directory Diagnostics, System Diagnostics, and System Performance Perfmon logging.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8015.image_5F00_08A17BC3.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/4382.image_5F00_thumb_5F00_75804F16.png" width="446" height="306" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When we start any of the &lt;b&gt;System Data Collector Sets,&lt;/b&gt; the following error may appear and/or the Data Collector Set may freeze: &lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color="#c0504d"&gt;Logon failure: the user has not been granted the requested logon type at this computer&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3884.image_5F00_00C96354.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1643.image_5F00_thumb_5F00_4CF14735.png" width="403" height="217" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;When this fails, the following Events will be logged in the TaskScheduler event log:&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Log Name: Microsoft-Windows-TaskScheduler/Operational      &lt;br /&gt;Source: Microsoft-Windows-TaskScheduler       &lt;br /&gt;Date: 11/30/2011 6:36:18 AM       &lt;br /&gt;Event ID: 101       &lt;br /&gt;Task Category: Task Start Failed       &lt;br /&gt;Level: Error       &lt;br /&gt;Keywords: (1)       &lt;br /&gt;User: SYSTEM       &lt;br /&gt;Computer: &amp;lt;Computer Name &amp;gt;&lt;/i&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Description:      &lt;br /&gt;Task Scheduler failed to start &amp;quot;\Microsoft\Windows\PLA\System\{CFCD20D6-D2CE-42D3-A9CB-9916E676DE02}_System Diagnostics&amp;quot; task for user &amp;quot;&amp;lt;Username&amp;gt;&amp;quot;. Additional Data: Error Value: 2147943785.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&amp;amp;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;Log Name: Microsoft-Windows-TaskScheduler/Operational      &lt;br /&gt;Source: Microsoft-Windows-TaskScheduler       &lt;br /&gt;Date: 11/30/2011 6:36:18 AM       &lt;br /&gt;Event ID: 104       &lt;br /&gt;Task Category: Logon failure       &lt;br /&gt;Level: Error       &lt;br /&gt;Keywords:       &lt;br /&gt;User: SYSTEM       &lt;br /&gt;Computer: &amp;lt;Computer Name&amp;gt;       &lt;br /&gt;Description:       &lt;br /&gt;Task Scheduler failed to log on &amp;quot;&amp;lt;UserName&amp;gt;&amp;quot; . Failure occurred in &amp;quot;LsaLogonUser”. User Action: Ensure the credentials for the task are correctly specified. Additional Data: Error Value: 2147943785&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;While troubleshooting the issue, I observed that of all the servers experiencing this behavior, all were Domain Controllers that were upgraded from a Windows Server 2003 Domain Controller. Interestingly though, the issue does not happen on a freshly installed Microsoft Windows 2008, 2008 R2 Domain Controller, or if we upgrade a Member server. In my testing, we observed that “User Defined” Sets were not affected by this problem.&lt;/p&gt;  &lt;p&gt;In Microsoft Windows Server 2008 and later operating systems, Perfmon uses Task Scheduler in the background. When we start a System Data Collector Set, it launches Taskeng in the current user context. To launch the job, the user needs to be included in the “Log on as a batch job” User Rights Assignment Policy.&lt;/p&gt;  &lt;p&gt;We checked the “Log on as a batch job” Policy and discovered that the “Performance Log Users” group was not included. As soon as we added this group back to the Policy, we were able to successfully start our System Data Collector Sets.&lt;/p&gt;  &lt;p&gt;By default, the “Performance Log Users” group is expected to have the “Log on as a batch job” user right. However, when the 2003 Domain Controller was upgraded to Server 2008, the “Performance Log Users” group did not get added to this Policy. &lt;/p&gt;  &lt;p&gt;With that, we have concluded our post for today. Take care!&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc722184.aspx" target="_blank"&gt;Enable Logging for Performance Log Users Group Members&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Shamesh Pillai&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3475240" width="1" height="1"&gt;</description></item><item><title>Case of the Windows Installer installation failure and AppCompat shim</title><link>http://blogs.technet.com/b/askperf/archive/2012/01/06/case-of-the-windows-installer-installation-failure-and-appcompat-shim.aspx</link><pubDate>Fri, 06 Jan 2012 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3474123</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3474123</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2012/01/06/case-of-the-windows-installer-installation-failure-and-appcompat-shim.aspx#comments</comments><description>&lt;p&gt;Good morning AskPerf! Anshuman Ghosh here to chat about an issue I recently worked where a specific Windows Installer package failed to install on a Windows 2008 R2 Server.&amp;#160; Basic Windows Installer troubleshooting took place, including the ability to install other .msi packages successfully.&amp;#160; I then enabled Verbose MSI logging per &lt;a href="http://support.microsoft.com/kb/223300" target="_blank"&gt;KB223300&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]&lt;/p&gt;  &lt;p&gt;Reg_SZ: &lt;b&gt;Logging&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Value: &lt;b&gt;voicewarmupx&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;and the following was observed:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5265.clip_5F00_image002_5F00_4912FABD.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8306.clip_5F00_image002_5F00_thumb_5F00_67E96E9B.jpg" width="599" height="173" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I used the &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=985" target="_blank"&gt;Err utility&lt;/a&gt; to convert the error code:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;C:\&amp;gt;err 0x8002801C&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;# for hex 0x8002801c / decimal -2147319780 :&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;TYPE_E_REGISTRYACCESS winerror.h&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;# Error accessing the OLE registry.&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;# 1 matches found for &amp;quot;0x8002801C&amp;quot;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This error translates to “Error accessing the OLE registry”.&amp;#160; From the msi verbose log, we know that the error came while executing the function call DoRegisterTypeLib in a custom action for msxml3.dll in the SYSWOW64 folder.&amp;#160; With this information, we captured Process Monitor logs from a working and non-working machine and observed the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0385.clip_5F00_image004_5F00_3FD6BF7C.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1055.clip_5F00_image004_5F00_thumb_5F00_111106DA.jpg" width="629" height="72" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The registry entry in question, &lt;b&gt;[HKCR\TypeLib\{F5078F18-C551-11D3-89B9-0000F81FE221}\3.0\0\win32]&lt;/b&gt;, is being accessed by the 32bit process on the non-working machine.&amp;#160; If you drill into the stack trace of the highlighted line, you can see the RegisterTypeLib function call:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/8321.clip_5F00_image005_5F00_3E25F3A8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5277.clip_5F00_image005_5F00_thumb_5F00_76646AC0.png" width="372" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The handle to the reg key is then closed and there is nothing else significant after the RegQueryKey operation above.&amp;#160; On a working machine, we see a significant difference as it continues to query the security and subkeys:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7331.clip_5F00_image007_5F00_34E9B867.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2045.clip_5F00_image007_5F00_thumb_5F00_58C269F4.jpg" width="655" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The thread stack for the highlighted line shows the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2134.clip_5F00_image008_5F00_57EA040A.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2541.clip_5F00_image008_5F00_thumb_5F00_304387E0.png" width="379" height="198" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It would appear that the specific function call is being shimmed by appcompat.&amp;#160; So, why is the shimming not occurring on the non-working machine?&amp;#160; The answer is at the beginning of the log, when the apphelp.dll loads in the msiexec process.&amp;#160; The following registry key is checked:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;[HKLM\SOFTWARE\Policies\Microsoft\Windows\AppCompat]&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;DisableEngine=&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;And sure enough, it was set to a 1.&amp;#160; Application compatibility engine can be turned off by either setting the above registry entry to 1 manually, or by configuring the “Turn off Application Compatibility Engine” group policy setting under “Computer Configuration | Administrative Templates | Windows Components | Application Compatibility.”&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Additional Resources:&lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc738702(WS.10).aspx" target="_blank"&gt;DisableEngine&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;-Anshuman Ghosh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3474123" width="1" height="1"&gt;</description></item><item><title>Wallpaper Deployment Troubleshooting</title><link>http://blogs.technet.com/b/askperf/archive/2011/12/13/wallpaper-deployment-troubleshooting.aspx</link><pubDate>Tue, 13 Dec 2011 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3470390</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3470390</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2011/12/13/wallpaper-deployment-troubleshooting.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Hello AskPerf! Deepak Kumar here to discuss an emerging issue we&amp;rsquo;ve been seeing on the front lines that surround Wallpaper deployment to Windows Desktops. We&amp;rsquo;re going to primarily focus on Windows 7, and may sprinkle a little XP in. With that said, let&amp;rsquo;s dig in!&lt;/p&gt;
&lt;p&gt;Lots of customers like to force Customized Wallpaper to their user&amp;rsquo;s machines. Whether this be mandatory or a start screen for new users. When configuring the policies to be applied, it is extremely important to not overlook the fine print on what they actually accomplish. Here are the policies that control Desktop Wallpaper:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;User Configuration | Administrative Templates | Desktop | Desktop | &amp;ldquo;Desktop Wallpaper&amp;rdquo;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Specifies the desktop background ("wallpaper") displayed on all users' desktops.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;This setting lets you specify the wallpaper on users' desktops and prevents users from changing the image or its presentation. The wallpaper you specify can be stored in a bitmap (*.bmp) or JPEG (*.jpg) file.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;To use this setting, type the fully qualified path and name of the file that stores the wallpaper image. You can type a local path, such as C:\Windows\web\wallpaper\home.jpg or a UNC path, such as \\Server\Share\Corp.jpg. If the specified file is not available when the user logs on, no wallpaper is displayed. Users cannot specify alternative wallpaper. You can also use this setting to specify that the wallpaper image be centered, tiled, or stretched. Users cannot change this specification.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;If you disable this setting or do not configure it, no wallpaper is displayed. However, users can select the wallpaper of their choice.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Also, see the "Allow only bitmapped wallpaper" in the same location, and the "Prevent changing wallpaper" setting in User Configuration\Administrative Templates\Control Panel.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000; background-color: #ffffff;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Note: This setting does not apply to remote desktop server sessions.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;b&gt;User Configuration | Administrative Templates | Control Panel | Personalization | &amp;ldquo;Prevent changing desktop background&amp;rdquo;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Prevents users from adding or changing the background design of the desktop.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;By default, users can use the Desktop Background page in the Personalization or Display Control Panel to add a background design (wallpaper) to their desktop.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;If you enable this setting, none of the Desktop Background settings can be changed by the user.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;To specify wallpaper for a group, use the "Desktop Wallpaper" setting.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Note: You must also enable the "Desktop Wallpaper" setting to prevent users from changing the desktop wallpaper. Refer to KB article: Q327998 for more information.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;i&gt;&lt;span color="#0000ff"&gt;Also, see the "Allow only bitmapped wallpaper" setting.&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;After you set one or both of the above policies, you deploy them out to your users. There may be times when the Wallpaper does not display. If that occurs, follow these steps:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Step 1&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Determine which nodes/machines do not see the Wallpaper which was deployed. Categorize these machines by the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Operating System (Windows XP, Vista, 7)&lt;/li&gt;
&lt;li&gt;The OU they participate in&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;b&gt;Step 2&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Confirm that your policies are set correctly. If some machines in the OU do not see the Wallpaper, then chances are the policy did not get applied. To confirm that the policy got applied, simply capture a &amp;ldquo;gpresult /z&amp;rdquo; output from the machine/machines in question, then check the policy.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Step 3&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Is the Wallpaper accessible? Can the user access the JPG or BMP locally and/or on your network share? Obviously, the correct permissions should be validated if the Wallpaper resides on a network share.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Step 4&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Is the registry key set correct? Since Wallpaper is a user specific setting/policy, you should check if the following registry location reflects the Wallpaper file/path you specified in your policy:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/5025.image_5F00_418E8363.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0247.image_5F00_thumb_5F00_6064F741.png" width="556" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[HKEY_CURRENT_USER\Control Panel\Desktop]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Wallpaper&lt;/b&gt; = &lt;b&gt;CORP.BMP&lt;/b&gt; or &lt;b&gt;\\SERVER1\SHARE\CORP.BMP&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Step 5&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Have you checked the Wallpaper style? Interestingly enough, this becomes a primary suspect when dealing with an OU that contains a mixture of Windows XP and later Operating Systems. In Windows 7, you can find &lt;b&gt;Fill&lt;/b&gt; and &lt;b&gt;Fit&lt;/b&gt; as two additional wallpaper styles compared to Windows XP. See the screenshots below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7587.image_5F00_2675B455.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2816.image_5F00_thumb_5F00_656734F0.png" width="550" height="504" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Windows XP does not have the option to Fill or Fit Desktop Wallpaper. So, in a mixed OS environment, this is something you will want to keep an eye out for. The obvious fix is to select any other style, excluding Fill or Fit. The registry location for this setting is as follows:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[HKEY_CURRENT_USER\Control Panel\Desktop]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;WallpaperStyle&lt;/b&gt; = &lt;b&gt;10&lt;/b&gt; (Fill), &lt;b&gt;6&lt;/b&gt; (Fit), &lt;b&gt;2&lt;/b&gt; (Stretch), &lt;b&gt;0&lt;/b&gt; (Tile), &lt;b&gt;0&lt;/b&gt; (Center)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Step 6&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Some users may be smart enough to set their wallpaper via Image Preview. Why does this occur? Well, because the policy &amp;ldquo;Prevent changing desktop background&amp;rdquo; prevents users from changing the wallpaper via Desktop Background in Personalization. Image Preview uses a different method, thus by passing the policy. To get around this, you will need to Enable the &amp;ldquo;Active Desktop Wallpaper&amp;rdquo; policy noted in &lt;a href="http://support.microsoft.com/kb/327998" target="_blank"&gt;http://support.microsoft.com/kb/327998&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;If all else fails&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;If your Desktop Wallpaper still does not show, then try the follow options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the following hotfix - &lt;a href="http://support.microsoft.com/kb/977944" target="_blank"&gt;http://support.microsoft.com/kb/977944&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Check the Application and/or System logs for any application crashes&lt;/li&gt;
&lt;li&gt;Login to the same machine with a different user account and check behavior&lt;/li&gt;
&lt;li&gt;On Windows XP &amp;amp; Vista, you will not see GPO Wallpaper via RDP connection; however, this is now available in Windows 7&lt;/li&gt;
&lt;li&gt;Use the Process Monitor tool to collect the logs while you attempt to apply desktop&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you can tell, there are many road blocks that can cause Desktop Wallpaper to not appear correctly. Following the steps above should help resolve any Wallpaper issues you encounter in the future.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Additional Resources:&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/b/deploymentguys/archive/2009/11/20/windows-7-rtm-issue-with-group-policy-enforced-wallpaper.aspx" target="_blank"&gt;Windows 7 RTM Issue with Group Policy Enforced Wallpaper&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blogs.technet.com/b/deploymentguys/archive/2011/08/22/windows-7-background-customization.aspx" target="_blank"&gt;Windows 7 Background Customization&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Deepak Kumar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3470390" width="1" height="1"&gt;</description></item><item><title>Default Print Device Selection Behavior in Windows</title><link>http://blogs.technet.com/b/askperf/archive/2011/11/22/default-print-device-selection-behavior-in-windows.aspx</link><pubDate>Tue, 22 Nov 2011 12:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3466503</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3466503</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2011/11/22/default-print-device-selection-behavior-in-windows.aspx#comments</comments><description>&lt;p&gt;Good Morning AskPerf Readers! Our theme today is printing, specifically Default Printer selection behavior. We regularly get asked the question on what causes the default printer to change on a Windows host. Understanding the reasons why this change occurs can alleviate a lot of the frustration end users experience when it happens, as well as provide helpdesk staff an easy-to-share solution to the problem.&lt;/p&gt;
&lt;p&gt;When installing a new print device (or software that may install a software based printer), the default printer may change for the current user without prompting the user if the current default printer has been deleted. This can happen if the new installation package deletes the current default printer prior to installing the new one (this behavior is by design).&lt;/p&gt;
&lt;p&gt;Steps to reproduce the behavior:&lt;/p&gt;
&lt;p&gt;The user deletes their default printer (the number of printers installed is irrelevant) for whatever reason. The user is warned this will change their default print device.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/6558.Screen1_5F00_5941D516.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Screen1" border="0" alt="Screen1" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/7723.Screen1_5F00_thumb_5F00_58696F2C.png" width="382" height="179" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Windows Spooler will arbitrarily choose a different print device as default for that user based on the list under &lt;strong&gt;HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices&lt;/strong&gt;. Selection is prioritized: standard printers over virtual printers and local printers over remote connections.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\UserSelectedDefault&lt;/strong&gt; value will be changed from 1 to 0, indicating the user did not make an active decision to have this new printer as his default print device. Whenever a new print device is installed by the user, it will be automatically chosen as the default printer without asking the user if this is desired.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\UserSelectedDefault&lt;/strong&gt; value will be changed from 0 to 1, indicating the user actively installed this new printer, presumably wanting to have it as his default print device.&lt;/p&gt;
&lt;p&gt;Prior to deleting a Print device that&amp;rsquo;s marked as the default printer, users should select a different default print device using the &lt;strong&gt;Devices and Printers&lt;/strong&gt; Control Panel applet.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/0876.Screen2_5F00_5B9B5714.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="Screen2" border="0" alt="Screen2" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/2450.Screen2_5F00_thumb_5F00_5A56BE35.png" width="551" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional Resources:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Users&amp;rsquo; Default Printer can also be changed by other specific situations. Additional details about those situations can be found at the following links:&lt;/p&gt;
&lt;p&gt;Location Aware Printing Walkthrough &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee424313(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee424313(WS.10).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Windows 7 / Windows Server 2008 R2: Location-Aware Printing &lt;br /&gt;&lt;a href="http://blogs.technet.com/b/askperf/archive/2009/10/10/windows-7-windows-server-2008-r2-location-aware-printing.aspx"&gt;http://blogs.technet.com/b/askperf/archive/2009/10/10/windows-7-windows-server-2008-r2-location-aware-printing.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Using Group Policy to Set Default Printers in Windows 7 &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/edge/Video/ff710962"&gt;http://technet.microsoft.com/en-us/edge/Video/ff710962&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Remote Desktop Printer Redirection Settings &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee791784(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee791784(WS.10).aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;-Adam Richards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3466503" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/askperf/archive/tags/Printing/">Printing</category></item><item><title>Two Minute Drill:  DriverQuery.exe</title><link>http://blogs.technet.com/b/askperf/archive/2011/10/21/two-minute-drill-driverquery-exe.aspx</link><pubDate>Fri, 21 Oct 2011 11:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3460465</guid><dc:creator>Blake Morrison - MSFT</dc:creator><slash:comments>7</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/askperf/rsscomments.aspx?WeblogPostID=3460465</wfw:commentRss><comments>http://blogs.technet.com/b/askperf/archive/2011/10/21/two-minute-drill-driverquery-exe.aspx#comments</comments><description>&lt;p&gt;Hello AskPerf!&amp;nbsp; Blake here to discuss an internal command line tool called DriverQuery.&amp;nbsp; What exactly is DriverQuery?&amp;nbsp; I&amp;rsquo;m glad you asked.&amp;nbsp; In a nutshell, DriverQuery is a command line tool that displays a list of all installed device drivers and their properties.&amp;nbsp; Let&amp;rsquo;s check out its options and some examples.&amp;nbsp; When you type &amp;ldquo;DriverQuery /?&amp;rdquo; from a command prompt, the following appears:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/1537.DQ_5F00_36918F12.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="DQ" border="0" alt="DQ" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-54-33-metablogapi/3107.DQ_5F00_thumb_5F00_2E99ECB0.png" width="771" height="637" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now let&amp;rsquo;s take a look at some DriverQuery examples:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show all installed device drivers which includes Module Name, Display Name, Driver Type, and Link Date&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;*To display addition columns (see below), add the &amp;ldquo;/V&amp;rdquo; switch&lt;/p&gt;
&lt;p&gt;Module Name, Display Name, Description, Driver Type, Start Mode, State, Status, Accept Stop, Accept Pause, Paged Pool, Code(bytes,&amp;nbsp; BSS(by,&amp;nbsp; Link Date, Path, Init(bytes&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Show all installed device drivers in a list view&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe /fo list&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do not list the column header&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe /nh&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;" color="#c0504d"&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;" color="#c0504d"&gt;Find drivers that are not signed&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe /si | findstr FALSE&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Find drivers that are currently Running&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe /v |findstr Running&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For most of these commands, you may want to add the &amp;ldquo;&amp;gt;&amp;rdquo; command redirection option to output the results to a .txt file.&amp;nbsp; For example:&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #c0504d;" color="#c0504d"&gt;C:\&amp;gt;Driverquery.exe /v &amp;gt; C:\results.txt&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional Resources:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb490896.aspx" target="_blank"&gt;DriverQuery on TechNet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/magazine/ee851682.aspx" target="_blank"&gt;Use the Driverquery Command to Take Inventory of Installed Drivers&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-Blake Morrison&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3460465" width="1" height="1"&gt;</description></item></channel></rss>
