<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx</link><description>Further to my blog post on April 30th , I have updated the powershell script to output in a more usable manner and also detect more information about your exchange servers… ServerName TransportVer CASver StoreVer SERVER1 08.01.0336.000 08.01.0336.000</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx#3304535</link><pubDate>Fri, 08 Jan 2010 15:18:58 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3304535</guid><dc:creator>Greg Brown</dc:creator><description>&lt;p&gt;I think I did miss the point, and for that I apologize. &amp;nbsp;If one is looking for output that has detailed RU info like:&lt;/p&gt;
&lt;p&gt;XYZSVECA01 [ClientAccess] [Enterprise] 8.0.535.0&lt;/p&gt;
&lt;p&gt;- 04/04/2008: &amp;nbsp;Update Rollup 1 for Exchange Server 2007 Service Pack 1 (KB945684) 8.1.263.1&lt;/p&gt;
&lt;p&gt;- 08/08/2009: &amp;nbsp;Update Rollup 9 for Exchange Server 2007 Service Pack 1 (KB970162) 8.1.393.1&lt;/p&gt;
&lt;p&gt;- 05/05/2009: &amp;nbsp;Update Rollup 7 for Exchange Server 2007 Service Pack 1 (KB960384) 8.1.359.2&lt;/p&gt;
&lt;p&gt;- 05/05/2008: &amp;nbsp;Update Rollup 2 for Exchange Server 2007 Service Pack 1 (KB948016) 8.1.278.2&lt;/p&gt;
&lt;p&gt;XYZSVECA02 [ClientAccess] [Enterprise] 8.0.535.0&lt;/p&gt;
&lt;p&gt;- 04/04/2008: &amp;nbsp;Update Rollup 1 for Exchange Server 2007 Service Pack 1 (KB945684) 8.1.263.1&lt;/p&gt;
&lt;p&gt;- 05/05/2009: &amp;nbsp;Update Rollup 7 for Exchange Server 2007 Service Pack 1 (KB960384) 8.1.359.2&lt;/p&gt;
&lt;p&gt;- 05/05/2008: &amp;nbsp;Update Rollup 2 for Exchange Server 2007 Service Pack 1 (KB948016) 8.1.278.2&lt;/p&gt;
&lt;p&gt;...then I believe this is the detail you were looking for. Notice you get the server name, role, build number, date RU applied, RU version and KB number. I have to give credit to Paul Flaherty at blogs.flaphead.com and Jeff Guillet at www.expta.com for compiling the script...&lt;/p&gt;
&lt;p&gt;It works flawlessly in my organization. It is called get-exchangeserverplus.ps1. &amp;nbsp;I will post it here with your permission.&lt;/p&gt;
&lt;p&gt;Neil, I do commend you for a fantastically brilliant script. As with any script, there are 100 ways to do things. &amp;nbsp;So do not think I think badly of your efforts. &amp;nbsp;Quite the contrary sir!&lt;/p&gt;
&lt;p&gt;For the novice who reads this, I was never able to script well in VB. &amp;nbsp;I just didn't ever have the time to invest in learning it. PowerShell however is easy to learn, and playing with it has proven to be fun. I consider myself a newbie to PowerShell, and simply using the cmdlets has been cool, as each one gives you results. &amp;nbsp;Writing an actual script was a huge event for me!! &lt;/p&gt;
&lt;p&gt;Keep up the good work and I look forward to more software packages becoming PowerShell ready, especially SharePoint and Citrix.&lt;/p&gt;
&lt;p&gt;gb&lt;/p&gt;
&lt;p&gt;Austin, TX USA &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3304535" width="1" height="1"&gt;</description></item><item><title>re: Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx#3304458</link><pubDate>Fri, 08 Jan 2010 08:53:07 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3304458</guid><dc:creator>msukucc</dc:creator><description>&lt;p&gt;I suspect you missed the point of the script, but its nice to see you learning and enjoying Exchange Powershell!.&lt;/p&gt;
&lt;p&gt;The script was put together to determine exactly which build of each component was running on each server. &amp;nbsp;What you will find is that although a servicepack will iterate the AdminDisplayVersion an RU, IU or QFE patch will not. &amp;nbsp;More importantly sometimes an IU will only update one component such as OWA or STORE. &amp;nbsp;So if you were deploying an RU or IU to a large global environment it becomes a challenge to quickly validate which servers have it succesfully installed and which dont. &amp;nbsp;Most organisations have a form of deployment tracking, however I liked the ability to be able to validate the patch deployments throughout an Exchange organisation totally independently of any other system.&lt;/p&gt;
&lt;p&gt;Its a great example of how flexible powershell is though, if all you need to know is which major version and SP your servers are running get-exchangeserver does a great job. &amp;nbsp;Is just a shame it doesent return RU update details as well...&lt;/p&gt;
&lt;p&gt;Neil.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3304458" width="1" height="1"&gt;</description></item><item><title>re: Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx#3304318</link><pubDate>Thu, 07 Jan 2010 22:12:52 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3304318</guid><dc:creator>Greg Brown USA</dc:creator><description>&lt;p&gt;I have to admit, you sure went all out on this script! &amp;nbsp;It seems to me that it was an awful lot of work though, without a lot of gain. &amp;nbsp;One can gain all relevant build information using a one-liner. &amp;nbsp;Here is the output one can get (per exchange server) from a simple line of code:&lt;/p&gt;
&lt;p&gt;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: XYZSVEHT12&lt;/p&gt;
&lt;p&gt;ServerRole &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: HubTransport&lt;/p&gt;
&lt;p&gt;Edition &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : Enterprise&lt;/p&gt;
&lt;p&gt;AdminDisplayVersion : Version 8.1 (Build 240.6)&lt;/p&gt;
&lt;p&gt;ExchangeVersion &amp;nbsp; &amp;nbsp; : 0.1 (8.0.535.0)&lt;/p&gt;
&lt;p&gt;Note the edition is Enterprise, validated by the Exchange Version field-8.0.535.0. That was Exch 2007 Enterprise RTM. &amp;nbsp;The admin display version informs you that you have SP1 applied, hence 8.1., as well as the specific build. &amp;nbsp;SP2 is version 8.2., and so forth...&lt;/p&gt;
&lt;p&gt;Make sure you have adequate permissions, and run the following line of PowerShell code from an admin workstation. &amp;nbsp;If you have a cluster, as I do, it will report on the active nodes. It will then cycle through all Exchange Servers in your organization, if your permission level allows it:&lt;/p&gt;
&lt;p&gt;Get-ExchangeServer | fl name,serverrole,edition,admindisplayversion,exchangeversion&lt;/p&gt;
&lt;p&gt;You can also run the code below to get a count of all your Exchange boxes. &lt;/p&gt;
&lt;p&gt;(get-exchangeserver).count&lt;/p&gt;
&lt;p&gt;So, save yourself trouble by running as little code as possible! &amp;nbsp;That's my motto and I'm stickin' to it.&lt;/p&gt;
&lt;p&gt;gb&lt;/p&gt;
&lt;p&gt;Austin TX, USA&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3304318" width="1" height="1"&gt;</description></item><item><title>re: Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx#3254872</link><pubDate>Mon, 15 Jun 2009 13:18:21 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3254872</guid><dc:creator>msukucc</dc:creator><description>&lt;p&gt;Looks like the parenthesis are in the wrong place, try this...&lt;/p&gt;
&lt;p&gt;if (Test-Path &amp;quot;\\$ipaddress\c$\Program Files\Microsoft Office\Office12\WINWORD.EXE&amp;quot;)&lt;/p&gt;
&lt;p&gt;Neil.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3254872" width="1" height="1"&gt;</description></item><item><title>re: Updated : Exchange version powershell script</title><link>http://blogs.technet.com/b/msukucc/archive/2009/05/07/updated-exchange-version-powershell-script.aspx#3250765</link><pubDate>Fri, 05 Jun 2009 15:07:42 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3250765</guid><dc:creator>DLang</dc:creator><description>&lt;p&gt;Hey, I am trying to adapt your original code to check for a specified file on a network share. So, far, i cannot get it to set the property correctly for the host, therefore, it always comes back else, mind taking a look at it?(See Below)&lt;/p&gt;
&lt;p&gt;PS:after the function is succesful, can i pipe $storever to Out-File?&lt;/p&gt;
&lt;p&gt;#Attempts to get a list of computer names to test&lt;/p&gt;
&lt;p&gt;$exservers = gc pclist.txt&lt;/p&gt;
&lt;p&gt;#Beginning of the function loop&lt;/p&gt;
&lt;p&gt;foreach ($server in $exservers)&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;write-host -f green &amp;quot;Examining Store on $server...&amp;quot; -nonewline&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;# To get around Cluster share scoping, we need to query via IP...&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;$ping = new-object System.Net.NetworkInformation.Ping&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;$reply = $ping.send($server) &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;$ipaddress = $reply.address &lt;/p&gt;
&lt;p&gt; #I think this is the problem, it does not resolve this path correctly&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;if (Test-Path &amp;quot;\\$ipaddress\c$\Program Files\Microsoft Office\Office12\WINWORD.EXE)&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$storever = Get-FileVersionInfo(&amp;quot;\\$ipaddress\c$\Program Files\Microsoft Office\Office12\WINWORD.EXE&amp;quot;).Fileversion&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;write-host -f yellow $storever&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;else&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;write-host -f red &amp;quot;Unable to Find Store.exe&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3250765" width="1" height="1"&gt;</description></item></channel></rss>