<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Event Log Blog</title>
        <link>http://www.eventlogblog.com/blog/</link>
        <description>In this blog, NETIKUS.NET employees will write about event log monitoring, useful tools for system administrators, tips and tricks and more!

Of course we will also cover recent developments and information about EventSentry, our flagship system monitoring solution.</description>
        <language>en</language>
        <copyright>Copyright 2010</copyright>
        <lastBuildDate>Mon, 01 Feb 2010 07:15:46 -0600</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>How to REALLY monitor SMTP, POP3 and IMAP on Exchange 2003</title>
            <description><![CDATA[<p>Even though Microsoft Exchange Server 2010 has already been released, many organizations still use Exchange 2003. In this article I'll explain how to thoroughly monitor the various Internet protocols that Exchange 2003 offers, including <span class="caps">SMTP, POP3, IMAP </span>(and <span class="caps">NNTP </span>for that matter). The reason why I'll only be looking at Exchange 2003 is because there is a significant difference in architecture between Exchange 2003 and later versions.</p>
<p><br />It is a common misconception that you can effectively monitor the <span class="caps">W3SVC </span>service (commonly referred to as <span class="caps">IIS, </span>though <span class="caps">IIS </span>encompasses a lot more than just a web server) and other services provided through <span class="caps">IIS, </span>such as <span class="caps">SMTP </span>and <span class="caps">POP3, </span>by simply monitoring their associated service. It's a misconception, because a given <span class="caps">IIS</span>-based service may contain multiple instances - most commonly the case with the World Wide Web Service which often hosts multiple independent web sites. The status of these instances can be controlled independently of the hosting service, though that service needs to be running of course.</p>
<p><br />Don't despair though, most server-based windows applications, fortunately, can be monitored by ensuring that their respective service is - well - running. For example, to ensure that the Apache service is up, you "simply" make sure that the Apache service is running. The same goes for countless other services such as MySQL - even <span class="caps">SQL</span> Server (of course you can still detach individual databases in <span class="caps">SQL</span> Server). </p>
<p><br />Exchange 2003, due its partnership with the Internet Information Services 6.0, is different though. Yes, <span class="caps">IIS </span>and Exchange 2003 are tightly coupled, and if you intend to have your Exchange Server 2003 communicate with any other server using a standard Internet protocol such as <span class="caps">SMTP, </span>then you will need <span class="caps">IIS.</span><br /><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="eventlogblog_2010_01_exchange_iis_components.png" src="http://www.eventlogblog.com/blog/eventlogblog_2010_01_exchange_iis_components.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="550" height="242" /></span>


<p>The screenshot above shows that the inetinfo.exe process hosts all the major services (bold name), and that each service can host one or more instance. For more details please see <a href="http://technet.microsoft.com/en-us/library/bb124674%28EXCHG.65%29.aspx">http://technet.microsoft.com/en-us/library/bb124674(EXCHG.65).aspx</a>.<br /><br />The three most common Internet services your Exchange 2003 server is running are probably <span class="caps">SMTP, POP3 </span>and <span class="caps">IMAP4.</span> While a lot of attention is being paid to the core Exchange services such as<br /><br />&nbsp; •&nbsp;Microsoft Exchange Information Store (MSExchangeIS)<br />&nbsp; •&nbsp;Microsoft Exchange System Attendant (MSExchangeSA)<br /><br />The services providing <span class="caps">SMTP, POP3 </span>and <span class="caps">IMAP4 </span>connectivity are usually similarly important, especially the <span class="caps">SMTP </span>service. Looking at the EventSentry service status page immediately reveals that the <span class="caps">SMTP, POP3 </span>and <span class="caps">IMAP4 </span>services are managed by <span class="caps">IIS</span>:<br /><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eventlogblog.com/blog/assets_c/2010/02/eventlogblog_2010_01_es_services-thumb-600x78-85-87.html" onclick="window.open('http://www.eventlogblog.com/blog/assets_c/2010/02/eventlogblog_2010_01_es_services-thumb-600x78-85-87.html','popup','width=600,height=78,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/assets_c/2010/02/eventlogblog_2010_01_es_services-thumb-600x78-85-thumb-700x91-87.png" alt="Thumbnail image for eventlogblog_2010_01_es_services.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="700" height="91" /></a></span><p>As you can see, <span class="caps">IMAP4S</span>vc, <span class="caps">POP3S</span>vc and <span class="caps">SMTPS</span>vc all use inetinfo.exe (Executable column) for their host process. So why is this important again?<br /><br />Since all of these services support multiple instances <span class="caps">INSIDE </span>the service (inetinfo.exe), the host process will continue to run even when one or more instances inside the service are stopped. Since most installations only have one instance, stopping that one instance inside the service will still leave the service up and running. The effect of course is the same; the service is not available to the end users while the Windows service will happily continue to run.<br /><br />A screen shot from the System Manager application shows instances listed inside:</p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="eventlogblog_2010_01_system_manager.png" src="http://www.eventlogblog.com/blog/eventlogblog_2010_01_system_manager.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="222" height="163" /></span><p>As you can see with the <span class="caps">IMAP4 </span>protocol, we have two virtual servers setup that are both hosted inside the "Microsoft Exchange <span class="caps">IMAP4</span>" service. To stubbornly illustrate my point further I took a screenshot that shows both <span class="caps">IMAP4 </span>instances stopped while the service itself is running:<br /><br /></p>

<span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="eventlogblog_2010_01_system_manager_services.png" src="http://www.eventlogblog.com/blog/eventlogblog_2010_01_system_manager_services.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="714" height="199" /><br /></span>

<p>So I think we're all in agreement now that monitoring the <span class="caps">POP3, SMTP </span>etc. services in Exchange 2003 is not enough if you want to ensure that these services are actually available. So how do we monitor all of these instances?<br />The easiest way is actually with a <span class="caps">VBS</span>cript, which is included below. <span class="caps">VBS</span>cript works well since the cscript.exe interpreter is readily installed on Windows 2003, so no additional installation of tools is required. The script enumerates all instances of a given protocol, and checks whether they are running or not. If at least one instance is not running, the tool will return 1, thus setting the <a href="http://www.robvanderwoude.com/errorlevel.php"><span><span class="caps">ERRORLEVEL</span></span></a> to 1.<br /><br />This <span class="caps">VBS</span>cript can then be <a href="http://eventsentry.com/features/CUSTOMMONITORING">embedded</a> into EventSentry, which will then run the script at set intervals using the <a href="http://eventsentry.com/features/CUSTOMMONITORING">application scheduler</a>, notifying you via email (with the proper filter setup) when an instance is stopped. There's a screencast for that, you can view it at <a href="http://www.eventsentry.com/screencasts/eventsentry-application-scheduler/eventsentry-application-scheduler.htm">http://www.eventsentry.com/screencasts/eventsentry-application-scheduler/eventsentry-application-scheduler.htm</a>. It shows you how to create an embedded script and setup <a href="http://www.eventsentry.com/">EventSentry</a> to notify you when the scripts returns an error. Note that the screencast uses an older version of the script which only monitored web sites (not <span class="caps">SMTP, IMAP4,</span> ...), but the process of setting up the script with EventSentry is exactly the same.<br /><br />You should be able to use the script as-is, just configure which protocols are monitored by adjusting the values in the "Define which protocols to monitor here" section. The script always prints all installed instances and their status, and any stopped instance is prefixed with an asterisk. Below is what an email from EventSentry looks like:<br /><br /></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="eventlogblog_2010_01_appscheduler_email.png" src="http://www.eventlogblog.com/blog/eventlogblog_2010_01_appscheduler_email.png" class="mt-image-center" style="text-align: center; display: block; margin: 0pt auto 20px;" width="628" height="550" /></span><p>The line with the stopped instance won't be yellow in the actual email, I just added this for readability. The script can also easily be modified to automatically start any stopped instances - simply add the line <br /><br />Instance.Start<br /><br />after line 102. This will still trigger an email (or error) to notify you that it was stopped, but a subsequent run of the script at the next monitoring interval should not trigger an error again if the start was successful.<br /><br />A note of caution here though - I have seen the script hang indefinitely with this line added when an instance that is currently stopped can't be started because it's not configured correctly. Hence, it's not included by default.</p><br /><div style="background-color: rgb(240, 240, 216); border: 1px solid rgb(216, 192, 144); padding: 8px;">
<p><font face="Courier New">' Lists the state of all IIS protocols configured on the local machine<br />' and returns an %ERRORLEVEL% of 1, if at least one instance is not in<br />' the "Started" state.<br />'<br />' When scheduling this script with EventSentry's application scheduler,<br />' make sure that the interpreter is set to "cscript.exe"<br /><br />Option Explicit<br /><br />Dim allInstancesAreRunning<br /><br />Dim monitorSMTP, monitorPOP3, monitorIMAP4, monitorNNTP, monitorFTP, monitorWWW<br /><br />' Define which protocols to monitor here<br /><br />monitorSMTP&nbsp; = 1<br />monitorPOP3&nbsp; = 1<br />monitorIMAP4 = 1<br />monitorNNTP&nbsp; = 1<br />monitorFTP&nbsp;&nbsp; = 1<br />monitorWWW&nbsp;&nbsp; = 1<br /><br />' Define which protocols to monitor here<br /><br />' ==================== EXECUTION STARTS HERE ====================<br />allInstancesAreRunning = EnumerateAllInstances<br /><br />If allInstancesAreRunning = 0 Then<br />&nbsp;&nbsp;&nbsp; WScript.Echo vbCRLF &amp; "WARNING: One or more IIS components are not running" &amp; vbCRLF<br />End If<br /><br />If allInstancesAreRunning = 0 Then<br />&nbsp;&nbsp;&nbsp; WScript.Quit 1<br />End If<br /><br />' ==================== FUNCTIONS ====================<br />Function EnumerateAllInstances<br /><br />EnumerateAllInstances = 1<br /><br />If monitorSMTP = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "SMTPSVC")<br />End If<br /><br />If monitorPOP3 = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "POP3SVC")<br />End If<br /><br />If monitorIMAP4 = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "IMAP4SVC")<br />End If<br /><br />If monitorNNTP = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "NNTPSVC")<br />End If<br /><br />If monitorFTP = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "FTPSVC")<br />End If<br /><br />If monitorWWW = 1 Then<br />&nbsp;&nbsp;&nbsp; EnumerateAllInstances = EnumerateAllInstances And EnumerateInstances("localhost", "W3SVC")<br />End If<br /><br />End Function<br /><br />Function MapServiceToInstance( Service )<br /><br />&nbsp;&nbsp;&nbsp; If Service = "SMTPSVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsSmtpServer"<br />&nbsp;&nbsp;&nbsp; ElseIf Service = "POP3SVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsPop3Server"<br />&nbsp;&nbsp;&nbsp; ElseIf Service = "IMAP4SVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsImapServer"<br />&nbsp;&nbsp;&nbsp; ElseIf Service = "W3SVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsWebServer"<br />&nbsp;&nbsp;&nbsp; ElseIf Service = "NNTPSVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsNntpServer"<br />&nbsp;&nbsp;&nbsp; ElseIf Service = "FTPSVC" Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MapServiceToInstance = "IIsFtpServer"<br />&nbsp;&nbsp;&nbsp; End If<br /><br />End Function<br /><br />Function EnumerateInstances( Server, Service )<br />&nbsp;&nbsp;&nbsp; On Error Resume Next<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; Dim VirtualServerService<br />&nbsp;&nbsp;&nbsp; Dim Instance, InstanceID<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; EnumerateInstances = 1<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; Set VirtualServerService = GetObject("IIS://" &amp; Server &amp; "/" &amp; Service)<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; If Err.Number = 0 Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; InstanceID = MapServiceToInstance(Service)<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; For Each Instance in VirtualServerService<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; If Instance.KeyType = InstanceID Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; If SiteIsNotRunning(Instance.ServerState) Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.StdOut.Write "*"<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; EnumerateInstances = 0<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WScript.StdOut.Write Instance.ServerComment &amp; " (" &amp; Service &amp; "): " &amp; State2Desc(Instance.ServerState) &amp; vbCRLF<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; End If<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Next<br />&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp; <br />End Function<br /><br />Function SiteIsNotRunning( nState )<br /><br />&nbsp;&nbsp;&nbsp; If nState &lt;&gt; 2 Then<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SiteIsNotRunning = 1<br />&nbsp;&nbsp;&nbsp; Else<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SiteIsNotRunning = 0<br />&nbsp;&nbsp;&nbsp; End If<br />&nbsp;&nbsp;&nbsp; <br />End Function<br /><br />Function State2Desc( nState )<br /><br />&nbsp;&nbsp;&nbsp; Select Case nState<br />&nbsp;&nbsp;&nbsp; Case 1<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_STARTING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Starting"<br />&nbsp;&nbsp;&nbsp; Case 2<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_STARTED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Running"<br />&nbsp;&nbsp;&nbsp; Case 3<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_STOPPING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Stopping"<br />&nbsp;&nbsp;&nbsp; Case 4<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_STOPPED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Stopped"<br />&nbsp;&nbsp;&nbsp; Case 5<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_PAUSING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Pausing"<br />&nbsp;&nbsp;&nbsp; Case 6<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_PAUSED<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Paused"<br />&nbsp;&nbsp;&nbsp; Case 7<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'MD_SERVER_STATE_CONTINUING<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Continuing"<br />&nbsp;&nbsp;&nbsp; Case Else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State2Desc = "Unknown state"<br />&nbsp;&nbsp;&nbsp; End Select<br /><br />End Function<br /><br /></font></p>
</div><div><br />You can also download the script <a href="http://www.netikus.net/downloads/monitor_iis_protocols.zip">from here</a>.<br /><br /><br />Until next time,<br />Ingmar.<br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2010/02/how-to-really-monitor-smtp-pop.html</link>
            <guid>http://www.eventlogblog.com/blog/2010/02/how-to-really-monitor-smtp-pop.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Monitoring</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Monitor exchange 2003 server eventsentry iis smtp pop3 smtpsvc</category>
            
            <pubDate>Mon, 01 Feb 2010 07:15:46 -0600</pubDate>
        </item>
        
        <item>
            <title>Announcing EventSentry v2.91</title>
            <description><![CDATA[Now that <a href="http://www.eventsentry.com/">EventSentry</a> v2.91 has been released, I'm happy to have the opportunity to blog about our monitoring solution again.<br /><br />The most significant new feature in EventSentry is the <a href="http://www.netikus.net/software/eventsentry/index.html?webnetwork_matrix.htm">Health Matrix</a>, a new way to see your network status in a space-efficient way. In fact, you can see the overall health status of your entire network on a single screen, even if it consists of hundreds of hosts.<br /><br />We also made numerous other changes throughout the web reports, and added some exciting new filtering capabilities with our event log filters, as well as improved speed with the event log engine and file checksum generations.<br /><br />EventSentry v2.91 also includes many minor improvements throughout the application, including service monitoring, process tracking and more. We have also updated EventSentry Light, and a new version will be released in the coming days after we have completed testing.<br /><br />But now to the new features in version 2.91:<br /><br /><b><font style="font-size: 1em;">Health Matrix</font></b><br />In the health matrix, each host is displayed as a colored square, circle or rectangle, with the color indicating the overall health of the monitored computer. When all of the monitored components of a host are in an OK status, the color of the square is green. The color will change to orange or red when a problem is detected, depending on the number or severity of the issue.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eventlogblog.com/blog/assets_c/2009/11/clip0580-70.html" onclick="window.open('http://www.eventlogblog.com/blog/assets_c/2009/11/clip0580-70.html','popup','width=756,height=188,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/assets_c/2009/11/clip0580-thumb-500x124-70.png" alt="clip0580.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="124" width="500" /></a></span>The health matrix is highly customizable, for example both the size and shape of the icons can be adjusted depending on the size of the network (and your monitor).<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eventlogblog.com/blog/assets_c/2009/11/clip0583-73.html" onclick="window.open('http://www.eventlogblog.com/blog/assets_c/2009/11/clip0583-73.html','popup','width=696,height=87,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/assets_c/2009/11/clip0583-thumb-600x75-73.png" alt="clip0583.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="75" width="600" /></a></span><b>Event Log Monitoring</b> <br />In 2.91, the event log filtering engine was improved, resulting in reduced CPU usage of the event log monitoring component. Since the CPU usage of the EventSentry agent is already quite low, you will most likely only notice this improvement on hosts that generate an extremely large number of events, such as domain controllers.<br /><br />Also new is the ability to filter events based on insertion strings in addition to just filtering based on the event message text. This means that one can now match individual strings inside event messages against strings, numbers, file checksums and group memberships. If you are not familiar with the term "insertion string", then I highly recommend my previous post about <a href="http://www.eventlogblog.com/blog/2008/04/event-log-message-files-the-de.html">event message files</a> before you read on.<br /><br />Consider the following hypothetical example: The environment-monitoring component of EventSentry logs event id 10908:<br /><br /><i>The temperature (<b>78.21</b> degrees <b>F</b>) has fallen outside the configured range (<b>60F</b> to <b>76F</b>).</i><br /><br />which is defined as:<br /><br /><i>The temperature (<b>%3</b> degrees <b>%4</b>) has fallen outside the configured range (<b>%1%4</b> to <b>%2%4</b>).</i><br /><br />This event obviously informs us, that the current temperature has exceeded a set limit. Now let's say that we wanted to get an email when the temperature exceeds the limit, but also send a page when the temperature exceeds 90 degrees.<br /><br />The new filtering feature allows you to do just that, by using the numerical comparison functionality with insertion strings (of course you would also need to set the hour/day properties). Assuming that you already have a filter in place for regular email notifications, you would simply setup an additional include filter that would evaluate insertion string 3 (%3) and only match if the number is above 90. See the screen shot below for the example. The result is a filter that only matches when then the temperature exceeds 90 degrees. <br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_es291_filter_1a.png" src="http://www.eventlogblog.com/blog/blog_es291_filter_1a.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="110" width="497" /></span>2.91 also includes two more comparison options, file checksums and group membership. So, if an insertion string represents a filename (e.g. from a security event), then EventSentry can create a SHA checksum from the specified file and compare it with the value that you specified. Another example would be a security event that includes a username in an insertion string, in which case you could setup a filter that would only match if that user is a member of particular group you specify. Both examples are mostly applicable for security events, since those are most likely to contain either filenames or usernames.<br />Using file checksums, you can be notified whenever a user plays solitaire, even when the user renames the executable.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_es291_filter_2.png" src="http://www.eventlogblog.com/blog/blog_es291_filter_2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="279" width="508" /></span>Simply create a checksum of the file first using shachecksum.exe (included in the free <a href="http://www.netikus.net/products_nttoolkit.html">NTToolkit</a>, make sure you account for different OS versions and platforms) and intercept the corresponding 4688 event.<br /><b><br />Service Monitoring</b><br />Service Monitoring now collects the username as well as the executable of a service. These additional properties are available in the web reports and in events generated, for example when the username of a service changes.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_es291_service_monitoring.png" src="http://www.eventlogblog.com/blog/blog_es291_service_monitoring.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="125" width="420" /></span><b>Software Monitoring</b><br />Software monitoring has been overhauled in 2.91, and some limitations and bugs have been removed. On Vista, Win2k8 and later, Windows patches are now monitored and included in the software inventory. 64-bit software is now classified as such and searchable, and searching for installed Windows Updated patches has also been simplified.<br /><br /><b>SNMP Traps</b><br />EventSentry can now send version 2c and version 3 traps, previously only version 1 traps were sent by the agent. The SNMP trap daemon was originally set to be released as part of 2.91, but this feature has been pushed back to v2.92.<br /><br /><b>Web Reporting</b><br />We have made a number of improvements in the web reporting to make using our web-based interface easier:<br /><br />•&nbsp;&nbsp;&nbsp; Reports are now easily accessible from every page, in addition to the reports page. <br />•&nbsp;&nbsp;&nbsp; The database usage page now shows the actual page name in addition to the table name.<br />•&nbsp;&nbsp;&nbsp; The dashboard page has been overhauled<br />•&nbsp;&nbsp;&nbsp; The network status page can be customized (performance counters &amp; disks)<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eventlogblog.com/blog/assets_c/2009/11/blog_es291_dashboard-79.html" onclick="window.open('http://www.eventlogblog.com/blog/assets_c/2009/11/blog_es291_dashboard-79.html','popup','width=965,height=204,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/assets_c/2009/11/blog_es291_dashboard-thumb-600x126-79.png" alt="blog_es291_dashboard.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="126" width="600" /></a></span><b>Miscellaneous Improvements</b><br /><br />There have of course been other improvements across the board, such as:<br /><br />•&nbsp;&nbsp;&nbsp; Notes can now be applied to computers<br />•&nbsp;&nbsp;&nbsp; AD-linked groups can be sorted, and authentication properties can be set globally<br />•&nbsp;&nbsp;&nbsp; Hardware monitoring now includes the IP address of an interface<br />•&nbsp;&nbsp;&nbsp; Process tracking can capture the command line of a process<br />•&nbsp;&nbsp;&nbsp; Logon tracking includes group information<br />•&nbsp;&nbsp;&nbsp; File checksum generation has been optimized and will now use fewer CPU resources (affects file monitoring and file access tracking)<br />•&nbsp;&nbsp;&nbsp; The minimum database interval for environment monitoring has been reduced to 5 minutes from 15 minutes<br />•&nbsp;&nbsp;&nbsp; Software uninstallation events now include the same information as software installation events<br /><br /><div>If you have an active maintenance agreement, then this 2.91 release will of course be free of charge. If you are not already using EventSentry, then you can download a free 30-day evaluation version from <a href="http://www.eventsentry.com/downloads_downloadtrial.php">http://www.eventsentry.com/downloads_downloadtrial.php</a>.<br /><br /><br />Happy Holidays,<br />Ingmar.<br /></div><div><br /></div><div><br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2009/11/announcing-eventsentry-v291.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/11/announcing-eventsentry-v291.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Announcements</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Event Log</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">eventsentry 2.91 release event log file monitoring health matrix</category>
            
            <pubDate>Mon, 30 Nov 2009 17:09:05 -0600</pubDate>
        </item>
        
        <item>
            <title>Group Policy Software Deployment: Targeting the right computers with WMI filters</title>
            <description><![CDATA[Group policy was introduced with Windows 2000, and is an easy way of centralizing many Windows settings. In addition to centralizing event log and firewall settings, I personally like the ability to deploy MSI-based software applications with Group Policy, since it makes it extremely easy to deploy new software packages.<br /><br />Even though <b>Software Installation</b> only works only with MSI-based packages, it does make deploying MSI-based software packages extremely easy. Here is a short list of software  (mostly tools for sysadmins) that you can deploy using Active Directory:<br /><br /><ul><li><a href="http://www.7-zip.org/">7-Zip</a></li><li>Firefox (from <a href="http://www.frontmotion.com/Firefox/download_firefox.htm">FrontMotion</a>)</li><li><a href="http://www.foxitsoftware.com/downloads/index.php">Foxit Reader</a> (a PDF reader)<br /></li><li><a href="http://tortoisesvn.net/">TortoiseSVN</a></li><li><a href="http://www.activestate.com/activeperl/">ActivePerl</a></li><li><a href="http://www.python.org/">Python</a><br /></li><li><a href="http://www.sourcegear.com/vault/">SourceGear Vault Client</a><br /></li><li><a href="http://download.openoffice.org/">OpenOffice</a> (I have not tried this)</li><li>Adobe Flash (<a href="http://www.adobe.com/products/players/fpsh_distribution1.html">requires custom download</a>)<br /></li></ul>There are of course many more, and you can distribute most Microsoft client applications, such as Microsoft Office, through Group Policy as well.<br /><br />We generally deploy software through Group Policy when three or more computers use it, since it's very easy to create a new package (if you already have a network share etc. setup, then you can literally do it in 2 minutes).<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.eventlogblog.com/blog/assets_c/2009/10/grouppolicy_software_installation-66.html" onclick="window.open('http://www.eventlogblog.com/blog/assets_c/2009/10/grouppolicy_software_installation-66.html','popup','width=761,height=270,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/assets_c/2009/10/grouppolicy_software_installation-thumb-600x212-66.png" alt="grouppolicy_software_installation.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="212" width="600" /></a></span>Before I list some of the useful WMI queries we use to target certain operating systems or computer types, there are a couple of things to note for those who are new to software deployment via group policy:<br /><br /><ul><li>Software packages are always installed right after a reboot, so they're mostly suitable for workstations.</li><li>The network share which hosts the MSI files needs to give the computer accounts (e.g. DESKTOP1$) at least read access. Generally, giving EveryOne Read access works well unless you have a reason to restrict access to the software packages that you distribute.</li></ul>Since the mechanism to distribute software is based on group policies, any sort of software package you create inside a group policy, will need to be assigned to an organizational unit (OU).<br /><br />Since OUs can contain a large amount of computers that might not all need that particular software package, you can use two techniques to narrow down which computers receive the software:<br /><br /><ol><li>Security Filtering</li><li>WMI Filtering</li></ol><b>Security Filtering</b><br />With this method, you create a security group in ActiveDirectory, place the computers that should get a particular software package into the group, and then specify this group in the <b>Security Filtering</b> list.<br /><br />The screen shot below shows a group policy that will only be applied to members of the "Source Control Computers" group:<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
<img alt="grouppolicy_security_filtering.png" src="http://www.eventlogblog.com/blog/grouppolicy_security_filtering.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="149" width="456" /></span><span class="mt-enclosure mt-enclosure-image" style="display: inline;">
</span><b>WMI Filtering</b><br />With this method, you can filter the computers which are affected by your policy, based on common properties of the Operating System. For example, some packages might distinguish between 32-bit and 64-bit, some packages might only work on Vista or later, whereas other packages apply only to servers. With WMI, you can target the right computers without having to mess with group memberships (though you will probably still need to do that). For example:<br /><br /><ul><li>32-bit vs. 64-bit computers</li><li>only workstations</li><li>only computers running a certain OS</li><li>only computers with a certain amount of RAM</li><li>only computers of a certain brand</li></ul>With WMI filtering, you just create the software group policy, for example:<br /><br /><ul><li>7-Zip 32-bit</li><li>7-Zip 64-bit</li></ul>and then apply the respective WMI filter to them. But lets cut to the chase, here are a few WMI queries that you can cut &amp; paste:<br /><br /><b>Operating System 32-bit</b>
<br />
<font face="Courier New">
Select * from Win32_Processor where AddressWidth = '32'
</font>
<br />
<b>Operating System 64-bit</b><br />
<font face="Courier New">
Select * from Win32_Processor where AddressWidth = '64'<br /><br /></font><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="grouppolicy_wmi_filter.png" src="http://www.eventlogblog.com/blog/grouppolicy_wmi_filter.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="145" width="413" /></span><b>Workstation</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where ProductType=1
</font>
<br /><b>Domain Controller</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where ProductType=2
</font>
<br />
<b>Server</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where ProductType=3
</font>
<br />
<br />
Some filters require multiple WMI queries, which are just chained together.<br /><br /><b>Workstation 32-bit</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where ProductType=1
</font>
<br />
<font face="Courier New">
Select * from Win32_Processor where AddressWidth = '32'
</font>
<br /><b>Workstation 64-bit</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where ProductType=1
</font>
<br />
<font face="Courier New">
Select * from Win32_Processor where AddressWidth = '64'<br /><br /></font><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="grouppolicy_wmi_filter_multiple.png" src="http://www.eventlogblog.com/blog/grouppolicy_wmi_filter_multiple.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="152" width="472" /></span><font face="Courier New"></font><b>Windows XP</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='5.1.2600' and ProductType=1
</font>
<br />
<b>Windows Vista</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='6.0.6002' and ProductType=1
</font>
<br /><b>Windows 7</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='6.1.7600' and ProductType=1
</font>
<br /><br /><b>Windows 2003</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='5.2.3790' and ProductType&gt;1
</font>
<br /><b>Windows 2008</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='6.0.6002' and ProductType&gt;1
</font>
<br /><b>Windows 2008 R2</b><br />
<font face="Courier New">
Select * from WIN32_OperatingSystem where Version='6.1.7600' and ProductType&gt;1
</font>
<br /><br /><b>WIN32_OperatingSystem</b> of course includes more information that can be useful for WMI queries, such as a descriptive name of the installed OS ("Name") as well as the service pack installed ("ServicePackMajorVersion").<br /><br /><b>Manufacturer (e.g. DELL)</b><br />
<font face="Courier New">
Select * from WIN32_ComputerSystem where Manufacturer = 'DELL'
</font>
<br /><br /><b>Installed Memory (e.g. more than 1Gb)</b><br />
<font face="Courier New">
Select * from WIN32_ComputerSystem where TotalPhysicalMemory &gt;= 1073741824
</font>
<br /><br />Like I mentioned earlier, this is merely a small sample of the possible WMI queries one can use to filter group policies, but they should cover most relevant scenarios. Feel free to suggest other useful WMI queries and I will include them here.<br /><br />For more information, check out these resources on WMI:<br /><br /><a href="http://msdn.microsoft.com/en-us/library/aa394582%28VS.85%29.aspx">WMI</a><br /><a href="http://www.microsoft.com/technet/scriptcenter/resources/wmifaq.mspx">Secrets of Windows Management Instrumentation</a><br /><a href="http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=09DFC342-648B-4119-B7EB-783B0F7D1178&amp;displaylang=en">Scriptomatic</a> (Vista/Win2k8/Win7: run as administrator!)<br /><br /><br />Happy querying,<br />Ingmar.<br /><br /><div><br /></div><div><br /></div><div><br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2009/10/useful-wmi-queries-to-filter-g.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/10/useful-wmi-queries-to-filter-g.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">group policy software installation wmi filtering</category>
            
            <pubDate>Mon, 19 Oct 2009 22:04:03 -0600</pubDate>
        </item>
        
        <item>
            <title>Get your KIX on route 66 - Powerful (login) scripts made easy with KiXtart</title>
            <description><![CDATA[<a href="http://en.wikipedia.org/wiki/U.S._Route_66">Route 66</a> was a US highway that connected Chicago with Los Angeles (or vice versa), with a total length of almost 2500 miles (for the rest of world using the metric system: almost 4000 km). It was established in 1926 and <a href="http://en.wikipedia.org/wiki/Nat_King_Cole">Nat King Cole</a> first recorded the song "<a href="http://en.wikipedia.org/wiki/Route_66_%28song%29">(Get Your Kicks On) Route 66</a>" in 1946.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_route_66.png" src="http://www.eventlogblog.com/blog/blog_route_66.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="133" width="134" /></span>Completely unrelated to Route 66 of course is <a href="http://www.kixtart.org/">KiXtart</a>, a free, free-format scripting language for Windows.<br /><br />I first ran across KiXtart back in '99, when I was looking for a scripting language that I could use to write login scripts in a NT4 network. My goals back then were simple, and included the ability to map printers and shares depending on the user and/or group membership.<br /><br />I was already familiar with Perl back then, and would have preferred to use that, if it wouldn't have been for the requirement to install Perl on every workstation. Things have changed since then of course, and installing Perl today on every workstation in your domain would be rather simple with GroupPolicy (ActivePerl provides a MSI).<br /><br />Still, KiXtart is a surprisingly simple and flexible scripting language that will allow you to accomplish most anything (not only in regards to login scripts) with extremely little effort. KiXtart also supports Windows 9x clients, if you are in the unfortunate position to take advantage of that functionality.<br /><br />So what can you do with KiXtart? Here is an overview:<br /><br /><ul><li>Read and/or write to the <b>registry<br /><br /></b></li><li>Manage the <b>event log<br /><br /></b></li><li>Add <b>printer </b>or <b>network share</b> connections<br /><br /></li><li>Create <b>shortcuts</b>, program groups etc.<br /><br /></li><li>Read and/or write from/to <b>files<br /><br /></b></li><li>Retrieve <b>system information</b> (memory, hostname, IP address, ...)<br /><br /></li><li>Get <b>group </b>information<br /><br /></li><li>And much more ...<br /></li></ul><br />There really is little you cannot do, and most tasks can be accomplished with as little as one or two lines of code. How about some practical examples of what you can do with KiXtart:<br /><br /><br />
<ul><li>Map the color laser printer to all members of the "Marketing" group at logon.</li></ul>
<ul><li>Map a network share depending on the network location (e.g. IP address) of a user.</li></ul>

<ul><li>Query registry values or log information to the event log.</li></ul>

<ul><li>Add a shortcut or program group</li></ul><ul><li>Change the wallpaper :-)</li></ul><br />The KiXtart web site has the complete documentation for all commands and functions that are at your disposal, and you can download them in a variety of formats (I recommend the CHM format) from <a href="http://www.kixtart.org/?p=manual">http://www.kixtart.org/?p=manual</a>.<br /><br />But that's all nothing but dry theory, so I will show you how to create a KiXtart script that accomplishes the following:<br /><br /><ol><li>Creates a printer connection depending on the group membership of the user</li><li>Maps network shares depending on the group membership</li><li>Displays a warning message if the latest service pack is not installed</li><li>Maps another network share only if the user is in a certain IP network</li><li>Display a warning if the password is older than 180 days<br /><br /></li></ol><b>1. Creating a printer connection</b><br /><br />

<font face="Courier New">
IF <b>INGROUP</b>("MARKETING")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ? "Connecting to color laser ..."<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>ADDPRINTERCONNECTION</b>("\\PRINTSERVER\COLOR_LASER_1")<br />ENDIF
</font>

<br /><br />In this example we are taking advantage of two functions, INGROUP and ADDPRINTERCONNECTION. I think they are fairly self-explanatory. If the currently logged on user is in the MARKETING group, then a printer connection to \\PRINTSERVER\COLOR_LASER_1 will be established.<br /><br /><b>2. Mapping network shares</b><br /><br />The same INGROUP feature can be used to add network connections as well, so here is how you can control connections to network shares based on group membership<br /><br /><font face="Courier New">;Map Home Directory<br />USE G: "\\FILESERVER\<b>@USERID</b>"<br /><br />IF INGROUP("Marketing")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>USE </b>I: "\\FILESERVER\Marketing"<br />ENDIF<br /><br />IF INGROUP("SALES")<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>USE </b>J: "\\FILESERVER\Sales"<br />ENDIF
</font>

<br /><br />In this example I introduced macros (@USERID), another powerful feature of KiXtart. By default, pretty much any system property is available as a macro (macros always start with the @ symbol). @USERID contains the user name of the currently logged on user, but there are others, such as:<br /><br /><ul><li>@ProductType (OS type, e.g. "Windows Vista Ultimate"</li><li>@Wksta (computer name)</li><li>@LDomain (logon domain)</li><li>@CSD (service pack information)</li><li>@CPU (CPU information)</li><li>@Address (MAC address of network adapter)</li><li>@IPaddress0, @IPaddress1, ... @IPaddress3 (IP address of xth network adapter)</li><li>@PWAge (password age)</li></ul>Lines that contain comments in KiXtart start with a semi-colon.<br /><br /><b>3. Display a warning based on the service pack number</b><br /><br />KiXtart also includes a variety of functions for handling strings. We can use the @CSD variable to get the service pack information:<br /><br />

<font face="Courier New">
? "Service Pack: " + @CSD
</font>

<br /><br />which will yield something similar to<br /><br />Service Pack: Service Pack 1<br /><br />In order to display a dynamic message, we can get the last character and evaluate it. So let's display a warning message if a user is running Vista with a service pack smaller than SP 2:<br /><br />

<font face="Courier New">
IF <b>INSTR</b>(@ProductType, "Vista") &gt; 0<br />&nbsp; IF <b>RIGHT</b>(@CSD, 1) &lt; 2<br />&nbsp;&nbsp;&nbsp; MESSAGEBOX("Important Message from your IT Department" + @CRLF + @CRLF + "Your computer is not running the latest service pack, and will be upgraded tomorrow automatically at 10am. The upgrade will take approximately 30 minutes, and you will not be able to use your computer at that time." + @CRLF + @CRLF + "Thank you for your understanding.", "Service Pack Installation", 48)<br />&nbsp; ENDIF<br />ENDIF</font><br /><br />The INSTR() function checks whether a string appears inside another string, and the LEFT() function retrieves the specified number of characters from the beginning of a string.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_kixtart_service_pack_warning.png" src="http://www.eventlogblog.com/blog/blog_kixtart_service_pack_warning.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="257" width="468" /></span><b>4. Map a network share depending on the IP address</b><br /><br />Let's imagine that we have a network share with lots of really large files (e.g. corporate training videos and more) and that we only want to map this share if a user is in the headquarter, opposed to a satellite location which has a slow access speed.<br /><br />

<font face="Courier New">
IF LEFT(@IPADDRESS0, 11) = " 10. 10.&nbsp; 0"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>USE </b>Z: "\\FILESERVER\TrainingVideos"<br />ENDIF
</font>

<br /><br />Now the network share is only mapped if the user is in the 10.10.0.0/24 subnet. You can also use the <b>EnumIPInfo()</b> if you need to get more information from the network adapter.<br /><br /><b>5. Display a warning if a password is old</b><br /><br />Most networks require users to change their passwords on a regular basis, but wouldn't it be nice if we could give our users a one-time warning before they are faced with the inevitable prompt that requires them to change their password?<br /><br />

<font face="Courier New">
<b>$PasswordWarningThreshold</b> = 170<br /><br />IF @PWAge = <b>$PasswordWarningThreshold</b><br />&nbsp;&nbsp; MESSAGEBOX("Your password is " + $PasswordWarningThreshold + " days old and will have to be changed in 10 days. Please think of a really good password in the meantime.", "Password Expiration", 64)<br />ENDIF
</font>

<br /><br />In this example I also introduced variables, which are specified with the dollar sign. These are simplified examples, and there is a lot more you can do. For example, using the registry functions, you can save user responses and previous alerts in the registry, and later read them again.<br /><br /><br />So, forget multiple logon scripts or batch scripts using "NET USE" commands. With KiXtart, you can have one central login script that can adjust dynamically to the user, location, operating system or even the computer itself.<br /><div><br />To get started, simply follow these steps:<br /><br /><ol><li>Create a batch file (e.g. <b>login.cmd</b>) with the following line:<br /><br />

<font face="Courier New">
%0\..\WKix32.exe %0\..\login.kix
</font>

<br /><br /></li><li>Create the actual login script for KiXtart, e.g. "login.kix"<br /><br /></li><li>Assign the login script login.cmd to all user accounts that require them<br /></li></ol>That's it. You don't have to install anything on the client computers, and you now have a single login script for your entire network.<br /><br /><br />Until next time,<br />Ingmar.<br /></div><div><br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2009/09/get-your-kix-on-route-66---pow.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/09/get-your-kix-on-route-66---pow.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Event Log</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">kixtart login script</category>
            
            <pubDate>Thu, 17 Sep 2009 16:07:39 -0600</pubDate>
        </item>
        
        <item>
            <title>Wish Sandwich - 5 (free) tools we wish Windows had</title>
            <description><![CDATA[<i>"Have you ever heard of a wish sandwich? A wish sandwich is the kind of a sandwich where you have two slices of bread and you, hee hee hee, wish you had some meat..."</i><br /><br />These are part of the lyrics from the "<a href="http://en.wikipedia.org/wiki/Rubber_Biscuit">Rubber Biscuit</a>" song by "<a href="http://en.wikipedia.org/wiki/The_Chips">The Chips</a>", <a href="http://www.google.com/url?sa=t&amp;source=web&amp;oi=video_result&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjYyBZE0kBtE&amp;ei=j_-DSoHHB46StgfFxOCvCg&amp;usg=AFQjCNEPWS5ov43QOtq2BB7HLzvLfDgO7A&amp;sig2=2wUOyUiYoUVEhvUm_UBN8g">covered</a> by the <a href="http://en.wikipedia.org/wiki/The_Blues_Brothers">Blues Brothers</a> in 1978. At the time, UNIX was almost 10 years old, the first version of BSD had been released, and Microsoft had their office in Albuquerque with Bill Gates being 23 years old.<br /><br />It would take almost another 20 years before Windows NT 4 would be released. But back to the future now.<br /><br />Well, after working with Windows for about 15 years now, I also wish that the base set of utilities that ship as part of Windows would have been updated and improved. It might seem odd, but one of the first things I do when I install a new release of Windows, is to open notepad, the calculator and paint - to see if they have improved.<br /><br />Somewhat surprisingly, Windows 7 brings a lot of improvements to the core utilities that ship with Windows. Microsoft not only spiced up Paint and Wordpad by giving them the "Ribbon", but also improved the calculator in ways never imagined before. Yeah!<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_wish_paint_ribbon.png" src="http://www.eventlogblog.com/blog/blog_wish_paint_ribbon.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="232" width="330" /></span>But these improvements do not satisfy a long-time Windows user! Having worked with Linux, OS X and Windows since the 3.0 days, I have my own list of apps that I use to substitute or extend some of the archaic tools that ship with Windows.<br /><br />And here they are:<br /><br /><b>1. Notepad</b><br />What we know today as "Notepad", was first seen in Windows NT 4.0. When Windows 2000 came out, notepad hadn't changed. Well, fair enough - it had only been 4 years after all. A short while later Windows XP was released with a bang, but notepad was still the same. Windows 2003 showed that an upgrade to notepad obviously had low priority, and the release of Vista confirmed to me that notepad was clearly no longer under development. The recent release of Windows 7 crushed my hopes of Microsoft ever releasing an updated version of Notepad. Sigh.<br /><br />So, why was Notepad left behind? Well, I have a few theories:<br /><br />a) &nbsp;&nbsp; The developer who originally developed Notepad has left the company, and nobody at Microsoft understands the existing code enough to make modifications.<br />b) &nbsp;&nbsp; Companies developing third-party editors formed a powerful, mafia-like lobby, threatening Microsoft (presumably kidnappings) to never ever release an update to notepad, to ensure that third-party editors will continue to sell well.<br />c) &nbsp;&nbsp; Microsoft deems Notepad complete, and cannot imagine how this robust application could be improved.<br />d) &nbsp;&nbsp; Windows applications do not use text files, since all configuration is stored in the registry or databases. Even though unneeded, Notepad is provided as a courtesy and might be excluded from future version (like, telnet.exe!).<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_wish_notepad2.png" src="http://www.eventlogblog.com/blog/blog_wish_notepad2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="527" width="669" /></span>Whatever the reason (I may never find out), fact is that Notepad hasn't been updated in 13 years, and since Windows 8 won't be out until 2012, probably won't change in 16 years. That's a lot of years for a software program.<br /><br />Line Numbers?<br />Basic syntax highlighting?<br />Anyone?<br /><br />So what could replace Notepad? Why, <a href="http://www.flos-freeware.ch/notepad2.html">Notepad2</a> of course! To be fair, there are more powerful editors out there than Notepad2, but it's free, light-weight and fast. Florian's Notepad2 supports line numbers, syntax highlighting, line highlighting, encodings, Unix/Windows line endings, transparency and much more. An extended version from Kai Liu is also <a href="http://code.kliu.org/misc/notepad2/">available here</a>, most notably including code folding abilities. Tabs are not supported in either version, unfortunately. <br /><br />My other favorite editor is <a href="http://www.ultraedit.com/">Ultraedit</a>, as it includes pretty much any feature you could ever want from an editor. A nice feature, for sysadmins in particular, is the ability to switch environments. The "System Administrator" view for example, allows you to show SSH/telnet/FTP windows along with the editor windows. &nbsp; <br /><br /><b>2. Command Prompt</b><br />Yeah, this hasn't changed much since the early days either, though the introduction of the PowerShell deserves some credit. Using Linux regularly though, I miss some of the features like tabs, transparency and so forth.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_wish_console2.png" src="http://www.eventlogblog.com/blog/blog_wish_console2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="562" width="709" /></span>The good news is, there is an excellent substitution out there called <a href="http://sourceforge.net/projects/console/">Console</a>. The latest beta of version 2 features transparency, multiple tabs, appearance options and is free. It's so free, that they even give you the source code if you want it! It works on all the machines I use (mostly Vista, soon to be Win7) and I'm very happy with it overall - though it is a beta still and you might run into a glitch every now and then. I sit around in the command line a lot, and having multiple tabs open is nice. <br /><br />One option I really like is the ability to show the currently executing command as the tab title, which is useful because you can see when a long-running process finishes (see screenshot above where fping is running in the 2nd tab).<br /><br />When downloading, get the latest beta and simply extract all files from the<br /><br />Console2\bin\release<br /><br />folder to a directory of your choice.<br /><br /><b>3. Desktops / Spaces</b><br />Linux, and Unix, had multiple desktops since the industrial revolution. Well, at least it seems that way. I'm not sure why this hasn't been added to Windows yet, given that:<br /><br />•&nbsp;&nbsp; &nbsp;Every major Operating System OTHER than Windows includes it<br />•&nbsp;&nbsp; &nbsp;Microsoft provides a tool (part of <a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx">Sysinternals</a>) that offers this functionality<br /><br />Yes, in the age of affordable large monitors, multiple desktops aren't really that necessary anymore. But, many of us still work on laptops and having multiple virtual desktops can help group different work into different workspaces.<br /><br />I recommend <a href="http://technet.microsoft.com/en-us/sysinternals/cc817881.aspx">Sysinternals' Desktops</a>, but there are more tools out there that do the same thing - though they are not all free.<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_wish_desktops.png" src="http://www.eventlogblog.com/blog/blog_wish_desktops.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="282" width="357" /></span><b>4. Launchy</b><br />It indexes all of your applications in the start menu, and you can simply launch them by typing their name - or part of their name. No longer do you have to wade through dozens and dozens of menu items just to find a shortcut. Simply launch <a href="http://www.launchy.net/">Launchy</a> with ALT+SPACE and type a couple of letters. Voila!<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="blog_wish_launchy_eventsentry.png" src="http://www.eventlogblog.com/blog/blog_wish_launchy_eventsentry.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="145" width="300" /></span><b>5. PuTTY</b><br />If you work with Windows and UNIX/Linux machines, then it's pretty much impossible that you haven't heard of <a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/">PuTTY</a>. It's a free SSH client that no only provides SSH/Telnet functionality, but also comes with other SSH-related utilities like <a href="http://the.earth.li/%7Esgtatham/putty/0.60/htmldoc/Chapter5.html#pscp">PSCP</a>, <a href="http://the.earth.li/%7Esgtatham/putty/0.60/htmldoc/Chapter7.html#plink">PSFTP</a> and <a href="http://the.earth.li/%7Esgtatham/putty/0.60/htmldoc/Chapter7.html#plink">PLINK</a> (<a href="http://www.eventlogblog.com/blog/2007/12/plink-or-issuing-ssh-command-o.html">see previous post on this</a>).<br /><br />I'd love it if Windows would ship with a command-line SSH client, just like all UNIX and Linux distributions do.<br /><br /><br />Of course there is more, but these are the tools "desktop" that we really use on a daily basis.<br /><br />If your computers are in an Active Directory domain and you want to roll out some of these tools with your computers by default, then I recommend reading our previous post: <a href="http://www.eventlogblog.com/blog/2008/09/keeping-your-tools-handy.html">Your favorite tools and utilities always available everywhere</a>.<br /><br /><br />What do you want for nothing?<br /><br />Rubber Biscuit?<br /><br /> ]]></description>
            <link>http://www.eventlogblog.com/blog/2009/08/wish-sandwich---5-tools-we-wis.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/08/wish-sandwich---5-tools-we-wis.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">favorite tools windows editor command line putty console launchy</category>
            
            <pubDate>Thu, 13 Aug 2009 06:53:20 -0600</pubDate>
        </item>
        
        <item>
            <title>Firefox .NET Framework Assistant Paranoia</title>
            <description><![CDATA[There has been a lot of concern and uproar recently about the .NET Framework Assistant Firefox Add-On (plug-in), that Microsoft silently installs with the <a href="http://support.microsoft.com/kb/951847">Microsoft .NET Framework 3.5 Service Pack 1</a> (which was pushed in early 2009 with Windows Update). As such, if you are using Firefox, then there this is a very high probability that you have this Firefox Add-On installed, maybe even without knowing it.<br /><br />To quote Microsoft: "In the .NET Framework 3.5 SP1, the <b>.NET Framework Assistant</b> enables
Firefox to use the ClickOnce technology that is included in the .NET
Framework."<br /><br />There are dozens of blogs that complain about the security implications, how the Add-On cannot be uninstalled and eventually post instructions on how to remove the Add-On from your computer, essentially implying that the AddOn harbors major security risks. Contrary to most Firefox Add-Ons, this one can't be uninstalled through the browser since it was installed at the "computer  level". As such, you have to remove files from the file system and modify the Firefox configuration to disable it.<br /><br />I'd have to admit that I haven't heard much about the <a href="http://msdn.microsoft.com/en-us/library/wh45kb66.aspx">ClickOnce</a> technology before this sneaky little AddOn was set free, and the buzz words one reads in all the blogs, newspapers etc. certainly have the potential to make one uneasy and follow the surgical removal procedure without much hesitation:<br /><br /><ul><li>Microsoft installs .NET AddOn without user approval!</li><li>AddOn can't be uninstalled</li><li>AddOn silently runs .NET applications without user knowledge!</li><li>ActiveX security hell is back!<br /></li></ul>So is the AddOn a security risk and do you have scramble to rip it out? Not in my opinion, and I will explain why.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="aa_FireFox_NetFrameworkAssistant_addon_1.jpg" src="http://www.eventlogblog.com/blog/aa_FireFox_NetFrameworkAssistant_addon_1.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="90" width="494" /></span>In this post I will clear up some misconceptions about the <a href="http://msdn.microsoft.com/en-us/library/wh45kb66.aspx">ClickOnce</a> technology, but also show you how to remove the AddOn from any number of computers with a few clicks - using our new <a href="http://www.autoadministrator.com/">AutoAdministrator</a> 2.0 - just in case you do want to rip it out :-).<br /><br />What most people don't know, is that the ClickOnce "technology" is already present in Internet Explorer, and is not even close to what was/is possible with ActiveX applets.<br /><br />ClickOnce applications run in a sandbox, similar to Java, and - by default - do not have any permission outside the sandbox. As such, a web site can't just install a trojan horse or spam client on your computer - at least not using ClickOnce. The users permission is asked before elevated permissions are assigned to the application, and software that's being installed can be signed - just like Windows applications are. Please see the Microsoft article below for more information on ClickOnce deployment and security:<br /><br /><a href="http://msdn.microsoft.com/en-us/library/76e4d2xw%28VS.80%29.aspx">ClickOnce Deployment and Security</a><br /><br />So the AddOn is really just a gateway into something that is already on your system in the first place - .NET.&nbsp; Java does the same thing, and the AddOn Microsoft provides is likely much leaner than the Java plugins - and doesn't register a new plugin with every new Java update that is released.<br /><br />Don't get me wrong - Microsoft could have handled this much better, and the inability to uninstall the AddOn really doesn't help their case.<br /><br />Oh, and by the way, to see a sample ClickOnce application then you can <a href="http://www.softwarepunk.com/clickonce/tester/deploy/publish.htm">click here</a>. It's hosted by the author of the <a href="http://www.softwarepunk.com/ffclickonce/">FFClickOnce</a> Firefox AddOn, a predecessor of the .NET Framework Assistant if you will.<br /><br />However, Microsoft has recently provided information on their site that outlines the required steps to remove the Add-In from Firefox, and has also released an update that will allow you to uninstall it on a per-user basis. Keep in mind that even with this update, every user would have to uninstall the Add-On manually:<br /><br /><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cecc62dc-96a7-4657-af91-6383ba034eab&amp;displaylang=en">Update to .NET Framework 3.5 SP1 for the .NET Framework Assistant 1.0 for Firefox</a><br /><br />Having said all that, you might still want or have to remove the AddOn from multiple computers if you need to remove the ability for your users to run ClickOnce applications from Firefox. The good news is that you can remove all files as well as all registry entries that are associated with this Add-On from any number of computers within a matter of minutes -- using <a href="http://www.autoadministrator.com/">AutoAdministrator</a>.<br /><br />AutoAdministrator integrates with ActiveDirectory, and lets you query/modify files, services, registry entries and more on any number of computers with the click of a few buttons. Read on to find out more.<br /><br />Microsoft states that you need to <a href="http://blogs.msdn.com/brada/archive/2009/02/27/uninstalling-the-clickonce-support-for-firefox.aspx">perform three steps</a> to remove the Add-On (<a href="http://support.microsoft.com/?kbid=963707">official removal instructions - KB963707</a>):<br /><br />1. Delete the registry key <b>HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Firefox\Extensions\{20a82645-c095-46ed-80e3-08825760534b}</b><br /><br />2. In the Firefox preferences (about:config), right-click the <b>general.useragent.extra.microsoftdotnet</b> property and select "reset".<br /><br />3. Delete the folder <b>%SYSTEMDRIVE%\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension\DotNetAssistantExtension</b>.<br /><br />We can accomplish <b>(1)</b> and <b>(3)</b> with AutoAdministrator, which does remove the Add-On. It doesn't reset the setting inside Firefox (2), but that should be merely a formality without the actual plug in. Our tests have shown that the plug in is gone after deleting the registry key and the directory on the file system.<br /><br />There are two prerequisites for this to work: Your remote machines need to have the remote registry service running (you can temporary toggle that too with AutoAdministrator if it's not running!) and the ADMIN$ share needs to exist.<br /><br /><b>As with all things you can do with AutoAdministrator, you should be very careful. We cannot take any responsibilities if you end up corrupting your Firefox installations, or worse, the Windows OS.<br /></b><br />So, fire up AutoAdministrator and select the computers you want to uninstall the pesky Add-On from in the right pane. Then, select "Registry" from the toolbar and paste the key from step one in there and select "Delete key".<br /><br /><span class="mt-enclosure mt-enclosure-image"><a href="http://www.eventlogblog.com/blog/aa_FireFox_NetFrameworkAssistant_Registry.html" onclick="window.open('http://www.eventlogblog.com/blog/aa_FireFox_NetFrameworkAssistant_Registry.html','popup','width=1130,height=639,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/aa_FireFox_NetFrameworkAssistant_Registry-thumb-800x452.jpg" alt="aa_FireFox_NetFrameworkAssistant_Registry.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="452" width="800" /></a></span>The screen shot above shows the result list, using the "Read Value" option. To actually delete the key, you would need to select "Delete key". Machines that are turned off are displayed as "Ping Failure: ...", and machines that don't have the Add-On installed show a Windows API error message.<br /><br />When you are doing ripping the registry settings out, you can delete the folder as well. This time, select "File Management" from the toolbar, and paste the directory in there. Note that the remote path should start with ADMIN$, as shown in the screen shot below:<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="aa_FireFox_NetFrameworkAssistant_Folder.jpg" src="http://www.eventlogblog.com/blog/aa_FireFox_NetFrameworkAssistant_Folder.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="329" width="291" /></span>You can also save these settings as a <a href="http://www.netikus.net/software/autoadministrator/runningautoadministrator.htm">preset</a>, so that you can retrieve these settings at any point in the future with the click of a button.<br /><br /><br />I hope this information helps you make an informed decision as to how to proceed with the AddOn if it's already installed in your network. You can<br /><br /><ol><li>Leave it</li><li>Give your users instructions on how to disable it</li><li>Roll-out the Microsoft patch to give your users the ability to uninstall it ( arguably identical to (2) )</li><li>Remove it from all systems with AutoAdministrator or scripts</li></ol>I think if this exercise reveals anything, then it's that Firefox's AddOn framework leaves some room for improvement. For example, why did Firefox not inform me that this AddOn had been installed? Skype also silently installs an AddOn, though that can be removed easily.<br /><br />And if you're really serious about browser security, then you might want to check out the <a href="https://addons.mozilla.org/en-US/firefox/addon/433">Flashblock AddOn</a>. It disables all flash animations by default, leaving placeholders that you can click to load any flash animation. This improves page load times, can help suppress annoying flash-based ads and of course helps security. I haven't tested it on many sites yet, but it can quickly get annoying if you're accessing a lot of web sites that contain reporting widgets that are flash-based.<br /><br /><br />So long,<br />Ingmar.<br />]]></description>
            <link>http://www.eventlogblog.com/blog/2009/06/firefox-net-framework-assistan.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/06/firefox-net-framework-assistan.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">AutoAdministrator</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Mozilla Firefox .NET Framework Assistant Removal Security Exploit</category>
            
            <pubDate>Fri, 05 Jun 2009 10:09:58 -0600</pubDate>
        </item>
        
        <item>
            <title>Auditing Changes to Microsoft SQL Server Database Tables</title>
            <description><![CDATA[Database servers store massive amounts of data, often including sensitive information. It is not uncommon for there to be databases holding millions of rows of data, where a small subset of rows are considered critical or sensitive. This could be anything from a Social Security number to an EventSentry entry of a security event. Being notified when existing data in your database changes is crucial for log data, and can be accomplished by using triggers with Microsoft SQL Server.<br /><br />For those of you not familiar with triggers, a database trigger executes code in response to events on a table or database. Triggers are essentially hooks into a table, and they usually execute SQL statements as a response to another SQL statement. <br /><br />Since we love the windows event log, we'll take advantage of SQL Server's ability for triggers to log an event to the event log when a row in a table is modified. This allows us to not only log that activity, but also get notified immediately when suspicious or important activity occurs in the EventSentry database.<br /><br />In EventSentry, we have a table named ESEventlogMain that stores Windows event information. This table constantly gets new data inserted into it, and it often gets purged as well to manage the size of the database. However, there is no reason this data should ever be modified. If it is, then we know that something is amiss and we want to trigger an event in the event log. It is also useful to know what account made that change.<br /><br />The first step is to create the message in SQL. You can use this SQL statement to create it:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; <font face="Courier">sp_addmessage 80000, 10, 'Data Integrity Alert: %s', @with_log = TRUE
</font>

<br /><br />The first argument is a unique SQL server message ID that should be 50001 or higher, you can delete it again using <a href="http://msdn.microsoft.com/en-us/library/aa933294%28SQL.80%29.aspx">sp_dropmessage</a>. The number 10 is the severity level, but you can read more about the different options for sp_addmessage <a href="http://msdn.microsoft.com/en-us/library/ms178649.aspx">here</a>.<br /><br />Now we create the trigger that will use this message:<br /><br /><blockquote>
<font face="Courier">
CREATE TRIGGER Trigger_ESEventlogMain_Modified ON<br />ESEventlogMain<br />FOR UPDATE<br />AS<br /><br />IF UPDATE(eventmessage) OR UPDATE(eventid) OR UPDATE(eventtime) OR UPDATE(eventcomputer)<br />BEGIN<br /><br />&nbsp;&nbsp;&nbsp;&nbsp; DECLARE @Msg VARCHAR(8000)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">DECLARE @EventNumber INT<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">DECLARE @EventID INT<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">DECLARE @Computer VARCHAR(255)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">DECLARE @EventMessageOld VARCHAR(8000)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">DECLARE @EventMessageNew VARCHAR(8000)<br /><br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @EventNumber = (SELECT eventnumber from deleted)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @EventID = (SELECT eventid from deleted)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @Computer = (SELECT A.eventcomputer from ESEventlogComputer as A, deleted as B WHERE A.id = B.eventcomputer)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @EventMessageOld = (SELECT eventmessage from deleted)<br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @EventMessageNew = (SELECT eventmessage from inserted)<br /><br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">SET @Msg = 'ESEventlogMain modified by ' + CONVERT(VARCHAR(20), USER_NAME(USER_ID())) + ' at ' + CONVERT(VARCHAR(20), GETDATE()) + '. Computer: ' + @Computer + ', Event ID: ' + CONVERT(VARCHAR(8), @EventID) + ', Event Number: ' + CONVERT(VARCHAR(16), @EventNumber) + ', EventMessage (old) =' + @EventMessageOld + ', EventMessage (new) = ' + @EventMessageNew<br /><br /></font><font face="Courier">&nbsp;&nbsp;&nbsp;&nbsp; </font><font face="Courier">RAISERROR( 80000, 10, 1, @Msg)<br />END</font><br /></blockquote><br />This creates a trigger which will generate an event when the <b>eventmessage</b> column in the <b>ESEventlogMain</b> table is modified. You can remove the "IF UPDATE(eventmessage) ..." clause (as well as the BEGIN &amp; END statements) if you want to be notified of any changes to that table, this might however create some noise since acknowledging events will also perform an UPDATE on this table.<br /><br />FYI: "deleted" and "inserted" are keywords that refer to either the old
record that was updated (=deleted) or the new data (=inserted).<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="dbtriggers_event.jpg" src="http://www.eventlogblog.com/blog/dbtriggers_event.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="269" width="548" /></span>As you can see from the screen shot above, the message text from a logoff event was renamed to "Trigger Test". So now that the event is in the event log, we can set up a filter in EventSentry to alert us:<br /><div><br /><span class="mt-enclosure mt-enclosure-image"><img alt="trigger_filter.png" src="http://www.eventlogblog.com/blog/2009/05/15/trigger_filter.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="486" width="538" /></span>Events generated from triggers always have the event id <b>17061</b>, so it's a good idea to restrict the filter further using the "Content Filter" field. From now on, when the ESEventlogMain table is modified, we will get an entry in the event log as well as an email.<br /></div><div><br /></div><div>Just remember that any database administrator can delete or modify triggers, so it's crucial that you keep dba access to your database as restricted as possible.<br /><br />Please see the <a href="http://www.netikus.net/software/eventsentry/index.html?targetsodbctablerelationships.htm">Table Relationships</a> topic in the <a href="http://www.netikus.net/software/eventsentry/index.html">EventSentry help file</a> for more information on the database tables used by <a href="http://www.eventsentry.com/">EventSentry</a>.<br /></div><div><br /><br />Best,<br />Tames, Ingmar + Ryan.<br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2009/05/auditing-changes-to-mssql-data.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/05/auditing-changes-to-mssql-data.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Event Log</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">MSSQL database auditing</category>
            
            <pubDate>Fri, 15 May 2009 12:11:21 -0600</pubDate>
        </item>
        
        <item>
            <title>Running Linux applications on Windows - over the network with Xming</title>
            <description><![CDATA[<p>I always find it interesting to
see clothes and accessories that were in fashion 30 years ago, make it back
into the mainstream. It seems like the computer industry also goes in cycles
every now and then.</p>

<p>Back in the early days of
computing – before the dawn of the glorious PC era – there were few powerful
servers that were accessed by dumb terminals. The emergence of the IBM PC
changed all that and eventually led to the rich clients that most of us have
under our desks today. The traditional PC desktop however causes quite a bit of
management overhead – especially in large organizations – which appears to be
leading to the re-emergence of “dumb” terminals that access a powerful – well –
terminal server. Only this time we have a fancy user interface.</p>

<span class="mt-enclosure mt-enclosure-image"><a href="http://www.eventlogblog.com/blog/xming_terminal_vt100.html" onclick="window.open('http://www.eventlogblog.com/blog/xming_terminal_vt100.html','popup','width=800,height=650,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/xming_terminal_vt100-thumb-800x650.jpg" alt="xming_terminal_vt100.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="650" width="800" /></a></span>





<span class="mt-enclosure mt-enclosure-image"><img alt="xming_xdm.jpg" src="http://www.eventlogblog.com/blog/xming_xdm.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="396" width="414" /></span>



<p><o:p></o:p>If you have worked with Unix-like
operating systems before, then you’re probably familiar with the <a href="http://en.wikipedia.org/wiki/X_Window_System">X windows
system</a>, though most people don’t know about the X Windows system’s (from now on referenced to as X11) <a href="http://www.faqs.org/docs/Linux-HOWTO/XWindow-Overview-HOWTO.html">network
transparency</a>. In essence, you can <b style="">run</b>
an application on host <b style="">A</b>, but
actually display and interact with the application on host <b style="">B</b>. Furthermore, you can actually utilize X11 to remotely log into a
host running X11 without the need to install additional software on that host –
provided that X11 is configured to support this. The screenshot below shows this a bit better.So what does this mean in
practice? You can install a resource-hungry application on a dedicated and
powerful Linux host, yet run and execute the application on a different, less
powerful Linux machine – even if that machine is not even running Linux. What’s
even better is that those remote applications appear just like any other
application on your desktop. Citrix calls this “application publishing”, and
Microsoft introduced “TS RemoteApp” with the Windows Server 2008 platform. Yet,
X Windows has offered this functionality for decades - from the very start.<br /></p>

<p>But what makes this feature
really interesting for us windows admins (or Unix admins that, for whatever reason, have to use a Windows workstation), is the fact that you can install an X
server on your windows machine and run Linux applications “natively” on it
– thanks to the open-source project <a href="http://www.straightrunning.com/XmingNotes/">Xming</a>).</p>

<p>Xming, according to the project
web site, is the “<i style="">leading free unlimited
X Window Server for Microsoft Windows® (XP/2003/Vista)</i>”. There have been
security concerns in the past when using X11 remotely, but by tunneling X11
traffic through SSH, Xming is actually quite secure and doesn’t usually require
any configuration changes on the host running X11 (phew!).</p>

<p>When tasked with either cross-platform
system administration or development, the discovery of Xming opens up a door of
possibilities. For example, you can edit remote configuration files
conveniently by running your favorite Linux editor on your Windows desktop, or
run a terminal like gnome-terminal. Why run a terminal through X-Windows when
you can just use an SSH app like <a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/">PuTTY</a>? For one thing, you can launch GUI
applications directly from the terminal (e.g. ‘gedit &amp;’) on your Windows
desktop. Of course, you can also play a <a href="http://techgage.com/article/top_10_free_linux_games/">Linux game</a> on Windows that way.</p>

<p>If you’re a cross-platform
developer, then you can execute a Linux/Unix development studio (e.g. eclipse)
on your Windows box – and it appears just like any other Windows app. And since
it’s technically running on the Linux box, compiling on your Windows app really
compiles it on the remote platform (e.g. Linux). The responsiveness of applications is also quite good, at least over an Ethernet connection.<br /></p>

<p>This technique also works for
multiple end users, so it’s also possible to connect to one Linux machine from
multiple Windows machines and run Linux apps. The Linux machine really acts
like a terminal server in this case.</p>

<p>Let’s look at how to run a Linux
app on a Windows desktop. I used Ubuntu 8.10 and installed Xming on a Vista laptop. So, download &amp; install the following Xming
packages from <a href="http://sourceforge.net/project/showfiles.php?group_id=156984">http://sourceforge.net/project/showfiles.php?group_id=156984</a>:</p><ul><li>

Xming</li><li>Xming-fonts</li></ul>Then, start <a href="http://www.straightrunning.com/XmingNotes/IDH_PROGRAM.htm">XLaunch</a> from the
start menu and select the following options:<br /><o:p>&nbsp;</o:p>

<ol style="margin-top: 0in;" start="1" type="1"><li class="MsoNormal" style="text-align: justify;">Multiple Windows</li><li class="MsoNormal" style="text-align: justify;">Start a program</li><li class="MsoNormal" style="text-align: justify;">Start program: Enter the application you want to
     launch there. E.g. <i style="">gnome-terminal,
     gedit, mahjongg</i> or whichever remote application you want to run
     “locally”</li><li class="MsoNormal" style="text-align: justify;">Run remote – using PuTTY: Select this option and
     specify the computer name, user name and password.</li><li class="MsoNormal" style="text-align: justify;">On the next step, simply leave the default options in
     place, click “Next” and “Finish”.</li></ol><br /><span class="mt-enclosure mt-enclosure-image"><img alt="xming_xlaunch.png" src="http://www.eventlogblog.com/blog/xming_xlaunch.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="396" width="513" /></span><br />



<p class="MsoNormal" style="text-align: justify;"><o:p></o:p>You should now have a little X
icon on the tray, and the application you selected should be running on your
desktop. The screenshot below shows gnome-terminal and gnome-text-editor
running on my <st1:place w:st="on">Vista</st1:place> machine.</p><p class="MsoNormal" style="text-align: justify;"><br /></p><span class="mt-enclosure mt-enclosure-image"><a href="http://www.eventlogblog.com/blog/xming_desktop.html" onclick="window.open('http://www.eventlogblog.com/blog/xming_desktop.html','popup','width=1440,height=900,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.eventlogblog.com/blog/xming_desktop-thumb-800x500.jpg" alt="xming_desktop.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="500" width="800" /></a></span>



<p class="MsoNormal" style="text-align: justify;"><o:p></o:p>Xming uses plink.exe (see also: <a href="http://www.eventlogblog.com/blog/2007/12/plink-or-issuing-ssh-command-o.html">http://www.eventlogblog.com/blog/2007/12/plink-or-issuing-ssh-command-o.html</a>)
internally to execute apps, whose display is then redirected to our local Windows
client, on the remote host. You can also save these settings in a configuration file and create a shortcut on your desktop or start menu.<br /></p>

<p>If the <a href="http://en.wikipedia.org/wiki/XDMCP">XDMCP</a> protocol is enabled
on the Linux/Unix host (disabled by default on most distributions for security
reasons), then you can log into the remote host for a complete remote session
similar to VNC or other remote desktop applications. But again, keep in mind
that XDMCP transmits data in clear text over the wire (using both TCP and UDP),
and as such is an insecure protocol that should only be enabled in trusted
networks. To log in remotely with Xming, select the following options after
starting XLaunch:</p><ul><li>

One Window</li><li>Open session via XDMCP</li><li>Specify the remote host name<br /></li></ul><br /><span class="mt-enclosure mt-enclosure-image"><img alt="xming_xlaunch_xdmcp.png" src="http://www.eventlogblog.com/blog/xming_xlaunch_xdmcp.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="396" width="513" /></span>One last tip regarding Xming: If, at some point down the line, you are unable to launch remote apps on your desktop, even though the X tray icon from Xming is present, then try to reset the X server by right-clicking the tray icon and choosing "Exit".<br /><br />Well, I hope this gives you a
starting point and helps ease the pain when maintaining heterogeneous network
environments.<br /><br /><br />Until next time,

<br />Ingmar.
]]></description>
            <link>http://www.eventlogblog.com/blog/2009/04/running-linux-applications-on.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/04/running-linux-applications-on.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Miscellaneous</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Windows Linux Unix X11 Remote Application XMing</category>
            
            <pubDate>Sun, 19 Apr 2009 08:19:10 -0600</pubDate>
        </item>
        
        <item>
            <title>Finding a crashing TAPI driver and re-organizing svchost.exe</title>
            <description><![CDATA[<p>We recently had to troubleshoot an interesting problem on a Windows XP workstation that had just been recently installed. There was nothing unusual about that computer: It was a member of a domain, had all the latest patches, AntiVirus software and of course the <a href="http://www.eventsentry.com/">EventSentry</a> agent installed.<br /><br />What happened daily was this: The computer would boot up ok without any problems, but at some point several windows-related error messages would be emailed to us by <a href="http://www.eventsentry.com/">EventSentry</a>, after which remote access (with the exception of a basic ping) to the computer was impossible. This made troubleshooting this problem particularly difficult since it was located in a remote location. The user of that workstation never actually reported any problems, but the wealth of error message we received from the event log confirmed that something was wrong on that computer. And, since we believe in preventative maintenance, we decided to take a look and get to the bottom of it.<br /><br />Further investigation of the computer showed that a number of critical services (e.g. Server service) would be stopped a couple of hours after the computer had booted, explaining why we couldn't access the computer remotely anymore. Of course we didn't yet know why these services were stopping.<br /><br />We briefly considered re-installing the computer in question, but since it had just recently (less than a month ago) been installed, the problem would probably just re-surface again later. Any search for malware also didn't yield anything.<br /><br />At this point I started to review the event log history of the computer in more detail through the <a href="http://www.eventsentry.com/features/REPORTS">EventSentry Web Reports</a>. Since we were collecting event logs from that computer (which worked well, even when we couldn't access it remotely), viewing and searching for events was fast and easy (even though the computer was across a WAN and essentially unreachable).<br /><br />I didn't expect to find much (critical events had already been emailed to us), but I browsed through the application and system event logs anyway and came across an interesting event:<br /><br />
<font face="Courier New">
Event Log:&nbsp;&nbsp;&nbsp; Application<br />Event Type:&nbsp;&nbsp; Error<br />Event Source: Application Error<br />Event ID:&nbsp;&nbsp;&nbsp;&nbsp; 1000<br />Message: Faulting application svchost.exe, version 5.1.2600.5512, faulting module <b>xxTSP3x.tsp</b>, version 1.0.0.1, fault address 0x000f1528.
</font>
<br /><br />Even though this was an error event, we didn't actually receive it via email since we had earlier decided to exclude all "Application Error" events - due to the overwhelming noise that various crashing executables on workstations usually generate.<br /><br />Svchost.exe is a <a href="http://support.microsoft.com/kb/314056">generic host process</a>, and Windows XP (and later) run multiple services as part of a single svchost.exe process. On Vista for example, a single svchost.exe process might host as many as 18 services - all part of a single process. Windows usually runs multiple svchost.exe processes, all "hosting" one or more services. This makes troubleshooting problems with the svchost.exe process somewhat difficult, since a faulting svchost.exe process can potentially point to dozens of services. My Vista machine runs 67 services inside only 16 svchost.exe processes. Using the <a href="http://technet.microsoft.com/en-us/library/bb491010.aspx">tasklist.exe</a> command, you can list all running svchost processes as well as the services running inside each of them:<br /><br />

<font face="Courier New">
<b>tasklist /SVC /FI "IMAGENAME eq svchost.exe"</b><br /><br />Image Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID Services<br />========================= ======== ============================================<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 912 DcomLaunch, PlugPlay<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1008 RpcSs<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1072 WinDefend<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1148 Audiosrv, Dhcp, Eventlog, lmhosts, wscsvc<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1180 AudioEndpointBuilder, CscService, hidserv,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Netman, PcaSvc, SysMain,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TabletInputService, TrkWks, UxSms,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WdiSystemHost, Wlansvc, WPDBusEnum, wudfsvc<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1216 AeLookupSvc, BITS, Browser, EapHost,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IKEEXT, iphlpsvc, LanmanServer, MMCSS,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProfSvc, RasMan, Schedule, seclogon, SENS,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SharedAccess, ShellHWDetection, Themes,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Winmgmt, wuauserv<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1364 gpsvc<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1480 EventSystem, FDResPub, LanmanWorkstation,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netprofm, nsi, SSDPSRV, SstpSvc, TBS,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; upnphost, W32Time, WebClient<br /><b>svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1600 CryptSvc, Dnscache, KtmRm, NlaSvc, <u>TapiSrv</u>,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TermService</b><br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1872 BFE, DPS, MpsSvc<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 856 BthServ<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2228 Net Driver HPZ12<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2280 Pml Driver HPZ12<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2304 PolicyAgent<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2364 stisvc<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2788 WerSvc</font><br /></p><p><br />Note that the grouping of services varies from OS to OS - Windows Server 2003 combines different services than Windows XP does for example.<br /><br />Back to our problem, the error event fortunately contains additional information, such as the module where the process crashed: <b>xxTSP3x.tsp</b>. If you are a bit familiar with <a href="http://msdn.microsoft.com/en-us/library/ms733433%28VS.85%29.aspx">TAPI</a>, the Microsoft Telephony API, then you might know that files with the .tsp extension are <a href="http://msdn.microsoft.com/en-us/library/ms725514%28VS.85%29.aspx">TAPI Service Providers</a>, essentially drivers that communicate directly with the phone hardware. Bingo - it was a problem with that TSP driver that caused the svchost.exe process to fail, which in turn killed all other services that run inside that same process. On a Vista machine for example, a crashing Telephony (tapisrv) service would mean that the <b>CryptSvc, Dnscache, KtmRm, NlaSvc, TapiSrv and TermService</b> would all terminate. What solitarity.<br /><br />Coincidentally, the computer(s) in question where running a VoIP application that was utilizing this TSP driver, and was in fact having problems. No kidding you might say, if the underlying driver crashes. Fortunately we were able to get an update from the developers which ultimately resolved this problem.<br /><br />Now, I couldn't help but wonder whether I could change the grouping of services. Let's just pretend that we wouldn't have been able to get an update for the driver quickly and would need to isolate the Telephony service, so that a crash of a TSP driver wouldn't affect the LanmanServer service (on XP the Telephony service is in a group with most critical system services, something that was changed in Vista). All I would have to do was create a new group that would only include the telephony service, and finally change the telephony service itself to point to that group. Turns out that this is possible!<br /><br />As always, you might want to <b>backup any registry keys</b> that you modify before you make such substantial changes like the ones listed below:<br /><br /><b>1. Create a new svchost group called Telephony</b><br /></p><ul><li>Open regedit and navigate to HKLM\Software\Microsoft\Windows NT\CurrentVersion\svchost.</li><li>Create a new Multi-string value (REG_MULTI_SZ) with a descriptive name, I will use <b>telephony</b> in our example.</li><li>Associate the <b>Tapisrv</b> service with that group, so add that as the only value.</li><li>Find the existing group that is hosting this service (<b>netsvcs</b> on Windows XP), and remove <b>Tapisrv</b> from that list.</li><li>Create a new subkey with the name of the group (<b>telephony</b>)</li><li>Add the same values to this new key as are present from the original group. In our case I added two REG_DWORD values:<br /><br />AuthenticationCapabilities = 12320<br />CoInitializeSecurityParam = 1</li></ul><b>2. Change the service to utilize the telephony group</b><br />Now that the group has been created, we can change the service itself to point to the new svchost group. In the registry editor, navigate to <b>HKLM\System\CurrentControlSet\Services\TapiSrv</b> and edit the <b>ImagePath </b>value. Change it from<br /><br />
<font face="Courier New">
%SystemRoot%\System32\svchost.exe -k <b>netsvcs</b>
</font>
<br /><br />to<br /><br />
<font face="Courier New">
%SystemRoot%\System32\svchost.exe -k <b>telephony</b>
</font>
<br /><br />Note that we are changing the value that is passed through the -k parameter to reflect the name of the svchost group that we created earlier.<br /><br />I rebooted the computer after the change, though this is probably not even be necessary. Voila, the telephony service now runs in its own svchost.exe process.<br /><br />
<font face="Courier New">
Image Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID Services<br />========================= ====== =============================================<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 916 DcomLaunch, TermService<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1000 RpcSs<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1092 AudioSrv, BITS, Browser, CryptSvc, Dhcp,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dmserver, ERSvc, EventSystem, helpsvc,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LanmanServer, lanmanworkstation, Netman,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Nla, Schedule, seclogon, SENS, SharedAccess,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ShellHWDetection, srservice, Themes, TrkWks,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; W32Time, winmgmt, wuauserv, WZCSVC<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1180 Dnscache<br />svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1292 LmHosts, RemoteRegistry, SSDPSRV, WebClient<br /><b>svchost.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2412 <u>TapiSrv</u></b>
</font>
<br /><br />
I wouldn't recommend making too many changes to these built-in groupings unless you have a particular problem to solve, or want to ensure that potentially unstable or vulnerable services are isolated.<br /><br />Well, thanks to <a href="http://www.eventsentry.com/">EventSentry</a> we got critical errors emailed to us, and were able to review the event logs even when those computers where unreachable - speeding up the troubleshooting process significantly. And, with a little research, I learned a bit more about the svchost.exe process and how to tweak the default Windows setup in that regard.<br /><br /><br />Hope this was helpful,<br />Ingmar.<br />]]></description>
            <link>http://www.eventlogblog.com/blog/2009/03/troubleshooting-svchostexe.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/03/troubleshooting-svchostexe.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">isolate svchost.exe tapi consolidate events</category>
            
            <pubDate>Fri, 13 Mar 2009 23:07:58 -0600</pubDate>
        </item>
        
        <item>
            <title>Cleaning up Disk Space and automatic fragmentation reports via email</title>
            <description><![CDATA[Even though disk storage is cheaper and faster than ever, for some reason I still run into disk space problems on occasion. The most common disk space problems I run into is a full C drive (why would you need more than 4Gb for the OS?) or a database that grows too large.<br /><br />We have found and utilized several tools over the past years and I am going to share some of my approaches to quickly identify space hogs, free up disk space and deal with fragmentation.<br /><br />Once a machine is low on disk space one will usually want to find out which files use up the most space and move them to a new volume or send them to data heaven for good. There are a lot of tools out there that visualize disk space consumption on a volume, but my favorite by far is <a href="http://windirstat.info/">Windirstat</a>. Windirstat uses a treemap which displays every file in a colored rectangle and was inspired by <a href="http://www.eventlogblog.com/mt/mt-static/html/kdirstat.sourceforge.net">KDirStat</a> from Linux (the original author really wants to make sure you know what the original is). The size of the rectangle is proportional to the file size, so you will either want to look for clusters of many small files (e.g. to spot lots of unneeded temp files) or for large rectangles to identify any files you might not need anymore. I find it incredibly easy to spot files that can be safely deleted with Windirstat. The screenshot below shows what Windirstat looks like on my Vista laptop with a 64Gb HD.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="Windirstat Screenshot" src="http://www.eventlogblog.com/blog/diskspace_windirstat.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="572" width="770" /></span>Of course, just running Windirstat alone doesn't mean that you will be able to find files that can be safely deleted. But once you have identified files that do occupy significant amounts of disk space, you can engage in research to determine whether these files can be compressed, moved or deleted. Usual candidates are the temporary files, pagefile, IIS log files, NTBackup temp files and temporary installer MSI files (more on that below).<br /><br />Windows will sometimes cache and leave installer files on your C drive, even when the application is no longer installed or has been upgraded. Depending on how long ago the OS was installed, this can be between a few hundred megabytes or nothing at all. You can delete those so-called "orphaned cached Windows Installer data files" with the msizap.exe utility, using the G command-line switch. Using msizap has been the last resort for me a few times, freeing up significant space on the C drive of servers when nothing else could be moved or deleted. Msizap is part of the <a href="http://msdn.microsoft.com/en-us/library/aa370834%28VS.85%29.aspx">Windows Installer 4.5 SDK</a> which can be downloaded from <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6A35AC14-2626-4846-BB51-DDCE49D6FFB6&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyId=6A35AC14-2626-4846-BB51-DDCE49D6FFB6&amp;displaylang=en</a>. The screenshot below shows msizap in action.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="Msizap Screenshot" src="http://www.eventlogblog.com/blog/diskspace_msizap.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="103" width="499" /></span>Now, after cleaning up all the space we'd want to defragment our drive as well, right? Disk defragmentation software has been around since MS-DOS, but people are still debating whether defragmentation software, especially commercial one, is worth the effort. It is sort of like taking multivitamins - it most likely doesn't hurt but there is no clear indicator that it cures diseases or makes you feel better after taking them.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="MS-Dos Defrag" src="http://www.eventlogblog.com/blog/diskspace_ms-dos_defrag.jpg" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="400" width="640" /></span>Some operating systems, most notably Linux and Mac OS X attempt to prevent fragmentation as much as possible and don't even include defragmentation software, but the Windows software market is awash with both free and commercial defrag software. If you are interested in learning more about fragmentation and its cause, then Wikipedia has an article about <a href="http://en.wikipedia.org/wiki/Defragmentation">defragmentation</a>.<br /><br />So is it worth it to use or invest in commercial defragmentation software? I think it depends. I have used various defragmentation programs over the last 10 years or so, and have seen one case where a MSSQL database on an extremely badly fragmented partition had became so slow that it was essentially unusable (yes, the database was for EventSentry :-) ). Defragging this partition with PerfectDisk solved the problem and the database was performing well after defragmentation. So yes, fragmentation can be bad if it gets out of control, though this is the only time I remember a defragmentation having such a significant impact. If you have a partition with little disk space available and lot write activity, then it will probably make sense to continuously defrag the partition to ensure optimal performance. Otherwise I think it is a luxury and will not yield significant disk performance benefits.<br /><br />You can also use the <b>-a</b> switch of the defrag.exe utility that ships with Windows to analyze a drive and get basic metrics as to whether the drive should be defragmented or not. However, if you have a lot of machines then running defrag.exe on all of them manually can be tedious, especially since you would need to do that on a regular basis (e.g. monthly). Fortunately, you can use <a href="http://www.eventsentry.com/">EventSentry</a>'s <a href="http://www.eventsentry.com/features/CUSTOMMONITORING">application scheduler</a> feature to automate this task in three simple steps (in this example we will focus only on the system drive). Since the application scheduler logs output from any command-line utility you run to the event log, we can actually get an email when Windows thinks that a drive is fragmented.<br /><br /><ol><li>Create an embedded script (e.g. DefragCheck.cmd) that runs "<b>defrag.exe %Systemdrive% -a -v</b>"</li><li>Create a system health package and add a new application scheduler object to it - making sure that both check boxes in regards to error levels are checked. Pick the embedded script @DefragCheck.cmd and schedule it to run. Everytime defrag.exe is executed, EventSentry will <a href="http://www.netikus.net/software/eventsentry/index.html?confighealthappschedulereventlog.htm">log an event to the event log</a> with the output of defrag.exe.<br /></li><li>Create a new event log package and add a filter that matches the events generated (Log=Application, Source=EventSentry, EventID=10200) and additionally looks for the string <b>*You should defragment this volume*</b>.<br /></li></ol>Voila - now you will get an email every time defrag.exe determines that a drive is fragmented - and <b>only </b>if it's fragmented.<br /><br />Defrag.exe is of course only one of the many utilities out there that can determine fragmentation, and you will likely get different results from different utilities. For example, it's very likely that defrag.exe tells you that a drive is not fragmented, when a different software (e.g. <a href="http://www.perfectdisk.com/">PerfectDisk</a>) will tell you otherwise.<br /><br />One scenario where you <b>definitely do NOT want to use defragmentation</b> software is on SSD drives, as they usually don't suffer from the same random access delays and defragging will reduce the lifespan of the drive.<br /><br /><br />Best,<br />Ingmar.<br />]]></description>
            <link>http://www.eventlogblog.com/blog/2009/02/cleaning-up-disk-space-defragm.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/02/cleaning-up-disk-space-defragm.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">cleanup diskspace schedule defragmentation</category>
            
            <pubDate>Wed, 11 Feb 2009 10:15:00 -0600</pubDate>
        </item>
        
        <item>
            <title>Announcing AutoAdministrator v2.0</title>
            <description><![CDATA[After launching version 2.90 of <a href="http://www.eventsentry.com/">EventSentry</a> just a few months ago, we're excited to announce yet another major software release coming from <a href="http://www.netikus.net/">NETIKUS.NET ltd</a> - <a href="http://www.autoadministrator.com/">AutoAdministrator v2.0</a>.<br /><br />The last update of the 1.x series was released more than four years ago, so we decided to completely re-build it from scratch and add all the features that have been requested by our users since the last release. The result is a powerful tool that makes it unbelievably easy to apply changes to remote workstations and servers. Whether a change or query needs to be applied to one or 100 computers makes little difference with AutoAdministrator.<br /><br />In a nutshell, AutoAdministrator lets you query or update a variety of Windows settings and services across any number of servers and/or workstations, without the need to create a script or perform the actions manually. Simply select the feature, computers (it integrates with Active Directory) and click start.<br /><br />Let's say, for example, that you needed to obtain or set the value of a registry entry across 30 machines. By just using regedit, it would probably take you a total of 15 minutes to connect, retrieve the value, and paste it to an editor/spreadsheet and move on to the next machine. The same task, using AutoAdministrator, could be done in as little as 1 minute.<br /><br />
<span class="mt-enclosure mt-enclosure-image"><img alt="aa_v20_1.jpg" src="http://www.eventlogblog.com/blog/aa_v20_1.jpg" class="mt-image-center" style="margin: 0pt auto 0px; text-align: center; display: block;" width="745" height="441" /></span>
<div align="center"><b><font style="font-size: 0.8em;">Querying the "Remote Registry" service status across multiple computers</font></b><br /></div>
<br />This is just one example of course, as AutoAdministrator can control services, read/set registry values, query file information, copy/delete files, manage passwords, shutdown/reboot, query logged on users, ping hosts and manage ODBC connections.<br /><br />As previously mentioned, AutoAdministrator integrates with ActiveDirectory, making it a breeze to manage computers that are part of a Windows domain. You can also pull computers from the Microsoft Windows Network or create custom groups to organize computers inside AutoAdministrator. If you need to connect to remote computers using alternate (administrative) credentials, then you can assign those credentials to any Active Directory OU, group or individual computer item.<br /><br />The update process itself is fully threaded, making it possible to push updates in a very short time, even to a large amount of computers.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="aa_v20_2.jpg" src="http://www.eventlogblog.com/blog/aa_v20_2.jpg" class="mt-image-center" style="margin: 0pt auto 0px; text-align: center; display: block;" width="282" height="459" /></span><div align="center"><b><font style="font-size: 0.8em;">File Management dialog, mirror / copy the <br />C:\Batch directory to remote computers<br /></font></b></div><b><font style="font-size: 0.8em;"><br /></font></b>Another new feature is the ability to create presets, making it a snap to repeat common tasks. Simply configure the feature (e.g. query service W3SVC), select the computers and save it as a preset. The next time you open AutoAdministrator, you can simply select the preset and click "Update".<br /><br />We think that AutoAdministrator is an incredible time-saver for anybody who manages more than 10 computers, whether they are servers or workstations.<br /><br />Here is a complete list of all features in the new AutoAdministrator:<br /><br /><font style="font-size: 1em;"><b>Ping</b></font><br />Ping computers to retrieve ping statistics.<br /><br /><b>ODBC</b><br />Query, copy or delete System DSNs on remote hosts.<br /><br /><b>Passwords</b><br />Verify, update or reset passwords of user accounts on remote hosts.<br /><br /><b>Shutdown / Reboot</b><br /><br />Shutdown, reboot or cancel a pending shutdown on remote hosts. You can optionally send a message as well.<br /><br /><b>Services</b><br /><br /><ul><li>Control any service (Query, start, stop, continue, pause, restart)</li><li>Change startup type (manual, automatic, disabled)</li><li>Remove service</li><li>Change Logon (service can be automatically restarted as well)<br /></li></ul><b><br />Registry</b><br /><br /><ul><li>Values: Read, add, delete and change</li><li>Keys: Add, delete</li><li>Copy entire keys to remote computers<br /></li></ul><br /><b>File Management</b><br /><br /><ul><li>Copy files and folders to remote computers</li><li>Delete files and folders from remote computers</li><li>Mirror local directories to remote computers</li></ul><br /><b>File Information</b><br /><br /><ul><li>Query remote files to retrieve its hash, size, attributes, modification time, version, company or description<br /></li><li>Remote files can be compared against a hash you provide</li></ul><br /><b>Logons</b><br /><ul><li>Show users that are currently logged on interactively to a computer</li><li>Count the number of users that are logged on (useful for terminal servers)</li></ul><br />The scheduled release date for AutoAdministrator is January 12th 2009, and you can request a trial then at <a href="https://www.netikus.net/products_trial_request.html">https://www.netikus.net/products_trial_request.html</a>. If you can't wait and would like to download the beta, then simply contact our support team at <a href="https://www.netikus.net/about_contact.html">https://www.netikus.net/about_contact.html</a>.<br /><br /><br />Happy New Year,<br />Ingmar.<br /><br /><div><br /></div><div><br /></div>]]></description>
            <link>http://www.eventlogblog.com/blog/2009/01/announcing-autoadministrator-v.html</link>
            <guid>http://www.eventlogblog.com/blog/2009/01/announcing-autoadministrator-v.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Announcements</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">AutoAdministrator</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">AutoAdministrator</category>
            
            <pubDate>Tue, 06 Jan 2009 10:46:44 -0600</pubDate>
        </item>
        
        <item>
            <title>EventSentry v2.90: Compliance Tracking for SOX, PCI, GLBA, HIPAA, FISMA, COBIT, ...</title>
            <description><![CDATA[This is round two in the new features available in EventSentry v2.90, and this time I'll be covering the new compliance features.<br /><br />Even though <a href="http://www.eventsentry.com/">EventSentry</a> was not originally designed to help with compliance, its event log consolidation capabilities made it an effective and economical solution to help our customers with their various compliance efforts throughout the years.<br /><br />But while being able to filter and search through security events is helpful, it is not enough to quickly create reports that group information based on key elements, such as user creations, group modifications, policy changes and more.<br /><br />In version 2.90 we addressed this by creating the new <a href="http://www.eventsentry.com/features/TRACKING">Compliance Tracking</a> features which are based on the previous Tracking features. <br /><br />This means that in addition to the "standard" event log consolidation that simply collects events and records them as is, compliance tracking intercepts specific events (e.g. account creation, logon/logoff, process creation), parses them, extracts the required information and records the relevant information in the <a href="http://www.eventsentry.com/">EventSentry</a> database.<br /><br />Compliance Tracking covers the following auditing areas in Windows:<br /><br /><ol><li><a href="http://www.eventsentry.com/features/PROCESSTRACKING">Process Activity</a><br /></li><li><a href="http://www.eventsentry.com/features/LOGONTRACKING">Console &amp; Network Logons</a><br /></li><li><a href="http://www.eventsentry.com/features/FILEACCESSTRACKING">File Access Activity</a></li><li><a href="http://www.eventsentry.com/features/ACCOUNTMANAGEMENTTRACKING">Account Management</a> (User, Group &amp; Computer accounts)<br /></li><li><a href="http://www.eventsentry.com/features/POLICYCHANGETRACKING">Policy Changes<br /></a></li><li><a href="http://www.eventsentry.com/features/PRINTTRACKING">Print Jobs</a></li></ol>For example, finding out which group memberships changed over the last week is matter of two clicks in the web reports - and restricting a report to only reflect a particular group and/or action is just as easy.<br /><br />But let me briefly outline the benefits of the individual tracking features:<br /><br /><b>Process Tracking</b><br />This feature records all process activity and lets you know which processes where started when, by whom, for how long and from which computer. This feature is not only useful for security purposes, but also helpful when troubleshooting or requiring statistical information (e.g. how often is PowerPoint being run).<br /><br /><b>Logon Tracking</b><br />This component tracks everything logon-related on your network, including console, successful as well as failed network logons. Using the console logon tracking for example, you can generate reports that show what time users logon and logoff, including from which computer, whether they are local admin and more details. Using the new network logon tracking, you can track successful as well as failed network logons. The included reports can reveal information such as which users logged on with a failed password, logon protocol distribution, most common reason for failed logons and more.<br /><br /><b>File Access Tracking</b><br />This feature is new in v2.90 and tracks all successful file access activity that has been enabled on files or directories. EventSentry does this by intercepting audit events that are generated when files or folders which are being audited. Since Windows Server 2003 and earlier don't actually audit when objects are changed, but instead only audit the requested file access (<a href="http://www.eventlogblog.com/blog/2008/03/operational-event-567-maybe-so.html">click here for a related post</a>), EventSentry can perform additional checks and verifications to complement the native auditing capabilities of the OS - such as checksum creation. Of course EventSentry also gathers additional information - such as the source computer from where a change was made.<br /><br /><b>Account Management Tracking</b><br />Also new in v2.90 is account management tracking, which encompasses user, group and computer account management tracking. This feature really makes life easier when you deal with large quantities of user, group and / or computer account changes. <br /><br />For example, tracking a users group membership changes - even across computers and domains - is only a few mouse clicks away. Do you need to know which computer accounts were created in the last week in your domain? This only takes three clicks in the web reports. <br /><br /><b>Policy Change Tracking</b><br />Another feature added in v2.90, policy change tracking records the following "policy" events:<br /><br /><ul><li>Domain Policy Changes</li><li>Audit Policy Changes</li><li>Kerberos Policy Changes</li><li>User Right Changes</li><li>Logon Right Changes</li><li>Trust Relationship Changes</li></ul>Again, getting information about any of the above scenarios is extremely easy - such as seeing which user/logon rights were assigned in the last week or on which server the password policy was changed in the last 2 weeks.<br /><br />Since none of tracking features are limited to hard-coded reports but instead are easily adaptable, they not only make your auditors happy - they provide you with valuable information. This allows you to utilize <a href="http://www.eventsentry.com/">EventSentry</a> not only for compliance but many other tasks, whether is security-related, for troubleshooting or something else.<br /><br />As always, please <a href="http://www.netikus.net/software/eventsentry/configpackagesfiltersfilterproperties.htm#pastingevents">see the documentation for more information</a>. You can take a look at <a href="http://www.eventsentry.com/downloads_releasehistory.php">version history</a> as well for a complete list of changes and new features in the 2.90 release of <a href="http://www.eventsentry.com/">EventSentry</a>.<br /><br /><br />Enjoy,<br />Ingmar.]]></description>
            <link>http://www.eventlogblog.com/blog/2008/12/eventsentry-v290-compliance-tr.html</link>
            <guid>http://www.eventlogblog.com/blog/2008/12/eventsentry-v290-compliance-tr.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Announcements</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Event Log</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Event Log Windows Compliance SOX PCI GLBA HIPAA FISMA COBIT</category>
            
            <pubDate>Sat, 13 Dec 2008 09:57:37 -0600</pubDate>
        </item>
        
        <item>
            <title>EventSentry v2.90: Event Log Monitoring Changes</title>
            <description><![CDATA[Since we have just released <a href="http://www.eventsentry.com/">EventSentry v2.90</a>, we'll be blogging about the improvements and new features in the coming weeks. Since event log monitoring is how it all started, my first post in this series will be about the improvements and new features in our event log monitoring engine.<br /><br /><b>Vista/Windows 2008</b><br />The biggest change in v2.90, in regards to event log monitoring, is of course the native support of the Windows Vista and Server 2008 event log API. As many of you know, Microsoft introduced a new API for event log monitoring while still keeping the legacy API in place for applications that don't support the new API yet.<br /><br />EventSentry v2.81 uses this legacy API with some work-arounds to monitor the new event logs, but I highly recommend upgrading to v2.90 if you're monitoring Server 2008 and/or Vista event logs. Upgrading will result in less overhead and better formatting and presentation of events since the agents now access the event log with the native API. Naturally, the <a href="http://www.eventsentry.com/features/EVENTLOGBACKUP">event log backup feature</a> will backup event logs in the new <b>evtx</b> format on Vista/Server 2008 computers.<br /><br />The new version also supports the new Operational event logs which are displayed under Application and Services Logs/Microsoft, for example the Microsoft-Windows-Backup/Operational log.<br /><br /> <span class="mt-enclosure mt-enclosure-image"><img alt="eventlogblog_290_eventviewer_1.png" src="http://www.eventlogblog.com/blog/eventlogblog_290_eventviewer_1.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="242" width="219" /></span>These operational logs need to be configured as custom event logs in EventSentry, by specifying the full path (e.g. <b>Microsoft-Windows-Backup/Operational</b>) as the name of the custom event log.<br /><br />Please see <a href="http://www.eventlogblog.com/blog/2007/12/vista-event-log-changes.html">one of my previous posts about the event log changes in Vista</a> (which also applies to Server 2008) for more information.<br /><br />Note that support for the new event log API is transparent, and there is still only one executable of the EventSentry agent for all versions of Windows.<br /><br /><b>64-Bit<br /></b>EventSentry v2.81 did not format some events on 64-bit editions of Windows correctly, and we have resolved this problem in 2.90 which renders all events on 64-bit machines correctly. The EventSentry agent still runs as a 32-bit application in 2.90, but we have long-term plans to supply a 64-bit agent for x64 operating systems.<br /><br /><b>Filter Timers</b><br />Filter Timer filters allow you to ignore events that would otherwise trigger an alert, if they are followed by another event within a preset time period. For example, if an event indicating that a critical service is stopped is being immediately followed by another event indicating that the service is running again, then a filter would allow you to suppress both events.<br /><br />Previously however, filter timers had to be setup exactly for each event pair. This meant that if you wanted to use a filter timer for 5 services, then you would have to create 10 events. Starting with 2.90 you only have to create 2 events now, as long as the first event and the clearing event share the same order of insertion strings - which is usually the case.<br /><br />Please <a href="http://www.netikus.net/software/eventsentry/index.html?configpackagesfilterstimers.htm">see the documentation for more information</a>.<br /><br /><b>Action Trigger History</b><br />Selected actions (e.g. email, pager) now include the ability to log their trigger history - that is every time they are triggered by an event - to the database. This helps you confirm that a notification was in fact performed, and also gives you the ability to gather statistics about which actions are being triggered and how often.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="eventlogblog_290_actiontrigger_1.png" src="http://www.eventlogblog.com/blog/eventlogblog_290_actiontrigger_1.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="391" width="734" /></span>The action trigger history includes the following information:<br /><br />•&nbsp;&nbsp;&nbsp; Date/Time<br />•&nbsp;&nbsp;&nbsp; Computer<br />•&nbsp;&nbsp;&nbsp; Action Name, Action Recipients<br />•&nbsp;&nbsp;&nbsp; Event Log Package, Filter Name<br />•&nbsp;&nbsp;&nbsp; Event Log, Event Source, Event ID, Event Number<br /><br />Please <a href="http://www.netikus.net/software/eventsentry/index.html?action_trigger_history.htm">see the documentation for more information</a>.<br /><b><br />Web Reports: Error Explanation</b><br />Many events from the security event log, for example audit failure event 675, contain error numbers and failure codes inside the event that require you to research them in order to find out what they mean. Here is an example:<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="eventlogblog_290_event_1.png" src="http://www.eventlogblog.com/blog/eventlogblog_290_event_1.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="448" width="404" /></span>You can see that the failure code of 0x25 in itself doesn't reveal too much, but if you view the same exact event through our web reporting, then the failure code is automatically explained for you:<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="eventlogblog_290_event_2.png" src="http://www.eventlogblog.com/blog/eventlogblog_290_event_2.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" height="235" width="501" /></span>As you can see in the screenshot above, the Kerberos failure code of <b>0x25</b> is automatically explained as "Clock skew too great".<br /><br /><b>Copying / Pasting event details from Emails</b><br />If you have been using EventSentry for a while, then you've probably setup event exclusions more than once, most likely after receiving an email from one of the agents. Starting with 2.90, you can now copy the event in your email client and paste it into a new filter. The management console will parse the event properties and automatically fill in the following fields for you:<br /><br />•&nbsp;&nbsp;&nbsp; Event Log<br />•&nbsp;&nbsp;&nbsp; Event Severity<br />•&nbsp;&nbsp;&nbsp; Event Source<br />•&nbsp;&nbsp;&nbsp; Event Category<br />•&nbsp;&nbsp;&nbsp; Event ID<br /><br />Please <a href="http://www.netikus.net/software/eventsentry/configpackagesfiltersfilterproperties.htm#pastingevents">see the documentation for more information</a>.<br /><br />You can take a look at <a href="http://www.eventsentry.com/downloads_releasehistory.php">version history</a> as well for a complete list of changes and new features in the 2.90 release of EventSentry.<br /><br /><br />Enjoy,<br />Ingmar.<br />]]></description>
            <link>http://www.eventlogblog.com/blog/2008/11/eventsentry-v290-event-log-mon.html</link>
            <guid>http://www.eventlogblog.com/blog/2008/11/eventsentry-v290-event-log-mon.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Event Log</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">EventSentry</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">eventsentry 2.90 real-time event log monitoring changes vista server 2008</category>
            
            <pubDate>Tue, 04 Nov 2008 12:21:01 -0600</pubDate>
        </item>
        
        <item>
            <title>Your favorite tools and utilities always available everywhere (almost)</title>
            <description><![CDATA[<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11"><link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CINGMAR%7E1.KOE%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="place"></o:smarttagtype><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="country-region"></o:smarttagtype><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]--><!--[if !mso]><object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id="ieooui"></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]--><style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"trebuchet ms";
	mso-fareast-font-family:"trebuchet ms";}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:801190309;
	mso-list-type:hybrid;
	mso-list-template-ids:229908046 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->

<p class="MsoNormal"><font style="font-size: 1em;">If you are managing more than a handful of servers
and workstations in an Active Directory domain then you have probably come to
rely on a small set of utilities to help you with your daily tasks of managing
your servers and workstations. You probably carry those apps with you on a USB
stick (check out <a href="http://portableapps.com/">PortableApps.com</a>) or have them sitting on some network drive for access when you need them,
and most of these tools are probably from different
developers and vendors.</font></p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">I personally like a lot of the <a href="http://technet.microsoft.com/en-us/sysinternals/default.aspx">Windows Sysinternals</a> tools such as
psexec, process monitor, <a href="http://www.microsoft.com/downloads/details.aspx?familyid=18b1d59d-f4d8-4213-8d17-2f6dde7d7aac&amp;displaylang=en">Microsoft Network Monitor</a> and of course the <a href="http://www.netikus.net/products_nttoolkit.html">NTToolkit tools</a> that we develop – but
everybody has his or her own preference as to what they need to get the job
done. And that’s exactly my point.</p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">Wouldn’t it be great that every computer you manage –
workstation or server – <b style="">always</b> had
the tools you need automatically pre-installed? That way, they could be used in scheduled tasks, batch scripts etc. without you having to worry whether the tool is installed or not.<br /></p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">Well, it is possible – and you can do it without spending a
dime – thanks to
Active Directory and the folks at <a href="http://www.caphyon.com/">Caphyon</a> in <st1:country-region w:st="on"><st1:place w:st="on">Romania</st1:place></st1:country-region>
that provide a freeware edition of their <a href="http://www.advancedinstaller.com/download.html">Advanced Installer</a>.</p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">You probably see where I am getting at. Combine a MSI
created by Advanced Installer with your favorite tools and Active Directory’s
“Software Distribution” feature, and you get all your tools at your fingertips
– whenever you need them. In this post I’ll show you how to create a MSI with
your favorite tools and automatically publish that to some or all computers in
your AD domain. This approach also supports updates, so that you can publish
revised MSI packages with new tools and/or updates.</p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<p class="MsoNormal">The nice thing about this solution is that the only
prerequisite is Active Directory, and even if you don’t have AD you still end
up with a MSI that you can easily install on any computer.</p>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<ol style="margin-top: 0in;" start="1" type="1"><li class="MsoNormal" style="">Download
     &amp; Install Advanced Installer Freeware. You can also go with one of
     their commercial products of course, but the freeware version is enough
     for our purposes here.</li></ol>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<ol style="margin-top: 0in;" start="2" type="1"><li class="MsoNormal" style="">Organize
     all of your tools into one location so that they can easily be added to
     the installer. This is not absolutely necessary but will make working on the installer a bit easier.</li></ol>

<p class="MsoNormal"><o:p>&nbsp;</o:p></p>

<ol style="margin-top: 0in;" start="3" type="1"><li class="MsoNormal" style="">Open Advanced Installer. It should open a dialog to create a new project. If not, go to File -&gt; New.<br /><br /></li><li class="MsoNormal" style="">Select a project type of Simple and make sure "Use wizard to create the project" is checked.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="advanced_installer_create_project.png" src="http://www.eventlogblog.com/blog/advanced_installer_create_project.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="379" height="557" /></span></li><li class="MsoNormal" style="">The New Simple Project Wizard comes up. Click next to continue, and give your project a descriptive name.<br /><br /></li><li class="MsoNormal" style="">Browse to the folder containing all your tools.<br /><br /></li><li class="MsoNormal" style="">The next box allows you to create shortcuts to specific programs. If you have any GUI programs in there then you may want to check them and then hit Next.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="advanced_installer_select_source_files.png" src="http://www.eventlogblog.com/blog/advanced_installer_select_source_files.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="505" height="395" /></span></li><li class="MsoNormal" style="">Now you can hit Finish on the final screen to build the project. It will save it as a .aip file in the location of your choice.<br /><br /></li><li class="MsoNormal" style="">At this point we can just call it a day and compile the MSI file. I like having my command-line tools in the PATH environment variable however, so that I can access them conveniently from any folder. Keep reading for more info on this, otherwise just skip to step 12.<br /><br /></li><li class="MsoNormal" style="">Click on the "Environment" link in the left panel. Now right click anywhere in the blank space on the left side and choose "New Variable".<br /><br /></li><li class="MsoNormal" style="">In the screen shot below you can see what settings to use to add it to the Path system variable.<br /><br /><span class="mt-enclosure mt-enclosure-image"><img alt="advanced_installer_environment_variables.png" src="http://www.eventlogblog.com/blog/advanced_installer_environment_variables.png" class="mt-image-center" style="margin: 0pt auto 20px; text-align: center; display: block;" width="308" height="435" /></span></li><li class="MsoNormal" style="">Now just click the "Build" button to create your MSI file.</li></ol>

<p class="MsoNormal"><br /></p><p class="MsoNormal"><font style="font-size: 1em;">Now that you have the MSI file, you can roll it out using Active Directory. If you need a refresher on how to do this, then please see the earlier blog post <a href="http://www.eventlogblog.com/blog/2008/06/push-out-updates-with-group-po.html">Applying Patches and Updates with Active Directory</a> that shows how to distribute MSI-based patches with Active Directory - essentially the same concept.</font><br /></p><p class="MsoNormal"><br /></p><p class="MsoNormal"><b>Drawbacks &amp; Considerations</b><br /></p><p class="MsoNormal">Now, I have to admit that there are some drawbacks to using Active Directory to publish your MSI. Currently, group policy can only apply software installations in the foreground, which means that you will have to reboot a computer in order to have your new MSI installed. If you know a way around that - other than using a 3rd party software deployment suite - then please let me know.</p><p class="MsoNormal"><br /></p><p class="MsoNormal">Also keep in mind that any tool you install on your servers and/or workstations will, by default, be available to any user on that machine unless you adjust the permissions of the target folder manually. As such, I would refrain from including utilities in your MSI that make gaining unauthorized access easier, and also ensure that you always have the latest version of your tools in your MSI.</p><p class="MsoNormal"><br /></p><p class="MsoNormal"><br /></p><p class="MsoNormal">I hope this tip helps managing your servers and workstations a bit easier. Until next time,</p><p class="MsoNormal"><br /></p><p class="MsoNormal">Ingmar.<br /></p><p class="MsoNormal"><br /></p>
]]></description>
            <link>http://www.eventlogblog.com/blog/2008/09/keeping-your-tools-handy.html</link>
            <guid>http://www.eventlogblog.com/blog/2008/09/keeping-your-tools-handy.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">MSI group policy tools distribute server utilities</category>
            
            <pubDate>Fri, 05 Sep 2008 12:49:44 -0600</pubDate>
        </item>
        
        <item>
            <title>Mr. Fix It: Reviving a relative&apos;s computer</title>
            <description><![CDATA[Let's face it, whether you're a DBA, IT Manager or sys admin - you are eventually asked the inevitable by your parents, mother-in-law (hint) or brother-in-law: The computer is soooo slow - is there something we can do?<br /><br />What you will probably find is a computer running Windows XP, an out-of-date Anti Virus software that was pre-installed, missing patches, 17 toolbars for Internet Explorer, some AdWare and a boatload of other software that nobody needs. If it's bad then you'll also find some SpyWare and viruses.<br /><br />It unfortunately requires multiple steps of corrective action to get garbled systems like that back up to normal, and so I created this list for myself so not forget steps along the way. You can change the order, but this order should be most effective. If most of the items listed are obvious to you, then you can still use the list as a simple check list.<br /><br /><b>1. Uninstall all unneeded software:</b> This should speed up the computer right away and get rid of some of the resource hogs. Don't forget to get rid of any outdated AntiVirus software as well at this point.<br /><br /><b>2. Autoruns:</b> Use the Sysinternals <a href="http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx">Autoruns</a> tool to remove any applications that have nested themselves into one of the many autorun locations. I found the "Logons" and the "Services" tab to be most effective, though I recommend you check all of them. I also recommend saving the current setup prior to disabling things. After a reboot the computer should already be faster.<br /><br /><b>3. Remove Spyware:</b> It's generally a good idea to make sure that no Spyware is present, and I recommend running <a href="http://www.superantispyware.com/">Super Antispyware</a> on the computer. They have a free home edition that works quite well - and don't get suspicious because of their cheesy web site.<br /><br /><b>4. Apply Updates:</b> Now it's time to switch to <a href="http://v4.windowsupdate.microsoft.com/">Microsoft Update</a> and install any available critical updates and hardware updates that are relevant. You can switch to Microsoft Update by navigating to Windows Update and clicking the "Microsoft Update" link on that page on the left or right hand side. I generally recommend including optional updates, such as IE 7 and Windows Media Player as well. They might not use them, but this ensures that they are only using software that is going to be patched.<br /><br /><b>5. Anti-Virus:</b> If the computer does not have Anti-Virus software installed at this point, download either a free package (e.g. <a href="http://www.avast.com/">Avast</a>, <a href="http://free.avg.com/">AVG</a>, etc.) or purchase a commercial one if they don't mind paying an annual fee. Avast has the option to do an offline virus scan of your hard drive before the system boots, which I found quite useful.<br /><br /><b>6. Drivers &amp; BIOS:</b> Depending on the age of the system, chances are that at least some drivers are out of date, though it's much more likely on a new computer than it is on an old one. A first start is Windows Update, but checking the vendor's web site (some of them come with update software as well) usually yields better results and offers more recent drivers.<br /><br /><b>7. Defrag:</b> I have a sort of love-hate relationship with defragging tools, and think that the benefits are often overstated. I have however seen many cases over my career where defragging does indeed improve performance. I don't think a daily defrag is necessary on a workstation, but a computer that has never been defragged in years can definitely benefit from it. I have used <a href="http://www.raxco.com/products/downloadit/pd_download_home.cfm">Raxco's PerfectDisk</a> successfully on servers and workstations, and they have a fully functional 30-day trial available.<br /><br /><b>8. Hardware:</b> In some cases, especially with older systems, it might help to upgrade the hardware. Upgrading memory is usually most effective, since it's both cheap and easy to install. I listed it as a last step, even though upgrading it right-away might make performing all the other steps more enjoyable (=faster). Don't just throw memory at the problem though, cleaning the machine up is the most important!<br /><br /><br />Or, you can do a re-install :-). Depending on the state of the OS, the above steps can sometimes take a very long time, and a re-install might be a better option - especially when the computer is infected with viruses and Spyware. As a matter of fact, if you still have access to the recovery CD and the computer wasn't overly customized (e.g. used only for email, web and pictures), then a re-install will almost certainly be a better option and take less of your time.<br /><br />Hope this helps - and if all else fails then you can always install Linux ;-)<br />]]></description>
            <link>http://www.eventlogblog.com/blog/2008/08/fixing-a-relatives-computer.html</link>
            <guid>http://www.eventlogblog.com/blog/2008/08/fixing-a-relatives-computer.html</guid>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tips &amp; Tricks</category>
            
                <category domain="http://www.sixapart.com/ns/types#category">Tools &amp; Utilities</category>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">Cleanup Optimize Computer</category>
            
            <pubDate>Fri, 22 Aug 2008 10:00:54 -0600</pubDate>
        </item>
        
    </channel>
</rss>
