<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>musc@&#62; $daniele.rant &#124; Out-Blog &#187; MOM2005</title>
	<atom:link href="http://www.muscetta.com/category/mom2005/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muscetta.com</link>
	<description>Superior Dedication - If you try hard enough, you might even get it to work.</description>
	<lastBuildDate>Sun, 18 Jul 2010 15:22:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Early Adoptions, Health Checks and New Year Rants.</title>
		<link>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/</link>
		<comments>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 15:10:26 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[HC]]></category>
		<category><![CDATA[Health Check]]></category>
		<category><![CDATA[HealthCheck]]></category>
		<category><![CDATA[Premier]]></category>
		<category><![CDATA[Premier Field Engineer]]></category>
		<category><![CDATA[RAP]]></category>
		<category><![CDATA[Risk Assessment Program]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/?p=390</guid>
		<description><![CDATA[Two days ago I read the following Tweet by Hugh MacLeod: &#034;[...] Early Adopter Problem: How to differentiate from the bandwagon, once the bandwagon starts moving faster than you are [...]&#034; That makes me think of early adoption of a few technologies I have been working with, and how the community around those evolved. For [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/photos/dani3l3/3150411409/"><img src="http://farm4.static.flickr.com/3258/3150411409_8ce3a8ea75.jpg" alt="Generations" width="500" height="333" /></a></p>
<p>Two days ago I read <a href="http://twitter.com/gapingvoid/status/1082816395">the following Tweet by Hugh MacLeod</a>:</p>
<blockquote><p>&#034;[...] Early Adopter Problem: How to differentiate from the bandwagon, once the bandwagon starts moving faster than you are [...]&#034;</p></blockquote>
<p>That makes me think of early adoption of a few technologies I have been working with, and how the community around those evolved. For example:</p>
<p><strong>Operations Manager</strong>&#8230; early adoption meant that I have been working with it since the beta, had posted <a href="http://www.muscetta.com/2007/05/10/create-a-script-based-unit-monitor-in-opsmgr2007-via-the-gui/">one of the earliest posts about how to use a script in a Unit Monitor back in may 2007</a> (the product was released in April 2007 and there was NO documentation back then, so we had to really try to figure out everything&#8230;), but <a href="http://contoso.se/blog/?p=305">someone seems to think it is worth repeating the very same lesson in November 2008</a>, with not a lot of changes, as <a href="http://twitter.com/dani3l3/status/1030704645">I wrote here</a>. I don&#039;t mean being rude to Anders&#8230; repeating things will surely help the late adopters finding the information they need, of course.</p>
<p>Also, I started playing early with <strong>Powershell</strong>. <a href="http://www.muscetta.com/2006/11/24/out-blog/">I posted my first (and only) cmdlet</a> back in 2006. It was not a lot more than a test for myself to learn how to write one, but that&#039;s just to say that I started playing early with it. I have been using it <a href="http://www.muscetta.com/2007/05/30/death-by-right-click-delete-nope-powershell/">to automate tasks</a> for example.</p>
<p>Going back to the quote above, everyone gets on the bandwagon posting <a href="http://www.systemcenterforum.org/news/advanced-example-using-powershell-and-the-opsmgr-sdk-creating-and-updating-groups/">examples and articles</a>. I had been asked a few times about writing articles on OpsMgr and Powershell usage (for example by <a href="http://www.powershell.it">www.powershell.it</a>) but I declined, as I was too busy using this knowledge to do stuff for work (where “work” is defined as in “work that pays your mortgage”), rather than seeking personal prestige through articles and blogs. Anyway, that kind of articles are appearing now all over the Internet and the blogosphere now. The above examples made me think of early adoption, and the bandwagon that follows later on… but even as an early adopter, I was never very noisy or visible.</p>
<p>Now, going back to what I do for work, (which <a href="http://blogs.msdn.com/dmuscett/archive/2005/09/02/459914.aspx">I mentioned here</a> and <a href="http://www.muscetta.com/2007/12/27/simply-works/">here in the past</a>), I work in the <a href="https://www.microsoft.com/emea/careers/technicalJobs/PremierFieldEngineer.mspx">Premier Field Engineering</a> organization of Microsoft Services, which provides Premier services to customers. <a href="http://www.microsoft.com/services/microsoftservices/srv_premier.mspx">Microsoft Premier customer have a wide range of Premier agreement features and components</a> that they can use to support their people, improve their processes, and improve the productive use of the Microsoft technology they have purchased. Some of these services we provide are known to the world as “<a href="http://www.google.com/search?hl=en&amp;q=health+check+site%3Amicrosoft.com&amp;btnG=Search">Health Checks</a>”, some as “<a href="http://www.google.com/search?hl=en&amp;q=risk+assessment+program+site%3Amicrosoft.com&amp;btnG=Search">Risk Assessment Programs</a>” (or, shortly, RAPs). These are basically services where one of our technology experts goes on the customer site and there he uses a custom, private Microsoft tool to gather a huge amount of data from the product we mean to look at (be it SQL, Exchange, AD or anything else….). The Health Check or RAP tool collects the data and outputs a draft of the report that will be delivered to the customer later on, with all the right sections and chapters. This is done so that every report of the same kind will look consistent, even if the engagement is performed by a different engineer in a different part of the world. The engineer will of course analyze the collected data and write recommendations about what is configured properly and/or about what could or should be changed and/or improved in the implementation to make it adhere to Best Practices. To make sure only the right people actually go onsite to do this job we have a strict internal accreditation process that must be followed; only accredited resources that know the product well enough and know exactly how to interpret the data that the tool collects are allowed to use it and to deliver the engagement, and present/write the findings to the customer.</p>
<p>So why am I telling you this here, and how have I been using my early knowledge of OpsMgr and Powershell for ?</p>
<p>I have used that to write the Operations Manager Health Check, of course!</p>
<p>We had a <a href="http://download.microsoft.com/download/f/9/7/f974f0df-66fd-47e9-a1ac-c6fdbe3c723a/Operations_Manager_Server_Health_Check.pdf">MOM 2005 Health Check </a>already, but since the technology has changed so much, from MOM to OpsMgr, we had to write a completely new tool. Jeff  (the original MOM2005 author, who does not have a blog that I can link to) and me are the main coders of this tool… and the tool itself is A POWERSHELL script. A longish one, of course (7000 lines, more or less), but nothing more than a Powershell script, at the end of the day. There are a few more colleagues that helped shape the features and tested the tool, including <a href="http://blogs.technet.com/kevinholman/">Kevin Holman</a>. Some of the <a href="http://blogs.technet.com/kevinholman/archive/2007/10/18/useful-operations-manager-2007-sql-queries.aspx">database queries on Kevin’s blog</a> are in fact what we use to extract some of the data (beware that some of those queries have recently been updated, in case you saved them and using your local copy!), while some other information are using internal and/or custom queries. Some other times we use OpsMgr cmdlets or go to the SDK service, but a lot of times we query the database directly (we really should use the SDK all the times, but for certain stuff direct database access is way faster). It took most of the past year to write it, test it, troubleshoot it, fix it, and deliver the first engagements as “beta” to some customers to help iron out the process&#8230; and now the delivery is available! If a year seems like a long time, you have to consider this is all work that gets done next to what we all have to normally do with customers, not replacing it (i.e. I am not free to sit on my butt all day and just write the tool&#8230; <a href="http://download.microsoft.com/download/e/9/d/e9df53f8-3069-4fe4-bdbd-0d7abd86488a/PremFieldEnginr_161107b.pdf">I still have to deliver services to customers day in day out, in the meantime</a>).</p>
<p>Occasionally, during this past calendar year, that is approaching its end, I have been willing and have found some extra time to disclose some bits and pieces, techniques and prototypes of how to use Powershell and OpsMgr together, <a href="http://www.muscetta.com/2008/11/29/programmatically-check-for-management-pack-updates-in-opsmgr-2007-r2/">such as innovative ways to use Powershell in OpsMgr against beta features</a>, but in general most of my early adopter’s investment went into the private tool for this engagement, and that is one of the reasons I couldn’t blog or write much about it, being it Microsoft Intellectual Property.</p>
<p>But it is also true that <a href="http://twitter.com/dani3l3/status/997620250">I did not care to write other stuff when I considered it too easy or it could be found in the documentation</a>. I like writing of ideas, thoughts, rants OR things that I discover and that are not well documented at the time I study them… so when I figure out things I might like leaving a trail for some to follow. But I am not here to spoon feed people like some in the bandwagon are doing. Now the bandwagon is busy blogging and writing continuously about some aspect of OpsMgr (known or unknown, documented or not), and the answer to <a href="http://twitter.com/gapingvoid/status/1082816395">the original question of Hugh</a> is, in my opinion, that it does not really matter what the bandwagon is doing right now. I was never here to do the same thing. I think <strong>that</strong> is my differentiator. I am not saying that what a bunch of colleagues and enthusiasts is doing is not useful: blogging and writing about various things they experiment with is interesting and it will be useful to people. But blogs are useful until a certain limit. I think that blogs are best suited for conversations and thoughts (rather than for &#034;howto&#039;s&#034;), and what I would love to see instead is: less marketing hype when new versions are announced and more real, official documentation.</p>
<p>But I think I should stop caring about what the bandwagon is doing, because that&#039;s just another ego trip at the end of the day. What I should more sensibly do, would be listening to <a href="http://freewillastrology.com/horoscopes/pisces.html">my horoscope</a> instead:</p>
<blockquote><p>[…] &#034;How do you slay the dragon?&#034; journalist Bill Moyers asked mythologist Joseph Campbell in an interview. By &#034;dragon,&#034; he was referring to the dangerous beast that symbolizes the most unripe and uncontrollable part of each of our lives. In reply to Moyers, Campbell didn&#039;t suggest that you become a master warrior, nor did he recommend that you cultivate high levels of sleek, savage anger. &#034;Follow your bliss,&#034; he said simply. Personally, I don&#039;t know if that&#039;s enough to slay the dragon &#8212; I&#039;m inclined to believe that you also have to take some defensive measures &#8212; but it&#039;s definitely worth an extended experiment. Would you consider trying that in 2009? […]</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2008/12/30/early-adoptions-health-checks-and-new-year-rants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simply Works</title>
		<link>http://www.muscetta.com/2007/12/27/simply-works/</link>
		<comments>http://www.muscetta.com/2007/12/27/simply-works/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 18:24:27 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Energy]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[lifestream]]></category>
		<category><![CDATA[Risk]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/12/27/simply-works/</guid>
		<description><![CDATA[Simply Works, uploaded by Daniele Muscetta on Flickr. I don&#039;t know about other people, but I do get a lot to think when the end of the year approaches: all that I&#039;ve done, what I have not yet done, what I would like to do, and so on&#8230; And it is a period when memories [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p class="flickr-frame"><a title="photo sharing" href="http://www.flickr.com/photos/dani3l3/2141526220/"><img src="http://farm3.static.flickr.com/2222/2141526220_7754fa3134.jpg" alt="Simply Works" class="flickr-photo" /></a></p>
<p><span class="flickr-caption"><a href="http://www.flickr.com/photos/dani3l3/2141526220/">Simply Works</a>, uploaded by <a href="http://www.flickr.com/people/dani3l3/">Daniele Muscetta</a> on Flickr.</span></p>
<p class="flickr-yourcomment">I don&#039;t know about other people, but I do get a lot to think when the end of the year approaches: all that I&#039;ve done, what I have not yet done, what I would like to do, and so on&#8230;</p>
<p>And it is a period when memories surface.</p>
<p>I found the two old CD-ROMs you can see in the picture. And those are memories.<br />
missioncritical software was the company that invented a lot of stuff that became Microsoft&#039;s products: for example <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6f86937b-533a-466d-a8e8-aff85ad3d212&amp;displaylang=en">ADMT</a> and <a href="http://www.microsoft.com/systemcenter/opsmgr/default.mspx">Operations Manager</a>.</p>
<p>The black CD contains SeNTry, the &#034;enterprise event manager&#034;, what later became Operations Manager.<br />
On the back of the CD, the company motto at the time: &#034;software that works simply and simply works&#034;.<br />
So true. I might digress on this concept, but I won&#039;t do that right now.</p>
<p>I have already explained in my other blog <a href="http://blogs.msdn.com/dmuscett/archive/2005/09/02/459914.aspx">what I do for work</a>. Well, that was a couple of years ago anyway. Several things have changed, and we are moving towards offering services that are more measurable and professional. So, since it happens that in a certain job you need to be an &#034;expert&#034; and &#034;specialize&#034; in order to be &#034;seen&#034; or &#034;noticed&#034;.<br />
You know <a href="http://www.muscetta.com/2006/05/29/specialization-is-bullshit/">I don&#039;t really believe in specialization</a>. I have written it <a href="http://www.muscetta.com/2006/11/05/more-on-specialization/">all over the place</a>. But you need to make other people happy as well and let them believe what they want, so when you &#034;specialize&#034; they are happier. No, really, it might make a difference in your carrer <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In this regard, I did also mention my <a href="http://blogs.msdn.com/dmuscett/archive/2004/11/18/263280.aspx">&#034;meeting again&#034; with Operations Manager</a>.<br />
That&#039;s where Operations manager helped me: it let me &#034;specialize&#034; in systems and applications management&#8230; a field where you need to know a bit of everything anyway: infrastructure, security, logging, scripting, databases, and so on&#8230; <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
This way, everyone wins.</p>
<p>Don&#039;t misunderstand me, this does not mean I want to know everything. One cannot possibly know everything, and the more I learn the more I believe I know nothing at all, to be honest. I don&#039;t know everything, <a href="http://thedailywtf.com/Articles/Classic-WTF-Lock-In-Key-Security.aspx">so please don&#039;t ask me everything &#8211; I work with mainframes</a> <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
While that can be a great excuse to avoid neighbours and relatives annoyances with their PCs though, on the serious side I still believe that any intelligent individual cannot be locked into doing a narrow thing and know only that one bit just because it is common thought that you have to act that way.</p>
<p>If I would <a href="http://twitter.com/gapingvoid/statuses/535752142">stop where I have to stop</a> I would be the standard &#034;IT Pro&#034;. I would be fine, sure, but I would get bored soon. I would not learn anything. <a href="http://www.muscetta.com/2007/09/11/itpro-vs-dev-there-is-no-such-a-thing/">But I don&#039;t feel I am the standard &#034;IT Pro&#034;</a>. In fact, funnily enough, <a href="http://www.google.com/search?hl=en&amp;q=link:www.muscetta.com&amp;btnG=Search">on some other blogs out there I have been referenced as a &#034;Dev&#034;</a> (find it on your own, look at their blogrolls <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). But I am not a Dev either then&#8230; I don&#039;t write code for work. I would love to, but I rarely actually do, other than some scripts. Anyway, I tend to escape the definition of the usual &#034;expert&#034; on something&#8230; mostly because I want to escape it. I don&#039;t see myself represented by those generalization.</p>
<p>As <a href="http://haacked.com/archive/2007/12/21/faceoff-haack-vs-hanselman-it-gets-real.aspx">Phil puts it</a>, when asked &#034;Are software developers &#8211; engineers or artists?&#034;:</p>
<blockquote><p>&#034;[...] Don’t take this as a copout, but a little of both. I see it more as craftsmanship. Engineering relies on a lot of science. Much of it is demonstrably empirical and constrained by the laws of physics. Software is less constrained by physics as it is by the limits of the mind. [...]&#034;</p></blockquote>
<p>Craftmanship. Not science.<br />
And stop calling me an &#034;engineer&#034;. I am not an engineer. I was even crap in math, in school!</p>
<p>Anyway, what does this all mean? In practical terms, it means that in the end, wether I want it or not, I do get considered an &#034;expert&#034; on MOM and OpsMgr&#8230; and that I will mostly work on those products for the next year too. But that is not bad, because, as I said, working on that product means working on many more things too. Also, I can point to different audiences: those believing in &#034;experts&#034; and those going beyond schemes. It also means that I will have to continue teaching a couple of scripting classes (both VBScript and PowerShell) that nobody else seems to be willing to do (because they are all *expert* in something narrow), and that I will still be hacking together my other stuff (my facebook apps, my wordpress theme and plugins, my server, etc) and even continue to have strong opinions in those other fields that I find interesting and where I am not considered an *expert* <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Well, I suppose I&#039;ve been ranting enough for today&#8230;and for this year <img src='http://www.muscetta.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
I really want to wish everybody again a great beginning of 2008!!! What are you going to be busy with, in 2008 ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/12/27/simply-works/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MOM2005 vs. OpsMgr2007 and ITIL ?</title>
		<link>http://www.muscetta.com/2007/04/27/mom2005-vs-opsmgr2007-and-itil/</link>
		<comments>http://www.muscetta.com/2007/04/27/mom2005-vs-opsmgr2007-and-itil/#comments</comments>
		<pubDate>Fri, 27 Apr 2007 13:05:30 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpsMgr2007]]></category>
		<category><![CDATA[System Center Operations Manager 2007]]></category>
		<category><![CDATA[Choice]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[ITIL]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/04/27/mom2005-vs-opsmgr2007-and-itil/</guid>
		<description><![CDATA[&#160; MOM has always been a great tool out of the box because it sort of FORCED you to implement an Incident Management Process to deal with Alerts, as described here:http://ianblythmanagement.wordpress.com/2006/07/27/mom-2005-and-itil-part-1/In fact, Alerts had to be actually set to &#034;Resolved&#034;, and this had to be done manually. I have now been wondering for a while: [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>MOM has always been a great tool out of the box because it sort of FORCED you to implement an Incident Management Process to deal with Alerts, as described here:<br /><a href="http://ianblythmanagement.wordpress.com/2006/07/27/mom-2005-and-itil-part-1/">http://ianblythmanagement.wordpress.com/2006/07/27/mom-2005-and-itil-part-1/</a><br />In fact, Alerts had to be actually set to &#034;Resolved&#034;, and this had to be done manually. </p>
<p>I have now been wondering for a while: &#034;How is OpsMgr2007 going to affect this?&#034; I refer to the fact that now OpsMgr2007 does something customers have been asking for a while: it can auto-resolve alerts as soon as the incident/issue is fixed, by monitoring the state of the component rather than waiting for people to resolve it!  </p>
<p>Practically, people were often the bottleneck, due to a missing Incident Management Process. MOM has tried for nearly 8 years to push them to implement one&#8230; and I feel that it finally gave up even trying. </p>
<p>All the other stuff described in the other <a href="http://ianblythmanagement.wordpress.com/2006/07/27/mom-2005-and-itil-part-2/">two</a> <a href="http://ianblythmanagement.wordpress.com/2006/07/27/mom-2005-and-itil-part-3/">articles</a> of Ian&#039;serie do still apply.  </p>
<p>For Capacity Management nothing substantially changes.<br />Availability Management is greatly improved, with the generic &#034;availability report&#034; and the state roll-up feature provided by the new Health Service and the new ways object are discovered and instantiated and the way their health models work.  </p>
<p>Problem Management can also still be done, and Alert tuning will be still required (but it should be slightly easier now, with the improved &#034;overrides&#034; kind of thing).<br />Service Level Management can also be done &#8211; this will actually be done much better: if the system <strong>knows</strong> you&#039;ve fixed the incident and it closes the alert for you, SLA calculations will be done on the REAL down/up-times of services, not on people keeping the Alerts open forever like I have seen in many places.<br />This means it will be done better, WITHOUT relying on people.  </p>
<p>All in all there are substantial changes in OpsMgr2007, most of them are for the good&#8230;. but still, I think, I will be missing the fact that people have to actively look at their consoles and manage Alerts the way they were asked to do before. I will miss all the talks I used to do about &#034;you HAVE to manage your Alerts/Incidents&#034;, now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/04/27/mom2005-vs-opsmgr2007-and-itil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MOM 2005 Alerts to RSS feed</title>
		<link>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/</link>
		<comments>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 18:07:00 +0000</pubDate>
		<dc:creator>Daniele Muscetta</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Cross Platform]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[MOM2005]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Cross Post]]></category>
		<category><![CDATA[dotNet]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Interop]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[WebSite]]></category>

		<guid isPermaLink="false">http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/</guid>
		<description><![CDATA[I am an RSS Addict, you know that.So I wanted an RSS Feed to show MOM Alerts. I have been thinking of it for a while, last year (or was it the year before?). It seemed like a logical thing to me: alerts are created (and can be resolved &#8211; that is, expire), generally get [...]<hr /><a href="http://www.muscetta.com/about-me/">About Daniele Muscetta</a><hr />]]></description>
			<content:encoded><![CDATA[<p>I am an RSS Addict, you know that.So I wanted an RSS Feed to show MOM Alerts. I have been thinking of it for a while, last year (or was it the year before?).<br />
It seemed like a logical thing to me: alerts are created (and can be resolved &#8211; that is, expire), generally get sorted by the date and the time when they have been created, the look pretty much like a list. Also, many people like to receive mail notification when new alerts are generated.<br />
So, if the alert can be sent to you (push), you could also get to it(pull).<br />
Pretty much the same deal with receiving a mail or reading a newsgroup, or syndicating a feed.</p>
<p>At the time I looked around but it seemed like no one had something like this already done.<br />
So I wrote a very simple RSS feed generator for MOM Alerts.<br />
I did it quite an amount of time ago, just as an exercise.<br />
Then, after a while, I figured out that the <a href="http://www.microsoft.com/technet/mom/2005/downloads/tools/reskit.mspx">MOM 2005 Resource Kit</a> had been updated to include such a utility!</p>
<p>Wow, I thought, they finally added what I have been thinking for a while. Might it be because I mentioned it on an private Mailing list ? Maybe. Maybe not. Who cares. Of course, if it is included in the resource kit it must be way cooler than the one I made, I though.<br />
I really thought something along these lines, but never actually had the time to try it out.<br />
I think I just sort of assumed it must have been cooler than the one I made, since it was part of an official package, while I am not a developer. So I basically forgot about the one I wrote, dismissing it as being crap without looking too much into it anymore.<br />
Until today.<br />
Today I actually tried to use the alert to RSS tool included in the resource kit, because a customer asked if there was any other way to get notified, other than receiving notification or using the console (or the console notifier).<br />
So I looked at the resource kit&#039;s Alert-to-RSS Utility.<br />
My experience with it:<br />
1) it is provided in source code form &#8211; which is ok if it was ALSO provided as source. Instead it is ONLY provided as source, and most admins don&#039;t have Visual Studio installed or don&#039;t know how to compile from the command line;<br />
2) Even when they wanted to compile it, it includes a bug which makes it impossible to compile &#8211; solution <a href="http://groups.google.it/group/microsoft.public.mom/browse_thread/thread/79257d4472479fe0/2c21222bb33cb163?lnk=st&#038;q=MOM+Alert+RSS&#038;rnum=1#2c21222bb33cb163">in this newsgroup discussion</a>;<br />
3) if you don&#039;t want to mess about with code since you are using a resource Kit tool (as opposed to something present in the SDK) you can even get it already compiled by someone from somewhere on the net, but that choice is about trust.</p>
<p>Anyway, one way or another, after it is finally set up&#8230;. surprise surprise!!!<br />
It does NOT show a LIST of alerts (as I was expecting).<br />
It shows a summary of how many alerts you have. basically it is an RSS feed made of a single item, and this single item tells you how many alerts you have. What is one supposed to do with such a SUMMARY? IMHO, it is useless the way it is. It is even worse than one of those feed that only contains the excerpt of the article, rather than the full article.<br />
Knowing that I have 7 critical errors and 5 warning without actually knowing ANYTHING of them is pointless.<br />
It might be useful for a manager, but not for a sysadmin, at least.</p>
<p>So I thought my version, even if coded crap, might be useful to someone because it gives you a list of alerts (those that are not resolved) and each one of them tells you the description of the alert, the machine tat generated it, and includes links to the actual alert in the web console, so you can click, go there, and start troubleshooting from within your aggregator!<br />
My code does this. Anyway, since I am a crap coder, since I wrote it in only fifteen minutes more than a year ago, and since I don&#039;t have time to fix it and make it nicer&#8230; it has several issues, and could be improved in a million ways, in particular for the following aspects:</p>
<ol>
<li>is currently depends on the SDK Database views &#8211; it could use the MOM Server API&#039;s or the webservice instead;</li>
<li>it uses SQL Security to connect to the DB &#8211; by default MOM does not allow this &#8211; it is suggested for the SQL instance hosting &#034;OnePoint&#034; to only use Windows Integrated Authentication.. so to make my code work you have to switch back to Mixed mode, and create a login in SQL that has permission to read the database. This is due to the fact that I&#039;ve coded this in five minutes and I don&#039;t know how to use delegation &#8211; if I was able to use delegation, I would&#8230; so that the end user accessing IIS would be the one connecting to the DB. If anybody wants to teach me how to do this, I will be most grateful.</li>
<li>it could accept parameters as URL variables, so to filter out only events for a specific machine, or a specific resolution state, etc etc</li>
<li>At present it uses <a href="http://rss-net.sourceforge.net/">RSS.Net</a> to generate the feed. It could made independent from it, but I don&#039;t really see why, and I quite like that library.</li>
</ol>
<p>The code is just an ASP.Net page and its codebehind, no need to compile, but of course you need to change a couple of lines to match your webconsole address.<br />
Also, you need to get <a href="http://rss-net.sourceforge.net/">RSS.NET</a> and copy its library (RSS.Net.dll) in the /bin subfolder of the website directory where you place the RSSFeed generator page. I see that I wrote this with version 0.86, but any version should do, really.</p>
<p>Here is what it will look like:</p>
<p><a title="Photo Sharing" href="http://www.flickr.com/photo_zoom.gne?id=430556283&#038;size=o"><img width="500" height="375" alt="AlertToRSS" src="http://farm1.static.flickr.com/173/430556283_6eb615a080.jpg" /></a></p>
<p>And here&#039;s the code of the page (two files):</p>
<p><strong>Default.aspx</strong></p>
<p>&lt;%@ Page Language=&#034;C#&#034; AutoEventWireup=&#034;true&#034; CodeFile=&#034;Default.aspx.cs&#034; Inherits=&#034;_Default&#034; %&gt;</p>
<p><strong>Default.aspx.cs</strong></p>
<p>using System;<br />
using System.Data;<br />
using System.Data.SqlClient;<br />
using System.Configuration;<br />
using System.Web;<br />
using Rss;</p>
<p>public partial class _Default : System.Web.UI.Page<br />
{<br />
protected void Page_Load(object sender, EventArgs e)<br />
{<br />
string webconsoleaddress = &#034;<a href="http://192.168.0.222:1272/AlertDetail.aspx?v=a&#038;sid=">http://192.168.0.222:1272/AlertDetail.aspx?v=a&#038;sid=&#034;</a> // must change to match your address</p>
<p>// Inizializza il Feed<br />
RssChannel rssChannel = new RssChannel();<br />
rssChannel.Title = &#034;MOM Alerts&#034;<br />
rssChannel.PubDate = DateTime.Now;<br />
rssChannel.Link = new Uri(&#034;<a href="http://192.168.0.222:1272/rss/">http://192.168.0.222:1272/rss/&#034;);</a> // must change to match your address<br />
rssChannel.LastBuildDate = DateTime.Now;<br />
rssChannel.Description = &#034;Contains the latest Alerts&#034;</p>
<p>// query &#8211; you might want to change the severity<br />
string mySelectQuery = &#034;SELECT ComputerName, Name, Severity, TimeRaised, RepeatCount, GUID FROM dbo.SDKAlertView WHERE Severity &gt; 10 AND ResolutionState &lt; 255&#034;</p>
<p>// SQL Connection – must change SQL server, user name and password<br />
SqlConnection conn = new SqlConnection(&#034;Data Source=192.168.0.222;Initial Catalog=OnePoint;User ID=rss;Password=rss&#034;);<br />
SqlDataReader rdr = null;</p>
<p>try<br />
{<br />
conn.Open();<br />
SqlCommand cmd = new SqlCommand(mySelectQuery, conn);<br />
rdr = cmd.ExecuteReader();<br />
while (rdr.Read())<br />
{<br />
RssItem rssItem = new RssItem();<br />
string titleField = rdr[1].ToString();<br />
rssItem.Title = titleField;<br />
string url = webconsoleaddress + rdr[5];<br />
rssItem.Link = new Uri(url.ToString());<br />
string description = &#034;&lt;![CDATA[ &lt;p&gt;&lt;a xhref=\"" + rssItem.Link + "\"&gt;" + rdr[1] + &#034; &lt;/a&gt;&lt;/p&gt;&lt;br&gt;&#034; + &#034;&lt;br&gt;Computer: &#034; + rdr[0] + &#034;&lt;br&gt;Repeat Count: &#034; + rdr[4] + &#034;&lt;BR&gt;Original ALert Time: &#034; + rdr[3];<br />
rssItem.Description = description;<br />
rssChannel.Items.Add(rssItem);<br />
}</p>
<p>// Finalizza il feed<br />
RssFeed rssFeed = new RssFeed();<br />
rssFeed.Channels.Add(rssChannel);<br />
Response.ContentType = &#034;text/xml&#034;<br />
Response.ExpiresAbsolute = DateTime.MinValue;<br />
rssFeed.Write(Response.OutputStream);<br />
}<br />
finally<br />
{<br />
if (rdr != null)<br />
{<br />
rdr.Close();<br />
}</p>
<p>if (conn != null)<br />
{<br />
conn.Close();<br />
}<br />
}<br />
}<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.muscetta.com/2007/03/22/mom-2005-alerts-to-rss-feed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
