<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://powershell.com/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results for 'app:weblogs' matching tags 'WMI', 'scripting techniques', and 'performance'</title><link>http://powershell.com/cs/search/SearchResults.aspx?q=app:weblogs&amp;tag=WMI,scripting+techniques,performance&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tags 'WMI', 'scripting techniques', and 'performance'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Weekend Scripter: Measure the Performance of Using Wildcards in a WMI Query</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2012/07/21/weekend-scripter-measure-the-performance-of-using-wildcards-in-a-wmi-query.aspx</link><pubDate>Sat, 21 Jul 2012 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:17870</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;&lt;b&gt;Summary&lt;/b&gt;: Learn how to use the Windows PowerShell Measure-Command cmdlet to determine the performance of wildcard queries using WMI.&lt;/p&gt;
&lt;p&gt;Microsoft Scripting Guy, Ed Wilson, is here. It is the weekend in Charlotte, North Carolina, and tomorrow I fly to Seattle, Washington where I speak at the Microsoft-only TechReady&amp;nbsp;15 conference. It is a great event, and I always have fun getting to see a lot of friends from all over the world. TechReady is a very international event, and it is the one time when Microsoftees have a chance to get together. Because the conference is held twice a year, it provides a chance for people to come to one session or the other, and for Microsoft to still be able to carry on with its normal activities.&lt;/p&gt;
&lt;p&gt;This week, I had an idea based on a comment posted to one of my WMI articles, &amp;ldquo;What is the difference in performance between using the equality operator or using a wildcard character and the Like operator, when making a WMI query?&amp;rdquo; So I thought I would test it out.&lt;/p&gt;
&lt;h2&gt;Methodology&lt;/h2&gt;
&lt;p&gt;To measure the performance of different queries, the basic tool is the &lt;b&gt;Measure-Command&lt;/b&gt; cmdlet. Because of potential caching issues, I reboot after each query. But before I do all that, I want to ensure that my WMI queries are working properly. For that, I do not need to reboot between commands. In addition, I want to ensure that my &lt;b&gt;Measure-Command&lt;/b&gt; commands are working properly. So for that, I also test the commands. I ended up configuring three different query patterns. The patterns are listed here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Use the equality operator.&lt;/li&gt;
&lt;li&gt;Use the like operator and a wildcard character.&lt;/li&gt;
&lt;li&gt;Use the like operator and multiple wildcard characters.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When I am certain that my queries and &lt;b&gt;Measure-Command&lt;/b&gt; commands work properly, it is time to begin the multiple reboot process.&lt;/p&gt;
&lt;h2&gt;Using the equality operator to find a process&lt;/h2&gt;
&lt;p&gt;My laptop is back up from the first reboot. As a baseline, I query for the &lt;i&gt;explorer.exe &lt;/i&gt;process by using the equality operator. My expectations are that this will be the fastest query because it looks through all the processes and I am using the &lt;b&gt;Name&lt;/b&gt; property to find the specific process. This is a non-indexed operation because the key to the &lt;b&gt;Win32_Process&lt;/b&gt; class is &lt;i&gt;handle &lt;/i&gt;and not the &lt;b&gt;Name&lt;/b&gt; property. Here is the basic query.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WmiObject -Class win32_process -Filter &amp;quot;name = &amp;#39;explorer.exe&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;The command to measure the performance of the WMI query is shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name = &amp;#39;explorer.exe&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p&gt;So what are the results from the &lt;b&gt;Measure-Command&lt;/b&gt;? They are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name = &amp;#39;explorer.exe&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Days&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Hours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Milliseconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 351&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Ticks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3514032&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalDays&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4.06716666666667E-06&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalHours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9.7612E-05&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMinutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.00585672&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalSeconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.3514032&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMilliseconds : 351.4032&lt;/p&gt;
&lt;h2&gt;Using the Like operator and a wildcard to find a process&lt;/h2&gt;
&lt;p&gt;Now as a point of comparison, I use the percentage symbol ( &lt;b&gt;% &lt;/b&gt;), which is a wildcard character in WMI WQL that means zero or more instances of a character.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;explorer%&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;The command to measure the performance of the WMI wildcard query is shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;explorer%&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p&gt;As I come out of my second reboot, I once again open the Windows PowerShell console and run the first of my wildcard comparison commands. The command and associated output are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;explorer%&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Days&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Hours&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Milliseconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 429&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Ticks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4298977&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalDays&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4.97566782407407E-06&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalHours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.000119416027777778&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMinutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.00716496166666667&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalSeconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.4298977&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMilliseconds : 429.8977&lt;/p&gt;
&lt;h2&gt;Use the Like operator and multiple wildcards to find a process&lt;/h2&gt;
&lt;p&gt;Does the amount and type of wildcard characters make any difference? I would suspect it would; but then, one never really knows. So here is a wildcard pattern that uses a range of letters, a single letter, and the zero or more letters character.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;[A-F]xplo_er%&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;[A-F]xplo_er%&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p&gt;Now, I have completed my last reboot. It is time to see if there is a difference using the &amp;ldquo;wilder&amp;rdquo; wildcard pattern. The command and associated output appears here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Users\administrator&amp;gt; measure-command {Get-WmiObject -Class win32_process -Filter &amp;quot;name LIKE &amp;#39;[A-F]xplo_er%&amp;#39;&amp;quot;}&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Days&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Hours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Milliseconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 339&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Ticks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3391294&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalDays&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3.9251087962963E-06&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalHours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 9.42026111111111E-05&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMinutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.00565215666666667&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalSeconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.3391294&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMilliseconds : 339.1294&lt;/p&gt;
&lt;h2&gt;Conclusions&lt;/h2&gt;
&lt;p&gt;Drawing conclusions from this little experiment is a little dangerous. The reason is that the &lt;b&gt;Measure-Command &lt;/b&gt;cmdlet is not really accurate when it comes to measuring millisecond results. Therefore, making a hard and fast conclusion based upon millisecond results is not a best practice. Nevertheless, as a way of summarizing the results, following is a comparison table.&lt;/p&gt;
&lt;p&gt;The equality operator found the information and returned results in 351 milliseconds, and that was faster than using the &lt;b&gt;Like&lt;/b&gt; operator with a single wildcard. If the results had remained like that, I would have said, &amp;ldquo;Cool, it proves my point.&amp;rdquo; However, the &lt;b&gt;Like&lt;/b&gt; operator with multiple wildcards returned in 339 milliseconds, and that is completely counter intuitive. Therefore, additional testing is indicated. To prove the point, the results need to take multiple seconds to return so we move into the area that is more accurate for the &lt;b&gt;Measure-Command&lt;/b&gt;. At this stage of my testing, I would have to say, there is no difference between using the equality operator and using one or more wildcards. The following table illustrates the results. &lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Test&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;b&gt;Time in Milliseconds&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Equality operator&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;351&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Like operator with single wildcard&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;429&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Like operator with multiple wildcards&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;339&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;I invite you to follow me on &lt;a href="http://bit.ly/scriptingguystwitter" target="_blank"&gt;Twitter&lt;/a&gt; and &lt;a href="http://bit.ly/scriptingguysfacebook" target="_blank"&gt;Facebook&lt;/a&gt;. If you have any questions, send email to me at &lt;a href="mailto:scripter@microsoft.com" target="_blank"&gt;scripter@microsoft.com&lt;/a&gt;, or post your questions on the &lt;a href="http://bit.ly/scriptingforum" target="_blank"&gt;Official Scripting Guys Forum&lt;/a&gt;. See you tomorrow. Until then, peace.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ed Wilson, Microsoft Scripting Guy&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3509954" width="1" height="1" alt="" /&gt;</description></item><item><title>Parse Windows Trace Logs by Using PowerShell</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2011/07/12/parse-windows-trace-logs-by-using-powershell.aspx</link><pubDate>Tue, 12 Jul 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:11339</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Learn how to use Windows PowerShell to parse Windows trace logs.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Hey, Scripting Guy! Question" border="0" alt="Hey, Scripting Guy! Question" align="left" src="http://img.microsoft.com/library/media/1033/technet/images/scriptcenter/qanda/q-sm.jpg" width="34" height="34" /&gt;Hey, Scripting Guy! Is it possible to filter the results from an ETW log?&lt;/p&gt;
&lt;p&gt;&amp;mdash;DK&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Hey, Scripting Guy! Answer" border="0" alt="Hey, Scripting Guy! Answer" align="left" src="http://img.microsoft.com/library/media/1033/technet/images/scriptcenter/qanda/a-sm.jpg" width="34" height="34" /&gt;Hello DK,&lt;/p&gt;
&lt;p&gt;Microsoft Scripting Guy Ed Wilson here. Sure there is.&lt;/p&gt;
&lt;p&gt;In &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/09/use-powershell-to-troubleshoot-windows.aspx"&gt;Saturday&amp;rsquo;s Weekend Scripter article&lt;/a&gt;, I talked about working with Event Tracing for Windows (ETW) logs. I discussed how to enable and disable the logs, and how to use the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet to find and to read the trace. &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/11/use-dates-types-to-filter-event-trace-logs-in-powershell.aspx"&gt;Yesterday, I continued the ETW discussion&lt;/a&gt; by examining the &lt;b&gt;datetime&lt;/b&gt; stamp that is generated for each event.&lt;/p&gt;
&lt;p&gt;In this article, I will continue exploring the WMI activity trace log. By way of a quick review, the first thing I need to remember is to use the &lt;i&gt;force&lt;/i&gt; parameter when searching for trace logs&amp;mdash;it will not be visible otherwise. I also should remember that I do not need to type the entire log name because I can use wildcard characters to assist. After I have found the proper log name, I can store the log name in a variable for quick access. When reading a trace log, I must remember to use the &lt;i&gt;Oldest &lt;/i&gt;switched parameter. The commands that follow illustrate these techniques.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -ListLog *wmi*trace* -force&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;(Get-WinEvent -ListLog *wmi*trace* -force).logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;$WmiLog = (Get-WinEvent -ListLog *wmi*trace* -force).logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -LogName $wmiLog -Oldest&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To parse a trace log, you monkey around with the &lt;i&gt;message&lt;/i&gt; portion of the trace log entry. This means that any of the &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/tags/windows+powershell/getting+started/string+manipulation/"&gt;parse text&lt;/a&gt; type of articles, or &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/tags/windows+powershell/getting+started/regular+expressions/"&gt;regular expression&lt;/a&gt;&lt;i&gt; &lt;/i&gt;type of articles will be extremely useful when it comes to examining these logs. I am not going to repeat all that type of information here.&lt;/p&gt;
&lt;p&gt;After I have the reference to the WMI trace log stored in the &lt;b&gt;$wmiLog&lt;/b&gt; variable, I use it in my query to the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet. The command returns all the entries (remember the &lt;i&gt;Oldest&lt;/i&gt; switched parameter is required in these types of queries). I pipe the resulting trace log contents to the &lt;b&gt;Where-Object&lt;/b&gt; cmdlet (&lt;b&gt;?&lt;/b&gt; Is an alias for the &lt;b&gt;Where-Object&lt;/b&gt; cmdlet), and I look for entries that contain the word &lt;i&gt;execquery&lt;/i&gt;, which is one of the commands used by WMI when performing a query. I use the &lt;b&gt;Select-Object&lt;/b&gt; cmdlet (&lt;b&gt;select&lt;/b&gt; is an alias for the &lt;b&gt;Select-Object&lt;/b&gt; cmdlet) to choose only the &lt;b&gt;message&lt;/b&gt; property, and I expand the property so I can see all the information contained in the particular entry. The command (broken into two lines at the pipe character for clarity) and associated output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmiLog -Oldest |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;? { $_.message -match &amp;#39;execquery&amp;#39; } | select -ExpandProperty message&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;GroupOperationId = 486; OperationId = 487; Operation = Start IWbemServices::Exe&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;cQuery - select * from win32_bios; ClientMachine = NEWMRED; User = IAMMRED\Admi&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;nistrator; ClientProcessId = 4392; NamespaceName = \\.\root\cimv2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I like this view because it makes it rather easy to look at related entries. It is much faster than clicking entries in Event Viewer. In the entry above, the WMI query, namespace, computer name, and username all appear in the entry. This makes it easy to troubleshoot WMI failures.&lt;/p&gt;
&lt;p&gt;If I have a trace log with a large number of entries (even a large number of entries that may match my query), I add a &lt;b&gt;more&lt;/b&gt;&lt;i&gt; &lt;/i&gt;command to the end of the command. The revised command appears here (I break the command at the pipe character for display on the blog; I do not break the command inside the Windows PowerShell console):&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -LogName $wmiLog -Oldest | ? { $_.message -match &amp;#39;execquery&amp;#39; } |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;select -ExpandProperty message | more&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Rather than using the &lt;b&gt;Select-Object&lt;/b&gt; cmdlet, at times I like to use the &lt;b&gt;Format-Table&lt;/b&gt; cmdlet (&lt;b&gt;ft&lt;/b&gt; is an alias for the &lt;b&gt;Format-Table&lt;/b&gt; cmdlet) with the &lt;i&gt;wrap &lt;/i&gt;switched parameter. This is particularly true if I want to use two or more properties. (I will use &lt;b&gt;Format-Table&lt;/b&gt; for 2&amp;ndash;5 properties. If I have more than 5 properties, I generally use &lt;b&gt;Format-List&lt;/b&gt;). In the following query, I query the WMI trace log and look for entries that have the word &lt;i&gt;reference&lt;/i&gt; in the &lt;b&gt;message&lt;/b&gt; property. The word &lt;i&gt;reference&lt;/i&gt; appears in &lt;b&gt;referencesof&lt;/b&gt; types of WMI queries. In general, these &lt;b&gt;referencesof&lt;/b&gt; types of queries are used by WMI in preparation for performing the actual &lt;b&gt;Select&lt;/b&gt; command (although, it is perfectly valid&amp;mdash;if advanced&amp;mdash;for a user to write a &lt;b&gt;referencesof&lt;/b&gt; type of query directly). All of the matching entries from the logs are then displayed in a table with the ID in the first position, and the message wrapped for readability. The &lt;i&gt;autosize&lt;/i&gt; switched parameter tightens up the display and makes for better output. The command and associated output are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmiLog -Oldest |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;? { $_.message -match &amp;#39;reference&amp;#39; } | ft id, message -Wrap -AutoSize&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;1 GroupOperationId = 490; OperationId = 494; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - references of {__Win32Provider.Name=&amp;quot;WmiPerfClass&amp;quot;}; ClientMachi&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ne = Local; User = IAMMRED\Administrator; ClientProcessId = 0; NamespaceName&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = \\.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;1 GroupOperationId = 490; OperationId = 496; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - references of {__Win32Provider.Name=&amp;quot;CIMWin32&amp;quot;}; ClientMachine =&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Local; User = IAMMRED\Administrator; ClientProcessId = 0; NamespaceName = \&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; \.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;1 GroupOperationId = 490; OperationId = 498; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - references of {__Win32Provider.Name=&amp;quot;CIMWin32&amp;quot;}; ClientMachine =&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Local; User = IAMMRED\Administrator; ClientProcessId = 0; NamespaceName = \&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; \.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;1 GroupOperationId = 501; OperationId = 504; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - references of {__Win32Provider.Name=&amp;quot;WmiPerfClass&amp;quot;}; ClientMachi&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ne = Local; User = IAMMRED\Administrator; ClientProcessId = 0; NamespaceName&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = \\.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;1 GroupOperationId = 501; OperationId = 506; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - references of {__Win32Provider.Name=&amp;quot;WmiPerfClass&amp;quot;}; ClientMachi&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ne = Local; User = IAMMRED\Administrator; ClientProcessId = 0; NamespaceName&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; = \\.\root\CIMV2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When troubleshooting WMI, one of my favorite techniques is to search the trace log for the specific WMI class name. This allows me to trace the operations related to a particular search or WMI query. As shown in the query and results below, the WMI provider for a specific class must be located before executing the actual &lt;b&gt;Select * win32_bios&lt;/b&gt; WMI query:&lt;i&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmiLog -Oldest |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;? { $_.message -match &amp;#39;win32_bios&amp;#39; } | ft id, message -Wrap -AutoSize&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;1 GroupOperationId = 490; OperationId = 491; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; ExecQuery - select * from win32_bios; ClientMachine = NEWMRED; User = IAMMRE&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; D\Administrator; ClientProcessId = 4392; NamespaceName = \\.\root\cimv2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;2 ProviderInfo for GroupOperationId = 490; Operation = Provider::CreateInstanc&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; eEnum - Win32_BIOS; ProviderName = CIMWin32; ProviderGuid = {d63a5850-8f16-1&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; 1cf-9f47-00aa00bf345c}; Path = %systemroot%\system32\wbem\cimwin32.dll&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;1 GroupOperationId = 490; OperationId = 499; Operation = Start IWbemServices::&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; GetObject - win32_bios; ClientMachine = Local; User = IAMMRED\Administrator;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientProcessId = 0; NamespaceName = \\.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The two-column output from the previous command is pretty decent from a readability perspective. As discussed in yesterday&amp;rsquo;s Hey Scripting Guy! Blog post, the ETW log provider is such a high performer that many entries have exactly the same time stamp (down to the tick); therefore, filtering (or even displaying) the time stamp does little to aid understanding. This is illustrated in the following output (where I add the time stamp to the previous output):&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmiLog -Oldest | ? { $_.message -match &amp;#39;win32_bio&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;s&amp;#39; } | ft TimeCreated, id, message -Wrap -AutoSize&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;TimeCreated&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/11/2011 3:23:47 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 490; OperationId = 491; Operation =&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;Start IWbemServices::ExecQuery - select * from win32_bi&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;os; ClientMachine = NEWMRED; User = IAMMRED\Administrat&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;or; ClientProcessId = 4392; NamespaceName = \\.\root\ci&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;mv2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/11/2011 3:23:47 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 ProviderInfo for GroupOperationId = 490; Operation = Pr&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;ovider::CreateInstanceEnum - Win32_BIOS; ProviderName =&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;CIMWin32; ProviderGuid = {d63a5850-8f16-11cf-9f47-00aa&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;00bf345c}; Path = %systemroot%\system32\wbem\cimwin32.d&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;ll&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/11/2011 3:23:47 PM&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 490; OperationId = 499; Operation =&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;Start IWbemServices::GetObject - win32_bios; ClientMach&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;ine = Local; User = IAMMRED\Administrator; ClientProces&lt;/p&gt;
&lt;p style="padding-left:210px;"&gt;sId = 0; NamespaceName = \\.\root\CIMV2&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As is shown in the previous output, all three entries happened at the same time, so the time stamp does not improve output (in fact, it reduces readability by causing additional wrapping of the message output).&lt;/p&gt;
&lt;p&gt;DK, that is all there is to using the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet to parse WMI activity/trace logs. I encourage you to take some time to review the last couple of articles as well as this one, and play around with querying the &lt;b&gt;message&lt;/b&gt;&lt;i&gt; &lt;/i&gt;property. After all, you know what you need to find. Troubleshooting Windows Week will continue tomorrow when I will show you a really cool technique for automating the enabling and disabling of trace logs. Stay tuned: same batch time, same batch channel.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I invite you to follow me on &lt;a href="http://bit.ly/scriptingguystwitter" target="_blank"&gt;Twitter&lt;/a&gt; and &lt;a href="http://bit.ly/scriptingguysfacebook"&gt;Facebook&lt;/a&gt;. If you have any questions, send email to me at &lt;a href="mailto:scripter@microsoft.com" target="_blank"&gt;scripter@microsoft.com&lt;/a&gt;, or post your questions on the &lt;a href="http://bit.ly/scriptingforum" target="_blank"&gt;Official Scripting Guys Forum&lt;/a&gt;. See you tomorrow. Until then, peace.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ed Wilson, Microsoft Scripting Guy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3440760" width="1" height="1" alt="" /&gt;</description></item><item><title>Use Date Types to Filter Event Trace Logs in PowerShell</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2011/07/11/use-date-types-to-filter-event-trace-logs-in-powershell.aspx</link><pubDate>Mon, 11 Jul 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:11316</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;: Learn how to use date types to filter event trace logs in Windows PowerShell.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Hey, Scripting Guy! Question" border="0" alt="Hey, Scripting Guy! Question" align="left" src="http://img.microsoft.com/library/media/1033/technet/images/scriptcenter/qanda/q-sm.jpg" width="34" height="34" /&gt;Hey, Scripting Guy! I am wondering, oh great scripting master: can I use Windows PowerShell to parse an ETW log file?&lt;/p&gt;
&lt;p&gt;&amp;mdash;JM&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Hey, Scripting Guy! Answer" border="0" alt="Hey, Scripting Guy! Answer" align="left" src="http://img.microsoft.com/library/media/1033/technet/images/scriptcenter/qanda/a-sm.jpg" width="34" height="34" /&gt;Hello JM,&lt;/p&gt;
&lt;p&gt;Microsoft Scripting Guy Ed Wilson here. It is &amp;ldquo;oh dark thirty&amp;rdquo; in the &lt;a href="http://en.wikipedia.org/wiki/Piedmont_(United_States)"&gt;Piedmont region of the United States&lt;/a&gt;. For some reason, I woke up early. It is Thursday as I write this article, and the Scripting Wife and I were up late last night listening to the &lt;a href="http://powerscripting.wordpress.com/"&gt;PowerScripting Podcast&lt;/a&gt;. I thought Spencer Brown did a great job as the guest, and as usual, Hal Rottenberg was in top form as he played the suave and debonair talk show host. Jonathan Walz was grooving in the background&amp;mdash;audiophile extraordinaire. The Scripting Wife loves the chat room conversation because it gives her a chance to hang out with her friends from all over the world. Anyway, because I was up late, and then again up early, I decided it would make for a great excuse to have a &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2009/03/04/how-do-i-migrate-my-vbscript-wmi-queries-to-windows-powershell.aspx"&gt;coffee day&lt;/a&gt;. My last coffee day occurred back in January when I was talking about &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/12/schedule-powershell-scripts-that-require-input-values.aspx"&gt;scheduling Windows PowerShell scripts that require input values&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anyway, JM, the &amp;ldquo;standard answer&amp;rdquo; is that Windows PowerShell can do anything. The other day on Twitter, someone asked if Windows PowerShell could be made to mow the grass. I believe it could be (here is a cool article about &lt;a href="http://channel9.msdn.com/coding4fun/articles/Part-2-Controlling-a-Microbric-Viper-Robot-with-an-IR-Serial-Port-using-NET-and-PowerShell"&gt;using Windows PowerShell to control robots&lt;/a&gt;). Now all you need is a robot lawn mower.&lt;/p&gt;
&lt;p&gt;In &lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2011/07/09/use-powershell-to-troubleshoot-windows.aspx"&gt;Saturday&amp;rsquo;s Weekend Scripter article&lt;/a&gt;, I talked about working with Event Tracing for Windows (ETW) logs. I discussed how to enable and disable the logs, and how to use the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet to find and to read the trace.&lt;/p&gt;
&lt;p&gt;The first thing to do is to obtain the name of the log and to store it in a variable. I do this because it makes working interactively from the Windows PowerShell line easier to do. The actual log name I want to work with today is &lt;i&gt;Microsoft-Windows-WMI-Activity/Trace&lt;/i&gt;. I can find the log name from one of the trace entries when I look in Event Viewer. Such an entry appears in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/0407.HSG_2D00_7_2D00_11_2D00_11_2D00_01.png"&gt;&lt;img style="border:0px;" title="Image of finding log name from trace entry in Event Viewer" alt="Image of finding log name from trace entry in Event Viewer" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/0407.HSG_2D00_7_2D00_11_2D00_11_2D00_01.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After I have the log name stored in a variable, I can use the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet to retrieve the &lt;b&gt;message&lt;/b&gt; property (or other properties as appropriate). The following two commands store the &lt;i&gt;Microsoft-Windows-WMI-Activity/Trace &lt;/i&gt;log name in a variable, and return the &lt;b&gt;message&lt;/b&gt; property from each of the entries in the WMI Activity trace ETW log:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;$wmiLog = (Get-WinEvent -ListLog *wmi*trace -force).logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -LogName $wmilog -Oldest | select message&lt;/p&gt;
&lt;p&gt;The two commands and associated output are shown in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/5226.HSG_2D00_7_2D00_11_2D00_11_2D00_02.png"&gt;&lt;img style="border:0px;" title="Image of two commands and associated output" alt="Image of two commands and associated output" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/5226.HSG_2D00_7_2D00_11_2D00_11_2D00_02.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the previous figure, the output of the &lt;b&gt;message&lt;/b&gt; property appears truncated. At times, a truncated output provides enough information to allow for quick identification of a particular problem. In the case of the above output, there is not enough detailed information to allow for much exploration. The solution is to expand the &lt;b&gt;message&lt;/b&gt; property. To expand the &lt;b&gt;message&lt;/b&gt; property, use the &lt;b&gt;expandproperty&lt;/b&gt;&lt;i&gt; &lt;/i&gt;property from the &lt;b&gt;Select-Object&lt;/b&gt; cmdlet. Here is the syntax of this command:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -LogName $wmilog -Oldest | select -ExpandProperty message&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The command and associated output are shown in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/3808.HSG_2D00_7_2D00_11_2D00_11_2D00_03.png"&gt;&lt;img style="border:0px;" title="Image of command and associated output" alt="Image of command and associated output" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/3808.HSG_2D00_7_2D00_11_2D00_11_2D00_03.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In attempting to work with individual event entries, it would be logical to use the date timestamp in a filter. I therefore take the time, cast it to a &lt;b&gt;system.datetime&lt;/b&gt; object, and use it with a &lt;b&gt;Where-Object&lt;/b&gt; filter. Unfortunately, no records are returned from the query. The two commands are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;$date = [datetime]&amp;quot;7/6/2011 6:03:51 PM&amp;quot;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent -LogName $wmilog -Oldest | where-object { $_.timecreated -eq $date }&lt;/p&gt;
&lt;p&gt;If I change the operator from &lt;b&gt;equals&lt;/b&gt; to &lt;b&gt;greater than&lt;/b&gt;, the command produces output. The revised command and associated output are shown here (the &lt;b&gt;?&lt;/b&gt; character is an alias for &lt;b&gt;Where-Object&lt;/b&gt;).&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmilog -Oldest | ? { $_.timecreated -gt $date }&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;TimeCreated&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;ProviderName&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 ProviderInfo for...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:01 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:42 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:42 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The reason the equality operator does not return any objects is because the &lt;b&gt;timecreated&lt;/b&gt; property is an instance of a &lt;b&gt;system.datetime&lt;/b&gt; object, and as such the property is more complex than a simple string. The following command explores the &lt;b&gt;timecreated&lt;/b&gt; property. Both the command and associated output are shown here (the command is broken at the pipeline character for the sake of readability; in reality, it is normally typed on a single line):&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmilog -Oldest -MaxEvents 1 |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-Member -Name timecreated&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp; TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;Name&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;MemberType&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;Definition&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TimeCreated Property&amp;nbsp;&amp;nbsp; System.Nullable`1[[System.DateTime, mscorlib, Version...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I can use the &lt;b&gt;maxevents&lt;/b&gt; property to help retrieve a single record for exploration. In the following command, I store the &lt;b&gt;eventlogrecord&lt;/b&gt; object in a variable named &lt;b&gt;$record&lt;/b&gt;&lt;i&gt;.&lt;/i&gt; I then display the &lt;b&gt;timecreated&lt;/b&gt; property. The commands and output follow:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record = Get-WinEvent -LogName $wmilog -Oldest -MaxEvents 1&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record.TimeCreated&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Wednesday, July 06, 2011 6:03:51 PM&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To get a better idea of what is involved in the &lt;b&gt;datetime&lt;/b&gt; object, I send the results from the &lt;b&gt;TimeCreated&lt;/b&gt; property across the pipeline to the &lt;b&gt;Format-List&lt;/b&gt; cmdlet. I use the &lt;i&gt;force&lt;/i&gt; parameter to ensure that any hidden properties display. The command and associated output are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record.TimeCreated | Format-List -Force&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 7/6/2011 12:00:00 AM&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Day&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 6&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;DayOfWeek&amp;nbsp;&amp;nbsp; : Wednesday&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;DayOfYear&amp;nbsp;&amp;nbsp; : 187&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Hour&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 18&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Kind&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Local&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Millisecond : 776&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Minute&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Month&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 7&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Second&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 51&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Ticks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 634455722317760648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TimeOfDay&amp;nbsp;&amp;nbsp; : 18:03:51.7760648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2011&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;DateTime&amp;nbsp;&amp;nbsp;&amp;nbsp; : Wednesday, July 06, 2011 6:03:51 PM&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If I hone in on the &lt;b&gt;timeofday&lt;/b&gt; property from the &lt;b&gt;timecreated&lt;/b&gt;&lt;i&gt; &lt;/i&gt;property, I see that another object is returned. The command and associated output are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record.TimeCreated.TimeOfDay&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Days&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Hours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 18&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 3&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 51&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Milliseconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 776&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Ticks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 650317760648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalDays&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0.752682593342593&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalHours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 18.0643822402222&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMinutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1083.86293441333&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalSeconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 65031.7760648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;TotalMilliseconds : 65031776.0648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When I am only interested in the type of object contained in a property, I use the &lt;b&gt;gettype&lt;/b&gt; method directly. The use of the &lt;b&gt;gettype&lt;/b&gt; method and associated output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; ($record.TimeCreated.TimeOfDay).gettype()&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;IsPublic&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;IsSerial&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;Name&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;BaseType&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;True&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; True&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeSpan&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.ValueType&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It is possible to use the ticks to filter records. There are a couple of ticks available for this use. The first is a tick associated with the &lt;b&gt;timespan&lt;/b&gt; object. &lt;a href="http://msdn.microsoft.com/en-us/library/system.timespan.ticks.aspx"&gt;This tick&lt;/a&gt; represents 100 nanoseconds since midnight. The tick is the smallest unit of time. In the code that follows, the &lt;b&gt;ticks&lt;/b&gt; property from the &lt;b&gt;timespan&lt;/b&gt; object contained in the &lt;b&gt;timeofday&lt;/b&gt; property is displayed. Next, I store the tick in the &lt;b&gt;$ticks&lt;/b&gt;&lt;i&gt; &lt;/i&gt;variable, and use it to display event log entries that occur at the same time of day. The commands and associated output are shown here.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record.TimeCreated.TimeOfDay.Ticks&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;650317760648&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $ticks = $record.TimeCreated.TimeOfDay.Ticks&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; Get-WinEvent -LogName $wmilog -Oldest |&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;? { $_.timecreated.timeofday.ticks -eq $ticks }&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;TimeCreated&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;ProviderName&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Window...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The other &lt;b&gt;ticks&lt;/b&gt;&lt;i&gt; &lt;/i&gt;property that is available is the one directly on the &lt;b&gt;system.datetime&lt;/b&gt; object stored in the &lt;b&gt;timecreated&lt;/b&gt; property. &lt;a href="http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx"&gt;This &lt;b&gt;ticks&lt;/b&gt; property&lt;/a&gt; represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001. The value of &lt;b&gt;ticks&lt;/b&gt; from the &lt;b&gt;datetime&lt;/b&gt; object is shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\&amp;gt; $record.TimeCreated.Ticks&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;634455722317760648&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;JM, that is all there is to filtering ETW logs in the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet using time stamps. Troubleshooting Windows Week will continue tomorrow when I will talk about searching the message results.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I invite you to follow me on &lt;a href="http://bit.ly/scriptingguystwitter" target="_blank"&gt;Twitter&lt;/a&gt; and &lt;a href="http://bit.ly/scriptingguysfacebook"&gt;Facebook&lt;/a&gt;. If you have any questions, send email to me at &lt;a href="mailto:scripter@microsoft.com" target="_blank"&gt;scripter@microsoft.com&lt;/a&gt;, or post your questions on the &lt;a href="http://bit.ly/scriptingforum" target="_blank"&gt;Official Scripting Guys Forum&lt;/a&gt;. See you tomorrow. Until then, peace.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ed Wilson, Microsoft Scripting Guy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3440394" width="1" height="1" alt="" /&gt;</description></item><item><title>Use PowerShell to Troubleshoot Windows</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2011/07/09/use-powershell-to-troubleshoot-windows.aspx</link><pubDate>Sat, 09 Jul 2011 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:11299</guid><dc:creator>Anonymous</dc:creator><description>&lt;p&gt;&lt;b&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/2043.wes_2D00_7_2D00_9_2D00_11_2D00_02.png"&gt;&lt;/a&gt;Summary&lt;/b&gt;: Learn how to use Windows PowerShell to troubleshoot Windows by working with ETW logs.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Weekend Scripter: Troubleshooting Windows&lt;/h1&gt;
&lt;p&gt;Microsoft Scripting Guy Ed Wilson here. I do not know about you, but I enjoy troubleshooting Microsoft Windows. There is something rewarding about seeing a problem, diagnosing the problem, and resolving the issue. With Windows 7, troubleshooting is quite a bit easier than it was in previous versions. One reason for this is because of all the new diagnostic logs that are available (these logs first became available with Windows Vista and Windows Server 2008; they are also available in Windows Server 2008 R2). The Event Tracing for Windows (ETW) logs are visible in Event Viewer as seen in the figure that follows.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/1440.HSG_2D00_7_2D00_9_2D00_11_2D00_01.png"&gt;&lt;img style="border:0px;" title="Image of ETW logs in Event Viewer" alt="Image of ETW logs in Event Viewer" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/1440.HSG_2D00_7_2D00_9_2D00_11_2D00_01.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Two things must happen before using the analytic and debug logs. The first is to make them visible. To do this, open Event Viewer by typing eventvwr in Windows PowerShell; or, click the &lt;b&gt;Start&lt;/b&gt; button, click &lt;b&gt;Control Panel&lt;/b&gt;, click &lt;b&gt;Administrative Tools&lt;/b&gt;, and then click &lt;b&gt;Event Viewer&lt;/b&gt;. On the &lt;b&gt;View&lt;/b&gt; menu in Event viewer, click &lt;b&gt;Show Analytic and Debug Logs&lt;/b&gt;, which is shown in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The second thing that must happen before using one of the analytic and debug logs is enabling the specific log. In most cases, these advanced analytic and debug logs are disabled because of performance reasons, so they must be specifically enabled. To enable a trace log, right-click the specific log and click &lt;b&gt;Enable Log&lt;/b&gt; in the shortcut menu, as shown in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/6433.wes_2D00_7_2D00_9_2D00_11_2D00_03.png"&gt;&lt;img style="border:0px;" title="Image of Enable Log option" alt="Image of Enable Log option" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/6433.wes_2D00_7_2D00_9_2D00_11_2D00_03.png" width="349" height="604" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Note&lt;/b&gt;&amp;nbsp; &amp;nbsp;Keep in mind that enabling a trace log requires administrator rights. If you attempt to enable the trace log without administrator rights, an &amp;ldquo;Access is denied&amp;rdquo; will be displayed. You must click &lt;b&gt;OK&lt;/b&gt;, and restart Event Viewer with administrator rights. If the account you used to click &lt;b&gt;Show Analytic and Debug Logs&lt;/b&gt; in the &lt;b&gt;View&lt;/b&gt; menu is different from the one with administrator rights, you will need to reselect the option to show the analytic and debug logs.&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;The best way to see how to work with the ETW logs is to &amp;ldquo;play around&amp;rdquo; with them. Enable the WMI-Activity Trace log by right clicking the log name and choosing &lt;b&gt;Enable Log&lt;/b&gt; from the shortcut menu. A warning message appears that states that you might lose events when enabled, but there are no events in the log anyway, so the message doesn&amp;rsquo;t apply in this case. The warning appears in the following figure.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/1033.wes_2D00_7_2D00_9_2D00_11_2D00_04.png"&gt;&lt;img style="border:0px;" title="Image of warning that doesn&amp;#39;t apply in this case" alt="Image of warning that doesn&amp;#39;t apply in this case" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/1033.wes_2D00_7_2D00_9_2D00_11_2D00_04.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After the WMI-Activity Trace log is enabled, generate some WMI activity by performing a query via the &lt;b&gt;Get-WMIObject&lt;/b&gt; cmdlet. Here is the command I use:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WmiObject win32_bios&lt;/p&gt;
&lt;p&gt;Now disable the WMI-Activity Trace log by right clicking it in Event Viewer and then clicking &lt;b&gt;Disable Log&lt;/b&gt;. Press F5 to refresh the view of the WMI-Activity Trace log, and the logging activity seen in the following figure is shown.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/0576.wes_2D00_7_2D00_9_2D00_11_2D00_05.png"&gt;&lt;img style="border:0px;" title="Image of logging activity" alt="Image of logging activity" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-76-18/0576.wes_2D00_7_2D00_9_2D00_11_2D00_05.png" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The &lt;b&gt;Get-WinEvent&lt;/b&gt; Windows PowerShell cmdlet is used to query ETW logs. The first task is to find the WMI-Activity Trace log.&lt;/p&gt;
&lt;p&gt;It is possible to use wild cards to assist in finding trace logs. Unfortunately, when I attempt this nothing is returned. This command and its associated error output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; Get-WinEvent -ListLog *wmi* | select logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent : There is not an event log on the localhost computer that matches &amp;quot;*wmi*&amp;quot;.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;At line:1 char:13&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;+ Get-WinEvent &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp; -ListLog *wmi* | select logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + CategoryInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : ObjectNotFound: (:) [Get-WinEvent], Exception&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + FullyQualifiedErrorId : NoMatchingLogsFound,Microsoft.PowerShell.Commands.GetWinEventCommand&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;An error appears because you must make analytic and debug logs visible to the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet by using the &lt;i&gt;force&lt;/i&gt; switched parameter. The revised command and associated output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; Get-WinEvent -ListLog *wmi* -force | select logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;LogName&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Microsoft-Windows-EventLog-WMIProvider/Debug&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Microsoft-Windows-WMI-Activity/Trace&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are two logs that match the wildcard character pattern &lt;b&gt;*wmi*&lt;/b&gt;. No problem! I add the word &lt;b&gt;trace&lt;/b&gt; to the end of my wildcard character pattern, and now I retrieve only the log name I am interested in viewing. The command and associated output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; Get-WinEvent -ListLog *wmi*trace -force | select logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;LogName&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;-------&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Microsoft-Windows-WMI-Activity/Trace&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Because the wildcard character pattern only returns a single item, it is possible to retrieve the log name directly by using a dotted notation. When completed, I can use the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet to retrieve contents from the WMI trace log file. Unfortunately, an error occurs. The command and associated error are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; $wmiLog = (Get-WinEvent -ListLog *wmi*trace -force).logname&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; Get-WinEvent -LogName $wmilog&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;Get-WinEvent : The Microsoft-Windows-WMI-Activity/Trace event log can be read only in the forward chronological order because it is an analytical or a debug log. To see events from the Microsoft-Windows-WMI-Activity/Trace event log, use the Oldest parameter in the command.&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;At line:1 char:13&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;+ Get-WinEvent &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp; -LogName $wmilog&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + CategoryInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : InvalidArgument: (Microsoft-Windows-WMI-Activity/Trace:String) [Get-WinEvent], Exception&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; + FullyQualifiedErrorId : SpecifyOldestForLog,Microsoft.PowerShell.Commands.GetWinEventCommand&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The needed clue appears in the error message, &amp;ldquo;&amp;hellip;use the Oldest parameter in the command.&amp;rdquo; After I modify the command, the command works. The revised command and associated output are shown here:&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt; Get-WinEvent -LogName $wmilog -Oldest&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&lt;span style="text-decoration:underline;"&gt;TimeCreated&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;ProviderName&lt;/span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="text-decoration:underline;"&gt;Id Message&lt;/span&gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 398; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 402&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 403&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 401&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 404&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 405&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 406; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 406&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 407&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 GroupOperationId = 399; Op...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 408&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:03:51 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 ProviderInfo for GroupOper...&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:01 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 400&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:42 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 387&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;7/6/2011 6:04:42 PM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft-Windows-WMI-Acti...&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3 Stop OperationId = 398&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;PS C:\Windows\system32&amp;gt;&lt;/p&gt;
&lt;p style="padding-left:30px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Well, that is enough for a Saturday. Tomorrow, I have a great guest article by James Brundage. On Monday, I will pick up where we left off today, and we will begin to analyze the WMI trace log. For more information about using the &lt;b&gt;Get-WinEvent&lt;/b&gt; cmdlet, refer to &lt;a href="http://blogs.technet.com/search/searchresults.aspx?q=Get-WinEvent&amp;amp;sections=7618"&gt;this collection of Hey, Scripting Guy! Blog posts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I invite you to follow me on &lt;a href="http://bit.ly/scriptingguystwitter" target="_blank"&gt;Twitter&lt;/a&gt; and &lt;a href="http://bit.ly/scriptingguysfacebook"&gt;Facebook&lt;/a&gt;. If you have any questions, send email to me at &lt;a href="mailto:scripter@microsoft.com" target="_blank"&gt;scripter@microsoft.com&lt;/a&gt;, or post your questions on the &lt;a href="http://bit.ly/scriptingforum" target="_blank"&gt;Official Scripting Guys Forum&lt;/a&gt;. See you tomorrow. Until then, peace.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ed Wilson, Microsoft Scripting Guy &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3440390" width="1" height="1" alt="" /&gt;</description></item><item><title>Reuse PowerShell Code to Simplify Script Creation</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2010/10/07/reuse-powershell-code-to-simplify-script-creation.aspx</link><pubDate>Thu, 07 Oct 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:7790</guid><dc:creator>Anonymous</dc:creator><description>Summary : The Microsoft Scripting Guys describe how to reuse Windows PowerShell code to simplify script writing and retrieve reliability information. &amp;#160; Hey, Scripting Guy! I really enjoy reading your stuff. It is generally both fun and informative...(&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2010/10/07/reuse-powershell-code-to-simplify-script-creation.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3360142" width="1" height="1" alt="" /&gt;</description></item><item><title>Use PowerShell to Check for WMI Dependencies on Windows 7</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2010/10/06/use-powershell-to-check-for-wmi-dependencies-on-windows-7.aspx</link><pubDate>Wed, 06 Oct 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:7778</guid><dc:creator>Anonymous</dc:creator><description>Summary : Use Windows PowerShell to check for WMI dependencies on Windows 7 and Windows Server 2008 R2. Hey, Scripting Guy! I am very excited about using the WMI reliability classes for monitoring purposes. As you mentioned in your previous articles,...(&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2010/10/06/use-powershell-to-check-for-wmi-dependencies-on-windows-7.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3359885" width="1" height="1" alt="" /&gt;</description></item><item><title>Use PowerShell to Graph the Reliability of Windows 2008 R2</title><link>http://powershell.com/cs/blogs/hey-scriptingguy/archive/2010/10/05/use-powershell-to-graph-the-reliability-of-windows-2008-r2.aspx</link><pubDate>Tue, 05 Oct 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">f421715f-7aba-45f0-8a8d-44de5318a3a7:7769</guid><dc:creator>Anonymous</dc:creator><description>Summary : Microsoft Scripting Guy Ed Wilson shows you how to use Group Policy to enable reliability tracing via Windows PowerShell and Microsoft Graph. Hey, Scripting Guy! First of all, let me say that yesterday&amp;rsquo;s article was interesting. We are...(&lt;a href="http://blogs.technet.com/b/heyscriptingguy/archive/2010/10/05/use-powershell-to-graph-the-reliability-of-windows-2008-r2.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3359881" width="1" height="1" alt="" /&gt;</description></item></channel></rss>