<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Brad Rutkowski's Blog</title><subtitle type="html" /><id>http://blogs.technet.com/brad_rutkowski/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.technet.com/brad_rutkowski/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-04-24T00:57:00Z</updated><entry><title>win32_processor and cim_processor CurrentClockSpeed shows lower value than actual processor speed</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2009/04/16/win32-processor-and-cim-processor-currentclockspeed-shows-lower-value-than-actual-processor-speed.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2009/04/16/win32-processor-and-cim-processor-currentclockspeed-shows-lower-value-than-actual-processor-speed.aspx</id><published>2009-04-16T22:50:05Z</published><updated>2009-04-16T22:50:05Z</updated><content type="html">&lt;p&gt;Was looking at an issue today where a whole bunch of our servers were showing clock speeds that didn’t match the max clock speed.&amp;#160; These servers were showing up on our &lt;a href="http://technet.microsoft.com/en-us/exchange/bb288481.aspx" target="_blank"&gt;exBPA&lt;/a&gt; reports and thus landed in my lap to investigate.&amp;#160; At first I assumed that something most be wrong with the report and so I logged onto a couple and sure enough they didn’t match the max speed:&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;PS C:\&amp;gt; get-wmiobject win32_processor | select=object currentclock*,max* | format-table -automatic&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;CurrentClockSpeed MaxClockSpeed     &lt;br /&gt;----------------- -------------      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1999&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1999&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So with a bit of digging on the internet I found a page referencing the Enhanced Intel SpeedStep Technology:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;SpeedStep is a trademark for a series of dynamic frequency scaling technologies (including SpeedStep, SpeedStep II, and SpeedStep III) built into some Intel microprocessors that allow the clock speed of the processor to be dynamically changed by software. This allows the processor to meet the instantaneous performance needs of the operation being performed, while minimizing power draw and heat dissipation.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Well that seemed promising, so I found out that you can turn this off in power options in the control panel, setting the minimum processor state to 100%:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://i149.photobucket.com/albums/s62/brad9987/Capture-5.jpg" width="307" height="287" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;PS C:\&amp;gt; gwmi win32_processor | select-object currentclock*,max* | ft -au &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;CurrentClockSpeed MaxClockSpeed     &lt;br /&gt;----------------- -------------      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2332&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;In the end I just turned it back on as this does save power and will dynamically increase to full usage when needed.&amp;#160; Another mystery solved…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4b0b5cef-b58f-421e-a9f0-c8fd3730729f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+2008" rel="tag"&gt;Windows 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3227328" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /><category term="CPU" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/CPU/default.aspx" /></entry><entry><title>NTDS performance counters missing</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2009/03/19/ntds-performance-counters-missing.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2009/03/19/ntds-performance-counters-missing.aspx</id><published>2009-03-20T00:28:52Z</published><updated>2009-03-20T00:28:52Z</updated><content type="html">&lt;p&gt;Thought I’d doc this for any others who run into this issue.&amp;#160; I had to demote/promote a machine this morning and when it finished promoting I found it was missing all the NTDS\* counters in perfmon.&amp;#160; &lt;/p&gt;  &lt;p&gt;I ran LODCTR /Q and saw that it looked wrong:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;C:\Windows\system32&amp;gt;lodctr /q:NTDS     &lt;br /&gt;Performance Counter ID Queries [PERFLIB]:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Base Index: 0x00000737 (1847)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Counter Text ID: 0x00001792 (6034)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Help Text ID: 0x00001793 (6035)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Looking into it further I found it was missing the whole performance key:&lt;/p&gt;  &lt;p&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Performance&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once I found that, I exported the performance registry key from another domain controller and imported to the server missing the values and ran LODCTR /R and then the counters were back where they belonged…&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;C:\Windows\system32&amp;gt;lodctr /q:NTDS     &lt;br /&gt;Performance Counter ID Queries [PERFLIB]:      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Base Index: 0x00000737 (1847)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Counter Text ID: 0x00001794 (6036)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Help Text ID: 0x00001795 (6037) &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Courier New"&gt;[NTDS] Performance Counters (Enabled)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DLL Name: %systemroot%\system32\ntdsperf.dll      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Open Procedure: OpenNtdsPerformanceData      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Collect Procedure: CollectNtdsPerformanceData      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Close Procedure: CloseNtdsPerformanceData      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; First Counter ID: 0x000009DE (2526)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Counter ID: 0x000009DE (2526)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; First Help ID: 0x000009DF (2527)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Last Help ID: 0x000009DF (2527)&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3215419" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="DS" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/DS/default.aspx" /></entry><entry><title>Interacting with Data Collector Sets via Powershell</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2009/02/18/interacting-with-data-collector-sets-via-powershell.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2009/02/18/interacting-with-data-collector-sets-via-powershell.aspx</id><published>2009-02-19T00:30:12Z</published><updated>2009-02-19T00:30:12Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;&lt;u&gt;Background:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In an &lt;a href="http://blogs.technet.com/brad_rutkowski/archive/2007/04/14/hey-admins-let-s-explore-vista-together-part-1.aspx" target="_blank"&gt;earlier post&lt;/a&gt; I talked about some new features for Windows 2008 and Vista.&amp;#160; One of those new features that is often overlooked are the data collector sets (DCS).&amp;#160; One particular role that leverages data collector sets is active directory.&amp;#160; Active directory has put “hooks” into tracing that can really take a lot of the thinking out of the question “why is my domain controller sluggish”.&amp;#160; For those of you still running Windows 2003 I go over a similar concept called &lt;a href="http://blogs.technet.com/brad_rutkowski/archive/2007/06/26/great-tool-for-windows-2003-server-performance-advisor-spa.aspx" target="_blank"&gt;Server Performance Advisor&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Anyways, you can play around with DCS by typing perfmon and then traversing to the section called Data Collector Sets (shocking).&amp;#160; If you have performance issues, go here first as it’s like combining a netmon capture with a kernel trace and then handing you the smoking gun.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://i149.photobucket.com/albums/s62/brad9987/Capture-3.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Challenge:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In my current role, we have a need to automate things quite a bit and so one of the actions I was looking at solving was collecting diagnostic information when a server is performing poorly.&amp;#160; Usually when a high CPU alert comes in, someone would need to logon to the server and go to perfmon and start at DCS collection.&amp;#160; More often is the case that by the time someone had been alerted and went to the server the sluggish behavior had subsided (the dreaded “close ticket, no problem found”).&lt;/p&gt;  &lt;p&gt;My solution was to try and figure out a way to start a DCS collection remotely at the time of event so that the data was present when an actual human became engaged.&lt;/p&gt;  &lt;p&gt;After some hard work, here is the code to do so!&amp;#160; You can create your own XML file (your own DCS template) and pass it in, but more than likely you’ll be happy at just kicking off one of the built-in templates (AD/System Perf/System Diags).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Running it via powershell:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First, how to do it on the fly:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #008000"&gt;## PLA.dll lives under system32 on Vista and 2k8.  This will create a powershell com object.&lt;/span&gt;
$datacollectorset = new-object -COM Pla.DataCollectorSet
&lt;span style="color: #008000"&gt;##This is the name of the predefined DCS collector.  It's read-only and will always be System\&amp;lt;something&amp;gt;&lt;/span&gt;
$name = &lt;span style="color: #006080"&gt;&amp;quot;System\Active Directory Diagnostics&amp;quot;&lt;/span&gt;
&lt;span style="color: #008000"&gt;##If you make the second param $null it will be the local machine.&lt;/span&gt;
$datacollectorset.Query($name,&lt;span style="color: #006080"&gt;&amp;quot;serverA&amp;quot;&lt;/span&gt;) 
$datacollectorset.start($false)
&lt;span style="color: #008000"&gt;## Status ReturnCodes: 0=stopped 1=running 2=compiling 3=queued (legacy OS) 4=unknown (usually autologger)&lt;/span&gt;
$datacollectorset.status
&lt;span style="color: #008000"&gt;##When you're ready to stop it call stop.&lt;/span&gt;
$datacollectorset.stop($false)
&lt;span style="color: #008000"&gt;##If you call status here, it will probably be '2' for a while as the server compiles the report.&lt;/span&gt;
$datacollectorset.status&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;And like so, you started and stopped a collection for Active Directory on you’re local computer or a remote server!&amp;#160; Like I said though, you can create you’re own templates too.&amp;#160; You might want to do this if you want to setup a built-in template to be scheduled to run daily, or perhaps you want to send the data to a network location, run more tasks at completion, etc.&amp;#160; If you do want to create a custom template then the code changes a bit:&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;$datacollectorset = new-object -COM Pla.DataCollectorSet
&lt;span style="color: #008000"&gt;## If you're making you're own (shows up under user defined).  &lt;/span&gt;
$xml = get-content C:\custom.xml &lt;span style="color: #008000"&gt;#You're custom exported XML file.&lt;/span&gt;
$datacollectorset.SetXml($xml)
&lt;span style="color: #008000"&gt;##Commit codes: http://msdn.microsoft.com/en-us/library/aa371873(VS.85).aspx this is add or modify.  Can't do this on a system created PLA instances (read only).&lt;/span&gt;
$datacollectorset.Commit($DCSPath , $null , 0x0003)     
$datacollectorset.Query($DCSPath,$null)
$datacollectorset.start($false)
&lt;span style="color: #008000"&gt;#Runs...&lt;/span&gt;
$datacollectorset.stop($false)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Scripting a solution:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finally if you wanted to script this you could do something like what I’ve done below.&amp;#160; This would collect for a desired interval (in seconds) and then when compilation completed display the path to the report.&amp;#160; I wrote this in CTP3, but you can easily take the concepts and backport them.&amp;#160; If the destination server is inaccessible, or you don't have permissions, then the script will blow up…&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;lt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;
    .SYNOPSIS
    This will fire up a PLA (Data Collector Set collection on a server and then copy it to the proper debug server
 
    .DESCRIPTION
    This is a proof of concept and only acceppts System defined collections.  No error handling so I hope you type well.

&lt;span style="color: #008000"&gt;#&amp;gt;&lt;/span&gt;

&lt;span style="color: #008000"&gt;##Inputs&lt;/span&gt;
[CmdletBinding()]
&lt;span style="color: #0000ff"&gt;param&lt;/span&gt;(
   [Parameter(Mandatory = $true)]
   &amp;lt;&lt;span style="color: #008000"&gt;#A system provided report to run like &amp;quot;System\System Performance&amp;quot;, System\System Diagnostics, etc. #&amp;gt;&lt;/span&gt;
   [string]$DCSPath,
   [Parameter(Mandatory = $true)]
   &amp;lt;&lt;span style="color: #008000"&gt;# This is how long you want the DCS collection to run in seconds#&amp;gt;&lt;/span&gt;
   [int32]$time,
   [Parameter(Mandatory = $false)]
   &amp;lt;&lt;span style="color: #008000"&gt;#If you don't pass in a server name it will be $null and run on the local system#&amp;gt;&lt;/span&gt;
   [string]$serverName
    )

    $datacollectorset = new-object -COM Pla.DataCollectorSet  
    $datacollectorset.Query($DCSPath,$serverName)
    $datacollectorset.start($false)
    Start-Sleep $time
    $datacollectorset.stop($false)
    
    &lt;span style="color: #008000"&gt;##Now we'll loop while the report compiles.&lt;/span&gt;
    $retries = 0
    do 
        {sleep 30; $returnCode = $datacollectorset.Status ; $retries++} 
    &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; ($returnCode &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; 2 -and $retries &lt;span style="color: #cc6633"&gt;-lt&lt;/span&gt; 60)
    
    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($retries &lt;span style="color: #cc6633"&gt;-eq&lt;/span&gt; 60)
    {
        Write-Warning &lt;span style="color: #006080"&gt;&amp;quot;Compiling has been running on the server for 30 minutes!  You'll need to check the following location on the server later for the report:&amp;quot;&lt;/span&gt;
        Write-Warning $datacollectorset.OutputLocation
        &lt;span style="color: #0000ff"&gt;break&lt;/span&gt;
    }
    
    &lt;span style="color: #008000"&gt;##Compiling has finished, now we can copy the folder to some location&lt;/span&gt;
    $path = $datacollectorset.OutputLocation
    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ($serverName)
    {
    $path = $path.Replace(&lt;span style="color: #006080"&gt;&amp;quot;:&amp;quot;&lt;/span&gt;,&lt;span style="color: #006080"&gt;&amp;quot;$&amp;quot;&lt;/span&gt;)
    Write-Host &lt;span style="color: #006080"&gt;&amp;quot;`nReport complete and can be viewed at \\$serverName\$path\report.html on the server.`n&amp;quot;&lt;/span&gt; 
    }
    &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
    {
    Write-Host &lt;span style="color: #006080"&gt;&amp;quot;`nReport complete and can be viewed at $path\report.html`n&amp;quot;&lt;/span&gt;
    }
    
   &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;The result:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://i149.photobucket.com/albums/s62/brad9987/Capture-4.jpg" /&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;More info:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PLA reference: &lt;a title="http://msdn.microsoft.com/en-us/library/aa372634(VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/aa372634(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa372634(VS.85).aspx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:13243a34-9c35-4042-b4eb-9f0961bae121" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Powershell" rel="tag"&gt;Powershell&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+2008" rel="tag"&gt;Windows 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Active+Directory" rel="tag"&gt;Active Directory&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows" rel="tag"&gt;Windows&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3204255" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="DS" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/DS/default.aspx" /><category term="Metrics" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Metrics/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /><category term="Cool Tools" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Cool+Tools/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>Powershell V2 CTP3 released</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/12/23/powershell-v2-ctp3-released.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/12/23/powershell-v2-ctp3-released.aspx</id><published>2008-12-23T06:21:45Z</published><updated>2008-12-23T06:21:45Z</updated><content type="html">&lt;p&gt;Been using this internally for the last couple of weeks and have been digging the changes.&amp;#160; Just wanted to put this out here to spread the word.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/powershell/archive/2008/12/23/early-christmas-present-from-powershell-team-community-technology-preview-3-ctp3-of-windows-powershell-v2.aspx" href="http://blogs.msdn.com/powershell/archive/2008/12/23/early-christmas-present-from-powershell-team-community-technology-preview-3-ctp3-of-windows-powershell-v2.aspx"&gt;http://blogs.msdn.com/powershell/archive/2008/12/23/early-christmas-present-from-powershell-team-community-technology-preview-3-ctp3-of-windows-powershell-v2.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy Holidays.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6cf21464-6c7f-4464-9917-8e3f1fcf23df" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/powershell" rel="tag"&gt;powershell&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3172430" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author></entry><entry><title>Check that driver file versions match on all your cluster nodes via Powershell</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/12/03/check-that-driver-file-versions-match-on-all-your-cluster-nodes-match-via-powershell.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/12/03/check-that-driver-file-versions-match-on-all-your-cluster-nodes-match-via-powershell.aspx</id><published>2008-12-04T02:25:00Z</published><updated>2008-12-04T02:25:00Z</updated><content type="html">&lt;P&gt;&lt;BR&gt;This is more of a proof of concept, but I've used it with success internally.&amp;nbsp; Take it and do with it what you want.&amp;nbsp; Many thx to &lt;A href="http://bsonposh.com/" target=_blank mce_href="http://bsonposh.com/"&gt;Brandon&lt;/A&gt; who did the "heavy lifting" when I got stuck!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Overview:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Ever run into cluster issues and wanted to see if the driver file versions matched on all the nodes of the cluster to rule out a mismatch on a driver level?&amp;nbsp; Well I did!&amp;nbsp; The basic gist is that you can show all the file versions for each node by just running the script against a node name.&amp;nbsp; If you want to see only the drivers that don’t match then you’d use the pipeline with where-object (?).&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Typical output:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;When All drivers match: &lt;BR&gt;&lt;/EM&gt;PS C:\Debuggers&amp;gt; Test-MSCluster.ps1 ServerSQL11 | ?{!$_.IsSame} &lt;BR&gt;Getting Nodes via WMI &lt;BR&gt;Getting the drivers on: ServerSQL11 &lt;BR&gt;Getting the file versions for the drivers on: ServerSQL11 &lt;BR&gt;Getting the drivers on: ServerSQL12 &lt;BR&gt;Getting the file versions for the drivers on: ServerSQL12 &lt;BR&gt;PS C:\Debuggers&amp;gt; &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;One Mismatch: &lt;BR&gt;&lt;/EM&gt;PS C:\Debuggers&amp;gt; Test-MSCluster.ps1 ServerAX | ?{!$_.IsSame} &lt;BR&gt;Getting Nodes via WMI &lt;BR&gt;Getting the drivers on: ServerAX &lt;BR&gt;Getting the file versions for the drivers on: ServerAX &lt;BR&gt;Getting the drivers on: ServerBX &lt;BR&gt;Getting the file versions for the drivers on: ServerBX &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerAX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ServerBX &lt;BR&gt;--------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ----------&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ---------- &lt;BR&gt;rmcast.sys&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.0.6001.18000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.0.6001.18069&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;EM&gt;Many nodes, many mismatches:&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;PS C:\Debuggers&amp;gt; Test-MSCluster.ps1 Server-Clus--11 | ?{!$_.IsSame}&amp;nbsp; &lt;BR&gt;Getting Nodes via WMI &lt;BR&gt;Getting the drivers on: Server-Clus--10 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--10 &lt;BR&gt;Getting the drivers on: Server-Clus--11 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--11 &lt;BR&gt;Getting the drivers on: Server-Clus--15 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--15 &lt;BR&gt;Getting the drivers on: Server-Clus--16 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--16 &lt;BR&gt;Getting the drivers on: Server-Clus--13 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--13 &lt;BR&gt;Getting the drivers on: Server-Clus--12 &lt;BR&gt;Getting the file versions for the drivers on: Server-Clus--12 &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp; : Dbgv.sys &lt;BR&gt;Server-Clus--10 : 4.60 &lt;BR&gt;Server-Clus--11 : FileMissing &lt;BR&gt;Server-Clus--15 : FileMissing &lt;BR&gt;Server-Clus--16 : FileMissing &lt;BR&gt;Server-Clus--13 : FileMissing &lt;BR&gt;Server-Clus--12 : FileMissing &lt;BR&gt;IsSame&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp; : HpCISSs2.sys &lt;BR&gt;Server-Clus--10 : FileMissing &lt;BR&gt;Server-Clus--11 : FileMissing &lt;BR&gt;Server-Clus--15 : FileMissing &lt;BR&gt;Server-Clus--16 : 6.8.0.64 Build 9 (x86-64) &lt;BR&gt;Server-Clus--13 : 6.8.0.64 Build 9 (x86-64) &lt;BR&gt;Server-Clus--12 : 6.8.0.64 Build 9 (x86-64) &lt;BR&gt;IsSame&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp; : USBSTOR.SYS &lt;BR&gt;Server-Clus--10 : FileMissing &lt;BR&gt;Server-Clus--11 : FileMissing &lt;BR&gt;Server-Clus--15 : FileMissing &lt;BR&gt;Server-Clus--16 : FileMissing &lt;BR&gt;Server-Clus--13 : 6.0.6001.18000 &lt;BR&gt;Server-Clus--12 : 6.0.6001.18000 &lt;BR&gt;IsSame&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp; : mrxsmb10.sys &lt;BR&gt;Server-Clus--10 : 6.0.6001.18000 &lt;BR&gt;Server-Clus--11 : 6.0.6001.18000 &lt;BR&gt;Server-Clus--15 : 6.0.6001.18000 &lt;BR&gt;Server-Clus--16 : 6.0.6001.18068 &lt;BR&gt;Server-Clus--13 : 6.0.6001.18000 &lt;BR&gt;Server-Clus--12 : 6.0.6001.18000 &lt;BR&gt;IsSame&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;/P&gt;
&lt;P&gt;FileName&amp;nbsp;&amp;nbsp; : nm3.sys &lt;BR&gt;Server-Clus--10 : 03.02.0764.0001 &lt;BR&gt;Server-Clus--11 : FileMissing &lt;BR&gt;Server-Clus--15 : FileMissing &lt;BR&gt;Server-Clus--16 : FileMissing &lt;BR&gt;Server-Clus--13 : FileMissing &lt;BR&gt;Server-Clus--12 : FileMissing &lt;BR&gt;IsSame&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False&lt;/P&gt;
&lt;DIV class=code&gt;Code:&lt;/DIV&gt;
&lt;DIV class=code&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class=code&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;PRE style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;&lt;SPAN style="COLOR: #008000"&gt;######################################################################&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #008000"&gt;#Test-MSCluster.ps1&lt;/SPAN&gt;
Param($ClusterNode)

&lt;SPAN style="COLOR: #008000"&gt;# I am using this hashtable to store a unique list of file names. &lt;/SPAN&gt;
$Files = @{}
&lt;SPAN style="COLOR: #008000"&gt;# I am using this array to store my custom objects we create later.&lt;/SPAN&gt;
$FileObjects = @()

Write-Host &lt;SPAN style="COLOR: #006080"&gt;"Getting Nodes via WMI"&lt;/SPAN&gt;
$nodes = gwmi -q &lt;SPAN style="COLOR: #006080"&gt;"Select name from MSCluster_Node"&lt;/SPAN&gt; -namespace root\mscluster -computername $ClusterNode -Authentication PacketPrivacy | %{$_.Name}

&lt;SPAN style="COLOR: #008000"&gt;# Here we process each node and get all the drivers from the node and add it to our $Files HashTable to be processed&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt; ( $node &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $nodes )
{
    Write-Host &lt;SPAN style="COLOR: #006080"&gt;"Getting the drivers on:"&lt;/SPAN&gt;  $node
    &lt;SPAN style="COLOR: #008000"&gt;# Here we are getting a list of the .sys files. Notice I am only getting the names&lt;/SPAN&gt;
    $filelistFinal = get-childitem &lt;SPAN style="COLOR: #006080"&gt;"\\$node\admin$\system32\drivers"&lt;/SPAN&gt; *.sys | %{$_.name}
    
    Write-Host &lt;SPAN style="COLOR: #006080"&gt;"Getting the file versions for the drivers on:"&lt;/SPAN&gt; $node
    &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($file &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $filelistFinal)
    {
        &lt;SPAN style="COLOR: #008000"&gt;# foreach file found we add it to the hasttable, but hashtables can only have a key once&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #008000"&gt;# so we need check if the key already exist. I do this because it is possible you could have&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #008000"&gt;# unique drivers per node.&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;(!$Files.$file)
        {
            $Files.Add($file,&lt;SPAN style="COLOR: #006080"&gt;"added"&lt;/SPAN&gt;)
        }
    }
}

&lt;SPAN style="COLOR: #008000"&gt;# Ok... now we have all our files time to process the hashtable and create our custom objects&lt;/SPAN&gt;
&lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($FileName &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $Files.Keys)
{
    &lt;SPAN style="COLOR: #008000"&gt;# This is how I create an object for each file&lt;/SPAN&gt;
    $myFileObj = New-Object System.Object
    
    &lt;SPAN style="COLOR: #008000"&gt;# This is how we add a property. In this case the FileName property. For these scenarios I chose add-member&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #008000"&gt;# because you can dynamically add properties (i.e. NodeName with value of File version)&lt;/SPAN&gt;
    $myFileobj | add-Member -MemberType NoteProperty -Name FileName -Value $FileName
    
    &lt;SPAN style="COLOR: #008000"&gt;# Now we need to add properties for each node.&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($node &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $nodes)
    {
        &lt;SPAN style="COLOR: #008000"&gt;# Making sure the file exist on the node&lt;/SPAN&gt;
        &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;(Test-Path \\$node\admin$\system32\drivers\$FileName)
        {
            &lt;SPAN style="COLOR: #008000"&gt;# Getting ProductVersion Info to use as the value for the Node Property&lt;/SPAN&gt;
            $fileInfo = [system.diagnostics.fileversioninfo]::getversioninfo(&lt;SPAN style="COLOR: #006080"&gt;"\\$node\admin$\system32\drivers\$FileName"&lt;/SPAN&gt;)
            $myFileobj | add-Member -MemberType NoteProperty -Name $node -Value $FileInfo.ProductVersion
        }
        &lt;SPAN style="COLOR: #0000ff"&gt;else&lt;/SPAN&gt;
        {
            &lt;SPAN style="COLOR: #008000"&gt;# File not found using FileMissing as the value for the Node Property&lt;/SPAN&gt;
            $myFileobj | add-Member -MemberType NoteProperty -Name $node -Value &lt;SPAN style="COLOR: #006080"&gt;"FileMissing"&lt;/SPAN&gt;
        }
    }
    &lt;SPAN style="COLOR: #008000"&gt;# Outputting Object&lt;/SPAN&gt;
    $FileObjects += $myFileObj
}

&lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($result &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $FileObjects)
{
    $isSame = $true
    &lt;SPAN style="COLOR: #008000"&gt;# Getting Server Name from Properties of the custom object&lt;/SPAN&gt;
    $servers = $result | Get-Member -MemberType Noteproperty | ?{$_.Name &lt;SPAN style="COLOR: #cc6633"&gt;-ne&lt;/SPAN&gt; &lt;SPAN style="COLOR: #006080"&gt;"FileName"&lt;/SPAN&gt;} | %{$_.Name}
    
    &lt;SPAN style="COLOR: #008000"&gt;# Checking the value of each server vs the other servers&lt;/SPAN&gt;
    &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($server &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $servers)
    {
        &lt;SPAN style="COLOR: #0000ff"&gt;foreach&lt;/SPAN&gt;($srv &lt;SPAN style="COLOR: #0000ff"&gt;in&lt;/SPAN&gt; $servers)
        {
            &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;($srv &lt;SPAN style="COLOR: #cc6633"&gt;-ne&lt;/SPAN&gt; $server)
            {
                &lt;SPAN style="COLOR: #008000"&gt;# If the the value is different we set $isSame to $false&lt;/SPAN&gt;
                &lt;SPAN style="COLOR: #0000ff"&gt;if&lt;/SPAN&gt;($result.&lt;SPAN style="COLOR: #006080"&gt;"$srv"&lt;/SPAN&gt; &lt;SPAN style="COLOR: #cc6633"&gt;-ne&lt;/SPAN&gt; $result.&lt;SPAN style="COLOR: #006080"&gt;"$server"&lt;/SPAN&gt;){$isSame = $false}
            }
        }
    }
    &lt;SPAN style="COLOR: #008000"&gt;# add the isSame property to the object&lt;/SPAN&gt;
    $result | add-Member -MemberType NoteProperty -Name IsSame -value $isSame
    
    &lt;SPAN style="COLOR: #008000"&gt;# output object&lt;/SPAN&gt;
    $result 
}
&lt;SPAN style="COLOR: #008000"&gt;######################################################################&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;***Note:&amp;nbsp; This script is not fast, as it is getting the file versions for every driver (*.sys)&amp;nbsp; on each system,&amp;nbsp; I'd highly suggest not running this over the WAN...&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3163587" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>SET-ACL on registry key</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/09/29/set-acl-on-registry-key.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/09/29/set-acl-on-registry-key.aspx</id><published>2008-09-29T18:06:49Z</published><updated>2008-09-29T18:06:49Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Man it was hard to find info on using set-acl on a registry key!&amp;#160;&amp;#160; I was looking for a way to set an ACL that once set would be inherited by child keys and values.&amp;#160;&amp;#160;&amp;#160; We needed to give “Local Service” full control on the registry key below and have the subkeys inherit the permission.&amp;#160; You might say:&amp;#160; “Why not use SUBINACL?”, well due to a bug or by design SUBINACL doesn’t work for WIN7 server core (probably should look into that).&amp;#160; Besides, why call an exe when you can do it natively in PS.&amp;#160; Anyways here is the code that ended up working.&amp;#160; Hope next time someone goes looking for this it’ll be the first hit.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $acl= get-acl -path &amp;quot;hklm:\SOFTWARE\Microsoft\Reliability Analysis&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $inherit = [system.security.accesscontrol.InheritanceFlags]&amp;quot;ContainerInherit, ObjectInherit&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $propagation = [system.security.accesscontrol.PropagationFlags]&amp;quot;None&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $rule=new-object system.security.accesscontrol.registryaccessrule &amp;quot;LOCAL SERVICE&amp;quot;,&amp;quot;FullControl&amp;quot;,$inherit,$propagation,&amp;quot;Allow&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $acl.addaccessrule($rule)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; $acl|set-acl&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&lt;em&gt;And the output of GET-ACL shows local service now:&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;PS C:\&amp;gt; get-acl -path &amp;quot;hklm:\SOFTWARE\Microsoft\Reliability Analysis&amp;quot; | fl &lt;font color="#ff0000"&gt;&amp;lt;—Verifying that it got set.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;Path&amp;#160;&amp;#160; : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Reliability Analysis&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;Owner&amp;#160; : BUILTIN\Administrators&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;Group&amp;#160; : DOMAIN\Domain Users&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&lt;strong&gt;Access : NT AUTHORITY\LOCAL SERVICE Allow&amp;#160; FullControl&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Users Allow&amp;#160; ReadKey&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Users Allow&amp;#160; -2147483648&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Administrators Allow&amp;#160; FullControl&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Administrators Allow&amp;#160; 268435456&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\SYSTEM Allow&amp;#160; FullControl&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\SYSTEM Allow&amp;#160; 268435456&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; CREATOR OWNER Allow&amp;#160; 268435456&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;Audit&amp;#160; :&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="cour" size="1"&gt;Sddl&amp;#160;&amp;#160; : O:BAG:DUD:AI(A;OICI;KA;;;LS)(A;ID;KR;;;BU)(A;CIIOID;GR;;;BU)(A;ID;KA;;;BA)(A;CIIOID;GA;;;BA)(A;ID;KA;;;SY)(A;CIIOID;GA;;;SY)(A;CIIOID;GA;;;CO)&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3129967" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>Caught the Powershell Bug.</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/09/26/caught-the-powershell-bug.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/09/26/caught-the-powershell-bug.aspx</id><published>2008-09-26T23:35:43Z</published><updated>2008-09-26T23:35:43Z</updated><content type="html">&lt;p&gt;Over the past few months I have fallen in love with PowerShell.&amp;#160;&amp;#160; I’ve taken on a new role (starting in mid-October) that will be more focused on automating out administrative tasks via powershell so the focus of this blog might change more towards that subject.&amp;#160; I think the crowd that congregates here are IT admins for the most part, so this should remain relevant to your jobs (did this blog have a focus anyways?). If you have a scripting question, drop me a mail and I’ll post about it later.&lt;/p&gt;  &lt;p&gt;This is where I started, its a self paced course on the basics.&amp;#160; Once you walk through this (2 hours) you’ll start seeing the power: &lt;a title="http://download.microsoft.com/download/4/7/1/47104ec6-410d-4492-890b-2a34900c9df2/Workshops-EN.zip" href="http://download.microsoft.com/download/4/7/1/47104ec6-410d-4492-890b-2a34900c9df2/Workshops-EN.zip"&gt;http://download.microsoft.com/download/4/7/1/47104ec6-410d-4492-890b-2a34900c9df2/Workshops-EN.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&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;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Obligatory powershell jpg:&lt;/p&gt;  &lt;p&gt;&lt;img height="220" src="http://static.flickr.com/164/421721170_646066ae87.jpg" width="281" /&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3129173" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Party in the back" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Party+in+the+back/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>Using invoke-command to launch a script on a remote computer which connects to network resources.</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/09/26/using-invoke-command-to-launch-a-script-on-a-remote-computer-which-connects-to-network-resources.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/09/26/using-invoke-command-to-launch-a-script-on-a-remote-computer-which-connects-to-network-resources.aspx</id><published>2008-09-26T22:19:00Z</published><updated>2008-09-26T22:19:00Z</updated><content type="html">&lt;P&gt;First, I found the details &lt;A href="http://blogs.msdn.com/powershell/archive/2008/06/05/credssp-for-second-hop-remoting-part-i-domain-account.aspx" target=_blank mce_href="http://blogs.msdn.com/powershell/archive/2008/06/05/credssp-for-second-hop-remoting-part-i-domain-account.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Second, things can change as this is being done with the CTP for Powershell 2.0&lt;/P&gt;
&lt;P&gt;Third, if you don’t know about remoting in 2.0 watch &lt;A href="http://edge.technet.com/Media/Remote-Management-A-Sneak-Peek-at-Windows-PowerShell-20/" target=_blank mce_href="http://edge.technet.com/Media/Remote-Management-A-Sneak-Peek-at-Windows-PowerShell-20/"&gt;this 5 minute video&lt;/A&gt;. Then read &lt;A href="http://technet.microsoft.com/en-us/magazine/cc718988.aspx?pr=blog" target=_blank mce_href="http://technet.microsoft.com/en-us/magazine/cc718988.aspx?pr=blog"&gt;this&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Whew.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;U&gt;Backstory:&lt;/U&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;You might find yourself in a situation where you want to run a batch/vbs/cmd file on a bunch of servers at once. This batch file requires to connect to network locations to gather/put information during run time. The Powershell 2.0 remoting experience out of the box doesn’t allow you to do these “double hops” with the client side credentials. What happens is that when you remote using powershell, you get a set of credentials for use on that machine.&amp;nbsp; When you go off-box, the request hasthe machine credentials. This obviously can cause issues leaving you two solutions:&lt;/P&gt;
&lt;P&gt;1) Change the ACLS on the remote share to include the machine credentials&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;a. Can be done by adding &amp;lt;domain&amp;gt;\domain computers with read access to the shares(s).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;b. Create a group that has all the machines required in it and ACL out the share permissions with that group.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;2) Use CredSSP so that you get a credential which can do multi-hop.&lt;/P&gt;
&lt;P&gt;So what is required to use CredSSP, thus allowing your client-side credentials to “pass-thru” to the server-side and go off box as your creds?&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;U&gt;On the client-side:&lt;/U&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;new-item HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation -force &lt;BR&gt;new-ItemProperty HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation -name AllowFreshCredentials -value 1 -type DWord -force &lt;BR&gt;new-ItemProperty HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation -name ConcatenateDefaults_AllowFresh -value 1 -type DWord -force &lt;BR&gt;new-item HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentials -force &lt;BR&gt;new-ItemProperty HKLM:\SOFTWARE\Policies\Microsoft\Windows\CredentialsDelegation\AllowFreshCredentials -name 1 -value wsman/* -force &lt;BR&gt;winrm s winrm/config/client/auth '@{CredSSP="true"}'&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;BR&gt;On the server-side:&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;winrm s winrm/config/service/auth &lt;A href="mailto:'@%7BCredSSP=%22true%22%7D'" mce_href="mailto:'@{CredSSP=&amp;quot;true&amp;quot;}'"&gt;'@{CredSSP="true"}'&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;&lt;U&gt;Example without credSSP:&lt;/U&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;PS C:\Debuggers&amp;gt; Invoke-Command -ComputerName server1.domain.com,server2.domain.com -ScriptBlock {c:\debuggers\test_PS.cmd} -Credential reddom\brad&lt;/P&gt;
&lt;P&gt;C:\Windows\System32&amp;gt;cd\ &lt;/P&gt;
&lt;P&gt;C:\&amp;gt;cd debuggers &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;md test &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;copy &lt;A href="file://serverx/bradshare/Book1.xlsx" mce_href="file:///\\serverx\bradshare\Book1.xlsx"&gt;\\serverx\bradshare\Book1.xlsx&lt;/A&gt; &lt;FONT color=#ff0000&gt;&amp;lt;-- Can’t make this happen as it goes off-box as the machine account. &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Access is denied.&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;C:\Windows\System32&amp;gt;cd\ &lt;/P&gt;
&lt;P&gt;C:\&amp;gt;cd debuggers &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;md test &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;copy &lt;A href="file://serverx/bradshare/Book1.xlsx" mce_href="file:///\\serverx\bradshare\Book1.xlsx"&gt;\\serverx\bradshare\Book1.xlsx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;Access is denied.&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;PS C:\Debuggers&amp;gt; &lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;Example with credSSP:&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;PS C:\Debuggers&amp;gt; Invoke-Command -ComputerName server1.domain.com,server2.domain.com -ScriptBlock {c:\debuggers\test_PS.cmd} &lt;STRONG&gt;-Authentication CredSSP&lt;/STRONG&gt; -Credential reddom\brad&lt;/P&gt;
&lt;P&gt;//Had to use the FQDN as it does an SPN lookup and hostname fails. &lt;/P&gt;
&lt;P&gt;C:\Windows\System32&amp;gt;cd\ &lt;/P&gt;
&lt;P&gt;C:\&amp;gt;cd debuggers &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;md test &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;copy &lt;A href="file://serverx/bradshare/Book1.xlsx" mce_href="file:///\\serverx\bradshare\Book1.xlsx"&gt;\\serverx\bradshare\Book1.xlsx&lt;/A&gt; &lt;FONT color=#ff0000&gt;&amp;lt;-- Now goes off the server-side with my ‘brad’ user account.&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;1 file(s) copied. &lt;/P&gt;
&lt;P&gt;C:\Windows\System32&amp;gt;cd\ &lt;/P&gt;
&lt;P&gt;C:\&amp;gt;cd debuggers &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;md test &lt;/P&gt;
&lt;P&gt;C:\Debuggers&amp;gt;copy &lt;A href="file://serverx/bradrutk$/Book1.xlsx" mce_href="file:///\\serverx\bradrutk$\Book1.xlsx"&gt;\\serverx\bradrutk$\Book1.xlsx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;1 file(s) copied. &lt;/P&gt;
&lt;P&gt;PS C:\Debuggers&amp;gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;You must have at least the CTP2 verison of WINRM: &lt;A href="https://connect.microsoft.com/WSMAN/Downloads"&gt;https://connect.microsoft.com/WSMAN/Downloads&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Make sure to run Configure-Wsman.ps1 and WINRM quickconfig too...&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8b2ca5b2-c4e3-4de4-8de9-8ea3f10fad96 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;A href="http://technorati.com/tags/powershell" rel=tag mce_href="http://technorati.com/tags/powershell"&gt;powershell&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3129131" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>Display warning text when someone logs onto your servers</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/09/25/display-warning-text-when-someone-logs-onto-your-servers.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/09/25/display-warning-text-when-someone-logs-onto-your-servers.aspx</id><published>2008-09-25T03:25:00Z</published><updated>2008-09-25T03:25:00Z</updated><content type="html">&lt;P&gt;This works for Windows 2003 and Windows 2008.&amp;nbsp; We use it during our reliability study to let the server owners know that they shouldn't reboot their boxes without a good reason.&amp;nbsp; You can use it for whatever you’d like. :)&lt;/P&gt;
&lt;P&gt;&lt;B&gt;The two keys to set:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;reg add "&lt;A href="file://brad-dc-01/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon"&gt;\\brad-dc-01\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeCaption /t REG_SZ /d "MSIT Reliability Study" /f&lt;/P&gt;
&lt;P&gt;reg add "&lt;A href="file://brad-dc-01/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon"&gt;\\brad-dc-01\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeText /t REG_SZ /d "This server is part of the MSIT Windows 7 Reliability Study.&amp;nbsp;&amp;nbsp; The server should not be rebooted.&amp;nbsp; If the server is experiencing a bug, please contact DCOPERATE to triage and they will escalate as needed.&amp;nbsp; If you are rebooting the server for a hotfix, private fix, or other legitimate reason, please document it properly in the shutdown tracker so that the statistics are accurate." /f&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Hop to loop it and apply it en masse:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Open CMD with your alt creds and do the following:&lt;/P&gt;
&lt;P&gt;C:\Windows\system32&amp;gt;for /f %a in (machines.txt) do (&lt;/P&gt;
&lt;P&gt;More? reg add "&lt;A href="file://%25a/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon" mce_href="file:///\\%25a\HKLM\SOFTWARE\Microsoft\Windows%20NT\CurrentVersion\Winlogon"&gt;\\%a\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeCaption /t REG_SZ /d "MSIT Reliability Study" /f&lt;/P&gt;
&lt;P&gt;More? reg add "&lt;A href="file://%25a/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon"&gt;\\%a\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeText /t REG_SZ /d "This server is part of the... (HUGE LONG STRING) ... " /f&lt;/P&gt;
&lt;P&gt;More? )&lt;/P&gt;
&lt;P&gt;&lt;B&gt;How to turn it off:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;C:\Windows\system32&amp;gt;for /f %a in (machines.txt) do (&lt;/P&gt;
&lt;P&gt;More? reg add "&lt;A href="file://%25a/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon" mce_href="file:///\\%25a\HKLM\SOFTWARE\Microsoft\Windows%20NT\CurrentVersion\Winlogon"&gt;\\%a\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeCaption /t REG_SZ /d "" /f&lt;/P&gt;
&lt;P&gt;More? reg add "&lt;A href="file://%25a/HKLM/SOFTWARE/Microsoft/Windows%20NT/CurrentVersion/Winlogon"&gt;\\%a\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;/A&gt;" /v LegalNoticeText /t REG_SZ /d "" /f&lt;/P&gt;
&lt;P&gt;More? )&lt;/P&gt;
&lt;P&gt;&lt;B&gt;The result:&lt;/B&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i149.photobucket.com/albums/s62/brad9987/Untitled.jpg" mce_src="http://i149.photobucket.com/albums/s62/brad9987/Untitled.jpg"&gt; &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Another way of doing this is to set "Interactive logon: Message text for users attempting to logon" in secpol.msc...&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5a496348-a141-46cf-8179-43ec5f3faeb6 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;A href="http://technorati.com/tags/Windows+2003" rel=tag mce_href="http://technorati.com/tags/Windows+2003"&gt;Windows 2003&lt;/A&gt;,&lt;A href="http://technorati.com/tags/Windows+2008" rel=tag mce_href="http://technorati.com/tags/Windows+2008"&gt;Windows 2008&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3128027" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Vista and Lognhorn" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /></entry><entry><title>Getting Access Denied when trying to query root\MSCluster namespace remotely against Windows 2008.</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/09/08/getting-access-denied-when-trying-to-query-root-mscluster-namespace-remotely-against-windows-2008.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/09/08/getting-access-denied-when-trying-to-query-root-mscluster-namespace-remotely-against-windows-2008.aspx</id><published>2008-09-08T21:00:56Z</published><updated>2008-09-08T21:00:56Z</updated><content type="html">&lt;p&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;Ran into a weird issue where I was getting access denied when trying to query nodes remotely in powershell.&amp;#160; The query was working fine against Windows 2003 cluster names and worked locally when ran on a Windows 2008 cluster node, it just didn’t work remotely.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Against 2k3:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;PS C:\Debuggers&amp;gt; gwmi -q &amp;quot;Select name from MSCluster_Node&amp;quot; -namespace root\mscluster -computername Server-2k3-01 | Select-Object Name &lt;/p&gt;  &lt;p&gt;Name   &lt;br /&gt;----    &lt;br /&gt;Server-2k3-01    &lt;br /&gt;Server-2k3-02&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Against 2k8:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;PS C:\Debuggers&amp;gt; gwmi -q &amp;quot;Select name from MSCluster_Node&amp;quot; -namespace root\mscluster -computername Server-2k8-01     &lt;br /&gt;Get-WmiObject : Access denied      &lt;br /&gt;At line:1 char:5      &lt;br /&gt;+ gwmi &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;#160; -q &amp;quot;Select name from MSCluster_Node&amp;quot; -namespace root\mscluster -computername Server-2k8-01&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I also tried the query outside of powershell to eliminate that form the equation with the same results and it still failed.&amp;#160; So why the difference?&amp;#160; Well looking around on the target, I noticed this event in the event log:&lt;/p&gt;  &lt;p&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application   &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft-Windows-WMI    &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 9/5/2008 10:17:52 AM    &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5605    &lt;br /&gt;Task Category: None    &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error    &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic    &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A    &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Server-2k8-01    &lt;br /&gt;Description:    &lt;br /&gt;Access to the root\mscluster namespace was denied because the namespace is marked with RequiresEncryption but the script or application attempted to connect to this namespace with an authentication level below Pkt_Privacy. Change the authentication level to Pkt_Privacy and run the script or application again.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Doing a little research I ran across this article explaining the event and what needs to happen to run the query properly:&lt;/p&gt; &lt;a title="http://technet.microsoft.com/en-us/library/cc727103.aspx" href="http://technet.microsoft.com/en-us/library/cc727103.aspx"&gt;http://technet.microsoft.com/en-us/library/cc727103.aspx&lt;/a&gt;  &lt;p&gt;In VBScript that means adding: &lt;strong&gt;authenticationLevel=pktPrivacy&lt;/strong&gt; to your query.&amp;#160; In Powershell (I’m using 2.0) you just add the authentication switch to get it to work.&amp;#160; Now the query works on downlevel as well as 2k8:&lt;/p&gt;  &lt;p&gt;PS C:\Debuggers&amp;gt; gwmi -q &amp;quot;Select name from MSCluster_Node&amp;quot; -namespace root\mscluster -computername Server-2k8-01 &lt;strong&gt;-Authentication PacketPrivacy&lt;/strong&gt; | Select-Object Name &lt;/p&gt;  &lt;p&gt;Name   &lt;br /&gt;----&lt;/p&gt;  &lt;p&gt;Server-2k8-01   &lt;br /&gt;Server-2k8-02    &lt;br /&gt;Server-2k8-03    &lt;br /&gt;Server-2k8-04    &lt;br /&gt;Server-2k8-05&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;PostScript:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can do a whole bunch of cool stuff with powershell check it out!&amp;#160; Here’s just a little query to tell me each node and ‘t state:&lt;/p&gt;  &lt;p&gt;PS C:\Debuggers&amp;gt; gwmi -q &amp;quot;Select * from MSCluster_Node&amp;quot; -namespace root\mscluster -computername TK5-CLUS-01 -Authentication PacketPrivacy | Select-Object Name,State | Format-Table -au &lt;/p&gt;  &lt;p&gt;Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; State   &lt;br /&gt;----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -----    &lt;br /&gt;tk5-clus-01&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0    &lt;br /&gt;tk5-clus-02&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0    &lt;br /&gt;tk5-clus-03&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0    &lt;br /&gt;tk5-clus-04&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1    &lt;br /&gt;tk5-clus-05&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0    &lt;br /&gt;tk5-clus-06&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3121082" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry><entry><title>Domain doesn't know about my computer account?  I vouch for my computer, you can trust me...</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/08/01/domain-doesn-t-know-about-my-computer-account-i-vouch-for-my-computer-you-can-trust-me.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/08/01/domain-doesn-t-know-about-my-computer-account-i-vouch-for-my-computer-you-can-trust-me.aspx</id><published>2008-08-01T22:31:11Z</published><updated>2008-08-01T22:31:11Z</updated><content type="html">&lt;p&gt;Had an issue where a server would not allow logon via termian services each time you attempted to logon it would return this:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img height="240" src="http://i149.photobucket.com/albums/s62/brad9987/spalsh-1.jpg" width="713" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Soooooooooo, what to do here?&amp;#160; &lt;/p&gt;  &lt;p&gt;First, we made sure the account existed in the directory since that's why it appeared to be complaining.&amp;#160; So I opened LDP and verified it existed, and that all &amp;quot;checked out&amp;quot; with being healthy (stare and compare against a good object).&lt;/p&gt;  &lt;p&gt;Second thing we did was crank up netlogon debug logging (nltest dbflag) and see what it showed.&amp;#160; It was complaining of a lot of stuff but nothing conclusive unfortunately.&amp;#160; So at that point it was time to move to event viewer.&amp;#160; The &amp;quot;nice&amp;quot; thing about this issue was that the server was accessible via the network with the same account that was failing to TS so I could do some of the investigation remotely.&lt;/p&gt;  &lt;p&gt;One event in particular struck me:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System     &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft-Windows-Security-Kerberos      &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 7/31/2008 4:11:24 PM      &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 3      &lt;br /&gt;Task Category: None      &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error      &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic      &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A      &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BRAD-SRV-01.braddom.bradforest.com      &lt;br /&gt;Description:      &lt;br /&gt;A Kerberos Error Message was received:      &lt;br /&gt; on logon session       &lt;br /&gt; Client Time:       &lt;br /&gt; Server Time: 23:11:24.0000 7/31/2008 Z      &lt;br /&gt; Error Code: 0x7&amp;#160; KDC_ERR_S_PRINCIPAL_UNKNOWN      &lt;br /&gt; Extended Error: 0xc0000035 KLIN(0)      &lt;br /&gt; Client Realm:       &lt;br /&gt; Client Name:       &lt;br /&gt; Server Realm: braddom.bradforest.COM      &lt;br /&gt; Server Name: host/BRAD-SRV-01.braddom.bradforest.com      &lt;br /&gt; Target Name: host/BRAD-SRV-01.braddom.bradforest.com@braddom.bradforest.COM      &lt;br /&gt; Error Text:       &lt;br /&gt; File: 9      &lt;br /&gt; Line: d86      &lt;br /&gt; Error Data is in record data.&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;Using err.exe I resolved the error code and found there was a collision:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;C:\localbin&amp;gt;err 0xc0000035     &lt;br /&gt;# for hex 0xc0000035 / decimal -1073741771 :      &lt;br /&gt;&amp;#160; STATUS_OBJECT_NAME_COLLISION&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ntstatus.h      &lt;br /&gt;# Object Name already exists.      &lt;br /&gt;# 1 matches found for &amp;quot;0xc0000035&amp;quot;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At this point it's time to look for a collision of &amp;quot;host/BRAD-SRV-01.braddom.bradforest.com&amp;quot; in the forest.&amp;#160; The easiest way to do it is use a nice script called &lt;a title="Link to querySPN.vbs on technet." href="http://www.microsoft.com/technet/scriptcenter/solutions/spnquery.mspx" target="_blank"&gt;querySPN.vbs&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;C:\localbin&amp;gt;querySPN.vbs HOST/BRAD-SRV-01.braddom.bradforest.com braddom.bradforest.com     &lt;br /&gt;Microsoft (R) Windows Script Host Version 5.7      &lt;br /&gt;Copyright (C) Microsoft Corporation. All rights reserved. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;CN=VL Account,CN=Users,DC=braddom,DC=bradforest,DC=com     &lt;br /&gt;Class: user      &lt;br /&gt;User Logon:&amp;#160; VLSBST      &lt;br /&gt;-- host/BRAD-SRV-01.braddom.bradforest.com &amp;lt;-----------------------------------------------------------------&amp;#160; Bingo the SPN is registered for two objects!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New" size="1"&gt;CN=BRAD-SRV-01,CN=Computers,DC=braddom,DC=bradforest,DC=com     &lt;br /&gt;Class: computer      &lt;br /&gt;Computer DNS: BRAD-SRV-01.braddom.bradforest.com      &lt;br /&gt;-- TERMSRV/BRAD-SRV-01.braddom.bradforest.com      &lt;br /&gt;-- TERMSRV/BRAD-SRV-01      &lt;br /&gt;-- HOST/BRAD-SRV-01      &lt;br /&gt;-- HOST/BRAD-SRV-01.braddom.bradforest.com &amp;lt;----------------------------------------------------------------- &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once we removed the SPN from the user account, logons began to immediately work. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;-B&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3096891" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="DS" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/DS/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /></entry><entry><title>Windows Update fails with 8000FFFF (E_UNEXPECTED)</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/07/03/windows-update-fails-with-8000ffff-e-unexpected.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/07/03/windows-update-fails-with-8000ffff-e-unexpected.aspx</id><published>2008-07-03T22:07:02Z</published><updated>2008-07-03T22:07:02Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Quick Solution:&lt;/strong&gt;&amp;#160; Check the permissions on&amp;#160; the root of C: and ensure that BUILTIN\Users have Read access.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Long Story:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;8000FFFF == E_UNEXPECTED, not very helpful…&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Had a client where windows update was continually failing with the error code 8000FFFF.&amp;#160; When looking in the Windows Update log we’d see errors like this:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;WARNING: PTError: 0x80248014      &lt;br /&gt;Handler FATAL: CBS called Error with 0x8000ffff, &lt;font color="#ff0000"&gt;&amp;lt;— Checked the CBS.log file but that didn’t give any clues. &lt;/font&gt;      &lt;br /&gt;Handler FATAL: Error source is 106.       &lt;br /&gt;DnldMgr Error 0x8000ffff occurred while downloading update; notifying dependent calls.       &lt;br /&gt;AU&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # WARNING: Download failed, error = 0x8000FFFF       &lt;br /&gt;AU&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; # WARNING: Download failed, error = 0x8000FFFF       &lt;br /&gt;AU&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WARNING: BeginInteractiveInstall failed, error = 0x8024000C       &lt;br /&gt;CltUI&amp;#160;&amp;#160; WARNING: AU directive Interactive Progress is exiting due to error 8024000C&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;And in the event viewer upon each run we’d see these events:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application      &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESENT       &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 7/2/2008 3:05:16 PM       &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 491       &lt;br /&gt;Task Category: General       &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error       &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic       &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A       &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XXXX       &lt;br /&gt;Description:       &lt;br /&gt;Catalog Database (1560) Catalog Database: An attempt to determine the minimum I/O block size for the volume &amp;quot;C:\&amp;quot; containing &amp;quot;C:\Windows\system32\CatRoot2\&amp;quot; failed with system error 5 (0x00000005): &amp;quot;&lt;font color="#ff0000"&gt;Access is denied.&lt;/font&gt; &amp;quot;.&amp;#160; The operation will fail with error -1032 (0xfffffbf8). &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application      &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft-Windows-CAPI2       &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 7/2/2008 3:05:16 PM       &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 257       &lt;br /&gt;Task Category: None       &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Error       &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic       &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A       &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XXXX       &lt;br /&gt;Description:       &lt;br /&gt;The Cryptographic Services service failed to initialize the Catalog Database. The ESENT error was: -1032.&lt;/font&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;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;After seeing this data I did a stare and compare between my root permissions and his and found that he’d modified the c:\ permissions on his system:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;His machine:&lt;/em&gt;     &lt;br /&gt;&lt;font face="Courier New"&gt;c:\temp\xcacls c:      &lt;br /&gt;C:\ NT AUTHORITY\SYSTEM:(OI)(CI)F       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Administrators:(OI)(CI)F&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Mine:      &lt;br /&gt;&lt;/em&gt;&lt;font face="Courier New"&gt;C:\&amp;gt;xcacls c:\      &lt;br /&gt;c:\ BUILTIN\Administrators:F       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Administrators:(OI)(CI)(IO)F       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\SYSTEM:F       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BUILTIN\Users:(OI)(CI)R &lt;font color="#ff0000"&gt;&amp;lt;— This is the key one missing that was causing the headache.&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)C       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NT AUTHORITY\Authenticated Users:(special access:)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FILE_APPEND_DATA&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The Cryptographic Services runs under “Network Service” which would require Users to have read access.&amp;#160; I added BUILTIN\Users with read access to C and all worked again.&lt;/p&gt;  &lt;p&gt;Hopefully this post will guide others with similar issues to the solution quickly.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&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;  &lt;p&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;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b07002f4-ca3a-4b00-aecb-e65086a5dd02" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Update" rel="tag"&gt;Windows Update&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WSUS" rel="tag"&gt;WSUS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+2008" rel="tag"&gt;Windows 2008&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3083136" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Vista and Lognhorn" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /></entry><entry><title>Staring at a blank desktop, due to Interactive missing from Users group</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/05/29/staring-at-a-blank-desktop-due-to-interactive-missing-from-users-group.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/05/29/staring-at-a-blank-desktop-due-to-interactive-missing-from-users-group.aspx</id><published>2008-05-30T01:51:36Z</published><updated>2008-05-30T01:51:36Z</updated><content type="html">&lt;p&gt;Ran into an issue this week that was strange.&amp;#160; When you TS’d to the box it would just show a blank background and nothing else.&amp;#160; If you tried to launch task manager it would just fail silently to the user (actually access denied in the debugger).&amp;#160; My user account was in the admin group and the server was completely accessible remotely with administrative perms.&amp;#160; It was just when I (or anyone) tried to logon to the server locally or through TS that it was messed up.&amp;#160; Another piece of the puzzle was that if you disabled UAC and rebooted the server the issue no longer repro’d.&amp;#160; &lt;/p&gt;  &lt;p&gt;So what was there with UAC and logging onto this server?&lt;/p&gt;  &lt;p&gt;When logging on this event was triggered:&lt;/p&gt;  &lt;p&gt;Log Name:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Application   &lt;br /&gt;Source:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Microsoft-Windows-Winlogon    &lt;br /&gt;Date:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5/27/2008 5:13:28 PM    &lt;br /&gt;Event ID:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4006    &lt;br /&gt;Task Category: None    &lt;br /&gt;Level:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Warning    &lt;br /&gt;Keywords:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Classic    &lt;br /&gt;User:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; N/A    &lt;br /&gt;Computer:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XXXX    &lt;br /&gt;Description:    &lt;br /&gt;The Windows logon process has failed to spawn a user application. Application name: . Command line parameters: C:\Windows\system32\userinit.exe.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Turns out that they removed the Account &amp;quot;NT AUTHORITY\INTERACTIVE&amp;quot; from the Users group on the machine.&lt;/strong&gt;&amp;#160; We added that account back into the users group and like magic it worked again.&amp;#160; I'm working on getting a KB filed and written for this issue, but until then at least people can find it if they notice this event in the event log.&lt;/p&gt;  &lt;p&gt;Reference:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true"&gt;http://technet2.microsoft.com/WindowsVista/en/library/00d04415-2b2f-422c-b70e-b18ff918c2811033.mspx?mfr=true&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;UAC Architecture&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;While the Windows Vista logon process externally appears to be the same as the logon process in Windows XP, the internal mechanics have greatly changed. The following illustration details how the logon process for an administrator differs from the logon process for a standard user.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Windows Vista logon process&lt;/p&gt;  &lt;p&gt;When an administrator logs on, the user is granted two access tokens: a full administrator access token and a &amp;quot;filtered&amp;quot; standard user access token. By default, when a member of the local Administrators group logs on, the administrative Windows privileges are disabled and elevated user rights are removed, resulting in the standard user access token. The standard user access token is then used to launch the desktop (Explorer.exe). &lt;/p&gt;  &lt;p&gt;&lt;em&gt;HatTip to Ben on my Team who actually figured this out after I tried to debug it for 3 days...&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c8c69cb5-333c-446b-ba6c-d399a88d773e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Vista" rel="tag"&gt;Vista&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+2008" rel="tag"&gt;Windows 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/UAC" rel="tag"&gt;UAC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Winlogon" rel="tag"&gt;Winlogon&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3063031" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Vista and Lognhorn" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx" /><category term="Windows Server 2008" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Windows+Server+2008/default.aspx" /></entry><entry><title>SearchIndexer.exe crashing with the exception code of 0xc00000fd</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/05/15/searchindexer-exe-crashing-with-the-exception-code-of-0xc00000fd.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/05/15/searchindexer-exe-crashing-with-the-exception-code-of-0xc00000fd.aspx</id><published>2008-05-15T02:16:00Z</published><updated>2008-05-15T02:16:00Z</updated><content type="html">&lt;P&gt;This is an FYI post so others on the intertubes can find the answer quickly.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;If you get this error:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Log Name: Application &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Source: Application Error &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Date: 4.11.2008 07:20:41 &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Event ID: 1000 Task Category: (100) &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Level: Error &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Keywords: Classic &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;User: N/A Computer: xxxxxxx&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Description: Faulting application SearchIndexer.exe, version 6.0.6000.16386, time stamp 0x4549b667, faulting module mssrch.dll, version 6.0.6000.16386, time stamp 0x4549bd4b, exception code 0xc00000fd, fault offset 0x00003f8f...&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Open up &lt;A href="http://blogs.technet.com/brad_rutkowski/archive/2007/04/18/what-s-crashing-on-my-vista-machine.aspx" target=_blank mce_href="http://blogs.technet.com/brad_rutkowski/archive/2007/04/18/what-s-crashing-on-my-vista-machine.aspx"&gt;Wercon&lt;/A&gt; and if it looks like this:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Product&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Microsoft Windows Search Indexer&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Problem&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Stopped working&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Date&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;4/21/2008 8:30 AM&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Status&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Report Sent&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Problem signature&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Problem Event Name:&amp;nbsp; APPCRASH&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Application Name:&amp;nbsp;&amp;nbsp;&amp;nbsp; SearchIndexer.exe&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Application Version: 6.0.6000.16386&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Application Timestamp:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4549b667&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Fault Module Name:&amp;nbsp;&amp;nbsp; mssrch.dll&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Fault Module Version:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.0.6000.16386&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Fault Module Timestamp:&amp;nbsp;&amp;nbsp;&amp;nbsp; 4549bd4b&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Exception Code:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c00000fd&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Exception Offset:&amp;nbsp;&amp;nbsp;&amp;nbsp; 00007c4c&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;OS Version:&amp;nbsp;&amp;nbsp; 6.0.6000.2.0.0.256.4&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Locale ID:&amp;nbsp;&amp;nbsp;&amp;nbsp; 1033&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Additional Information 1:&amp;nbsp; f790&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Additional Information 2:&amp;nbsp; 174183f92d554d49550d71425f227859&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Additional Information 3:&amp;nbsp; efdd&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Additional Information 4:&amp;nbsp; 9c7dda392c8f13823238fe93325e6861&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Extra information about the problem&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=1&gt;Bucket ID:&amp;nbsp;&amp;nbsp;&amp;nbsp; 349776197&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Then you might be able to resolve this by:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A) Upgrading to Vista SP1&lt;/P&gt;
&lt;P&gt;B) Install Windows Search 4 (which has now released): &lt;A href="http://www.microsoft.com/windows/products/winfamily/desktopsearch/choose/windowssearch4.mspx"&gt;http://www.microsoft.com/windows/products/winfamily/desktopsearch/choose/windowssearch4.mspx&lt;/A&gt;&lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f24643f-706b-4527-b8fd-902b1109fb01 style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; FLOAT: none; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati Tags: &lt;A href="http://technorati.com/tags/Vista" rel=tag mce_href="http://technorati.com/tags/Vista"&gt;Vista&lt;/A&gt;,&lt;A href="http://technorati.com/tags/Search" rel=tag mce_href="http://technorati.com/tags/Search"&gt;Search&lt;/A&gt;,&lt;A href="http://technorati.com/tags/SearchIndexer" rel=tag mce_href="http://technorati.com/tags/SearchIndexer"&gt;SearchIndexer&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3055339" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Vista and Lognhorn" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Vista+and+Lognhorn/default.aspx" /><category term="Patches" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Patches/default.aspx" /></entry><entry><title>Find out who pings on a subnet quick and easy</title><link rel="alternate" type="text/html" href="http://blogs.technet.com/brad_rutkowski/archive/2008/04/24/find-out-who-pings-on-a-subnet-quick-and-easy.aspx" /><id>http://blogs.technet.com/brad_rutkowski/archive/2008/04/24/find-out-who-pings-on-a-subnet-quick-and-easy.aspx</id><published>2008-04-24T02:57:00Z</published><updated>2008-04-24T02:57:00Z</updated><content type="html">&lt;P&gt;So i know there are tools out there to do this but figured some would be interested on how to do this real quick with stuff that's already in the OS.&lt;/P&gt;
&lt;P&gt;1) Turn off echos to make the out put clean (don’t forget to turn it back on when its done via “echo on”).&lt;/P&gt;
&lt;P&gt;2) The set is a sequence of numbers from start to end, by step amount.&amp;nbsp; So (1,1,5) would generate the sequence 1 2 3 4 5 and (5,-1,1) would generate the sequence (5 4 3 2 1).&amp;nbsp; So in this instance 1,1,254 would step to 254.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;3) For the ping the –n says send one request instead the default of four.&amp;nbsp; the –w sets the timeout for the echo request to 300 milliseconds, since I knew the subnet was close, so I did not need to wait the full timeout for the packet to return.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Example:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;C:\debuggers&amp;gt;echo off &lt;BR&gt;for /L %a in (1,1,254) do ping -n 1 -w 300 20.232.12.%a |findstr /i reply &lt;BR&gt;Reply from 20.232.12.1: bytes=32 time=2ms TTL=245 &lt;BR&gt;Reply from 20.232.12.7: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.8: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.9: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.11: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.12: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.14: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.15: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.27: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.78: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.81: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.82: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.83: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.84: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.85: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.87: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.88: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.89: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.107: bytes=32 time=1ms TTL=53 &lt;BR&gt;Reply from 20.232.12.108: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.110: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.111: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.113: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.115: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.116: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.117: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.118: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.119: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.120: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.231: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.234: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.235: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.237: bytes=32 time=2ms TTL=55 &lt;BR&gt;Reply from 20.232.12.238: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.239: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.242: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.244: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.245: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.246: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.247: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.248: bytes=32 time=1ms TTL=55 &lt;BR&gt;Reply from 20.232.12.249: bytes=32 time=2ms TTL=53 &lt;BR&gt;Reply from 20.232.12.250: bytes=32 time=2ms TTL=55&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Update:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;And in powershell: &amp;nbsp;1..254 | % {ping -n 1 -w 300 157.56.144.$_ | findstr /i reply }&lt;/P&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3043904" width="1" height="1"&gt;</content><author><name>Brad Rutkowski</name><uri>http://blogs.technet.com/members/Brad+Rutkowski.aspx</uri></author><category term="Business up front" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Business+up+front/default.aspx" /><category term="Ghetto scripting" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Ghetto+scripting/default.aspx" /><category term="Powershell" scheme="http://blogs.technet.com/brad_rutkowski/archive/tags/Powershell/default.aspx" /></entry></feed>