<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://powershell.com/cs/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Power Tips</title><subtitle type="html" /><id>http://powershell.com/cs/blogs/tips/atom.aspx</id><link rel="alternate" type="text/html" href="http://powershell.com/cs/blogs/tips/default.aspx" /><link rel="self" type="application/atom+xml" href="http://powershell.com/cs/blogs/tips/atom.aspx" /><generator uri="http://communityserver.org" version="4.1.30929.2835">Community Server</generator><updated>2012-01-19T06:00:00Z</updated><entry><title>Finding Email of Logged On User</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/08/finding-email-of-logged-on-user.aspx" /><id>/cs/blogs/tips/archive/2012/02/08/finding-email-of-logged-on-user.aspx</id><published>2012-02-08T12:00:00Z</published><updated>2012-02-08T12:00:00Z</updated><content type="html">&lt;p&gt;In an Active Directory environment, PowerShell can easily find the currently logged on user and retrieve AD information about that user, for example, his or her email address:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#800080;"&gt;$searcher&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; [&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;adsisearcher&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;(samaccountname=$env:username)&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#800080;"&gt;$searcher&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;FindOne&lt;/span&gt;&lt;span style="color:#000000;"&gt;()&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;mail&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;A logon script could then process this information.&lt;/p&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Finding%20Email%20of%20Logged%20On%20User%20with%20%23PowerShell+http://bit.ly/yLk7NC"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Finding%20Email%20of%20Logged%20On%20User%20with%20%23PowerShell+http://bit.ly/yLk7NC"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14370" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Remotely Launching Processes</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/07/remotely-launching-processes.aspx" /><id>/cs/blogs/tips/archive/2012/02/07/remotely-launching-processes.aspx</id><published>2012-02-07T12:00:00Z</published><updated>2012-02-07T12:00:00Z</updated><content type="html">&lt;p&gt;Unfortunately, the Start-Process cmdlet has no -ComputerName parameter so you cannot use it to launch processes on remote machines. &lt;/p&gt;
&lt;p&gt;Use WMI instead! This line will run calc.exe on your local machine:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Invoke-WmiMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_Process&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Create&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#8b4513;"&gt;calc.exe&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReturnValue&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-eq&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;And this slight adaption will run calc.exe on a computer named &amp;quot;storage1&amp;quot; with Administrator credentials (adjust machine name and user name to your needs): &lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Invoke-WmiMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_Process&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Create&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#8b4513;"&gt;calc.exe&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-ComputerName&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;storage1&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#5f9ea0;"&gt;-Credential&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Administrator&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReturnValue&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-eq&lt;/span&gt;&lt;span style="color:#000000;"&gt; 0&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Note that calc.exe will run but is not visible to anyone. So in real life, you&amp;#39;d use this technique to launch command line tools or applications that are designed to run unattended.&lt;/p&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Remotely%20Launching%20Processes%20with%20%23PowerShell+http://bit.ly/zz8CUn"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Remotely%20Launching%20Processes%20with%20%23PowerShell+http://bit.ly/zz8CUn"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14369" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Keeping Remote Programs Running</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/06/keeping-remote-programs-running.aspx" /><id>/cs/blogs/tips/archive/2012/02/06/keeping-remote-programs-running.aspx</id><published>2012-02-06T12:00:00Z</published><updated>2012-02-06T12:00:00Z</updated><content type="html">&lt;p&gt;When you use PowerShell Remoting (like the Enter-PSSession cmdlet) to connect to another machine and then start a program using Start-Process, the program is automatically associated to your remote session. Once you leave and discard your remote session, all programs you previously started with Start-Process will also be killed.&lt;/p&gt;
&lt;p&gt;While this is a reasonable cleanup strategy for most scenarios, you sometimes want programs to continue to run, even after you discarded your remoting session. To do that, use WMI rather than Start-Process to run the program:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Invoke-WmiMethod&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_Process&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Create&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#8b4513;"&gt;calc.exe&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReturnValue&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-eq&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;0&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Keeping%20Remote%20Programs%20Running%20with%20%23PowerShell+http://bit.ly/zKoz8J"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Keeping%20Remote%20Programs%20Running%20with%20%23PowerShell+http://bit.ly/zKoz8J"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14367" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Converting TABs to Spaces</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/03/converting-tabs-to-spaces.aspx" /><id>/cs/blogs/tips/archive/2012/02/03/converting-tabs-to-spaces.aspx</id><published>2012-02-03T12:00:00Z</published><updated>2012-02-03T12:00:00Z</updated><content type="html">&lt;p&gt;When you want to publish PowerShell code, you may want to make sure that all TAB characters are converted to one or more spaces to save space.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the code that turns TAB characters to spaces:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$text&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;This is a`tTAB-delimited`tText&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$text&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;This&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;is&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;a&lt;/span&gt;&lt;span style="color:#000000;"&gt;       &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;TAB-delimited&lt;/span&gt;&lt;span style="color:#000000;"&gt;   &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Text&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$text&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-replace&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;\t&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;  &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;This&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;is&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;a&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;TAB-delimited&lt;/span&gt;&lt;span style="color:#000000;"&gt;  &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Text&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Converting%20TABs%20to%20Spaces%20with%20%23PowerShell+http://bit.ly/wCwcms"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Converting%20TABs%20to%20Spaces%20with%20%23PowerShell+http://bit.ly/wCwcms"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14216" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Removing Multiple White Spaces</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/02/removing-multiple-white-spaces.aspx" /><id>/cs/blogs/tips/archive/2012/02/02/removing-multiple-white-spaces.aspx</id><published>2012-02-02T12:00:00Z</published><updated>2012-02-02T12:00:00Z</updated><content type="html">&lt;p&gt;Removing multiple white spaces from text is easy in PowerShell. Simply use -replace operator and look for whitespaces (&amp;quot;\s&amp;quot;) that occur one or more time (&amp;quot;+&amp;quot;), then replace them all with just one whitespace:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;[     Man,     it works!     ]&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-replace&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;\s+&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
[ &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Man&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;it&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;works&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;!&lt;/span&gt;&lt;span style="color:#000000;"&gt; ]
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Removing%20Multiple%20White%20Spaces%20with%20%23PowerShell+http://bit.ly/xZJWBk"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Removing%20Multiple%20White%20Spaces%20with%20%23PowerShell+http://bit.ly/xZJWBk"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14215" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Removing Options from Command String (Enhancement)</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/02/01/removing-options-from-command-string-enhancement.aspx" /><id>/cs/blogs/tips/archive/2012/02/01/removing-options-from-command-string-enhancement.aspx</id><published>2012-02-01T12:00:00Z</published><updated>2012-02-01T12:00:00Z</updated><content type="html">&lt;p&gt;In a previous tip we showed how you can remove options from a command line text using -replace. Here is a more versatile approach. It will remove any character or word that starts with &amp;quot;/&amp;quot; and then remove all trailing spaces as well:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$command&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;somecommand &amp;quot;C:\Some Folder&amp;quot; &amp;quot;C:\Some New Folder Name&amp;quot; /y /r /quiet /simple&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#800080;"&gt;$command&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-replace&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;/\w*&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$null&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;trim&lt;/span&gt;&lt;span style="color:#000000;"&gt;()
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;somecommand&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some Folder&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some New Folder Name&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Removing%20Options%20from%20Command%20String%20(Enhancement)%20with%20%23PowerShell+http://bit.ly/yvuZOZ"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Removing%20Options%20from%20Command%20String%20(Enhancement)%20with%20%23PowerShell+http://bit.ly/yvuZOZ"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14213" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Remove Options from Command String</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/31/remove-options-from-command-string.aspx" /><id>/cs/blogs/tips/archive/2012/01/31/remove-options-from-command-string.aspx</id><published>2012-01-31T12:00:00Z</published><updated>2012-01-31T12:00:00Z</updated><content type="html">&lt;p&gt;Let&amp;#39;s assume you&amp;#39;d like to remove all options from a raw text command such as this one:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;xcopy&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some Folder&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some New Folder Name&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;/y&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;/r&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;/Q&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Since all options start with &amp;quot;/&amp;quot; and are a single character, you can derive a pattern and use a regular expression replace operation. Have a look:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;xcopy &amp;quot;C:\Some Folder&amp;quot; &amp;quot;C:\Some New Folder Name&amp;quot; /y /r /Q&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-replace&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;/.&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800080;"&gt;$null&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;xcopy&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some Folder&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;C:\Some New Folder Name&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;All options are removed. -replace was looking for a &amp;quot;/&amp;quot; and then any other character (&amp;quot;.&amp;quot;) and replacing every occurrence with nothing ($null).&lt;/p&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Remove%20Options%20from%20Command%20String%20with%20%23PowerShell+http://bit.ly/zowz88"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Remove%20Options%20from%20Command%20String%20with%20%23PowerShell+http://bit.ly/zowz88"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14212" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Using Shared Variables</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/30/using-shared-variables.aspx" /><id>/cs/blogs/tips/archive/2012/01/30/using-shared-variables.aspx</id><published>2012-01-30T12:00:00Z</published><updated>2012-01-30T12:00:00Z</updated><content type="html">&lt;p&gt;By default, all variables created in functions are local, so they only exist within that function and all functions that are called from within this function.&lt;/p&gt;
&lt;p&gt;Sometimes, you&amp;#39;d like to examine variables defined in a function after that function executed. Or you&amp;#39;d like to persist a variable, so next time the function is called it can increment some counter or continue to work with that variable rather than creating a brand new variable each time.&lt;/p&gt;
&lt;p&gt;To achieve this, use shared variables by prepending &amp;#39;Script:&amp;#39; to a variable name. Here&amp;#39;s a sample:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Call-Me&lt;/span&gt;&lt;span style="color:#000000;"&gt; { &lt;/span&gt;&lt;span style="color:#800080;"&gt;$script:counter&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;++&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;You called me $script:counter times!&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; }
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Call-Me&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;You&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;called&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;me&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;1&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;times&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;!&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Call-Me&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;You&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;called&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;me&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;2&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;times&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;!&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Call-Me&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;You&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;called&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;me&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;times&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;!&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Note that the variable $counter now does not exist inside the function anymore. Instead, it is created in the context of the caller (the place where you called Call-Me). If you prepended a variable name with &amp;#39;global:&amp;#39;, the variable would be created in the topmost context and thus available everywhere. &lt;/p&gt;
&lt;p&gt;&lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40PowerTip+%20Using%20Shared%20Variables%20with%20%23PowerShell+http://bit.ly/yz9b5E"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; &lt;a target="twitter" href="http://twitter.com/home/?status=RT+%40%20Using%20Shared%20Variables%20with%20%23PowerShell+http://bit.ly/yz9b5E"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14211" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Catching Errors</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/27/catching-errors.aspx" /><id>/cs/blogs/tips/archive/2012/01/27/catching-errors.aspx</id><published>2012-01-27T12:00:00Z</published><updated>2012-01-27T12:00:00Z</updated><content type="html">&lt;p&gt;In forums, people often get confused with error handling. For example, this code does not call the error handler. Instead, the red PowerShell error message pops up:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;span style="color:#000000;"&gt; { &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Remove-Item&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;\\&lt;/span&gt;&lt;span style="color:#800080;"&gt;$name&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;c&lt;/span&gt;&lt;span style="color:#000000;"&gt;$\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;windows&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;temp&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;filename.exe&lt;/span&gt;&lt;span style="color:#000000;"&gt; }
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color:#000000;"&gt; {&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Write&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;Not able to access files on $name&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;}
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;When you want to catch errors produced by cmdlets, always make sure you add the parameter -ErrorAction Stop to it. Only then will the cmdlet emit an exception that your script can handle. So this works:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;try&lt;/span&gt;&lt;span style="color:#000000;"&gt; { &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Remove-Item&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;\\&lt;/span&gt;&lt;span style="color:#800080;"&gt;$name&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;c&lt;/span&gt;&lt;span style="color:#000000;"&gt;$\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;windows&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;temp&lt;/span&gt;&lt;span style="color:#000000;"&gt;\&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;filename.exe&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-ErrorAction&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Stop&lt;/span&gt;&lt;span style="color:#000000;"&gt; }
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;catch&lt;/span&gt;&lt;span style="color:#000000;"&gt; {&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Write&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;Not able to access files on $name&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;}
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;If you want error handling for all cmdlets, you can also change the default mode like this:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#000080;"&gt;$ErrorActionPreference&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Stop&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Catching%20Errors%20with%20%23PowerShell+http://bit.ly/xS1RVC" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Catching%20Errors%20with%20%23PowerShell+http://bit.ly/xS1RVC" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14123" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Analyzing System Restarts (Alternative)</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/26/analyzing-system-restarts-alternative.aspx" /><id>/cs/blogs/tips/archive/2012/01/26/analyzing-system-restarts-alternative.aspx</id><published>2012-01-26T12:00:00Z</published><updated>2012-01-26T12:00:00Z</updated><content type="html">&lt;p&gt;In a previous tip we showed how to use Get-EventLog to extract all events related to system reboots. In PowerShell v2, a new cmdlet called Get-WinEvent was added. With it, you can not only access and read the &amp;quot;classic&amp;quot; event logs but also the application event logs introduced in Windows Vista.&lt;/p&gt;
&lt;p&gt;To illustrate this, here&amp;#39;s sample code that uses Get-WinEvent to extract reboot events:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WinEvent&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-FilterHashtable&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#000000;"&gt;{&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;logname&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;System&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;id&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt;1074&lt;/span&gt;&lt;span style="color:#000000;"&gt;}  &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt;
  &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;ForEach-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; {
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;New-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PSObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;process&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;ReasonCode&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Comment&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;TimeCreated&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;6&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Process&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;4&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;2&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReasonCode&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Comment&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Properties&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;5&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Value&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    
  } &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Note that Get-WinEvent will not work with Windows XP.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Analyzing%20System%20Restarts%20(Alternative)%20with%20%23PowerShell+http://bit.ly/xGBtBG" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Analyzing%20System%20Restarts%20(Alternative)%20with%20%23PowerShell+http://bit.ly/xGBtBG" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14122" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Analyzing System Restarts</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/25/analyzing-system-restarts.aspx" /><id>/cs/blogs/tips/archive/2012/01/25/analyzing-system-restarts.aspx</id><published>2012-01-25T12:00:00Z</published><updated>2012-01-25T12:00:00Z</updated><content type="html">&lt;p&gt;To find out when a system restarted and why, use the below code to extract the relevant information from the System event log:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Get-EventLog&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-LogName&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;System&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-ComputerName&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;storage1&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;where&lt;/span&gt;&lt;span style="color:#000000;"&gt; {&lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;EventId&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;-eq&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000000;"&gt;1074&lt;/span&gt;&lt;span style="color:#000000;"&gt;} &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt;
&lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;ForEach-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; {

    &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;New-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;PSObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;process&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;ReasonCode&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Comment&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Message&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;4&lt;/span&gt;&lt;span style="color:#000000;"&gt;]) {
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;TimeGenerated&lt;/span&gt;&lt;span style="color:#000000;"&gt;
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;6&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Process&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;4&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;2&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReasonCode&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;3&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Comment&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;ReplacementStrings&lt;/span&gt;&lt;span style="color:#000000;"&gt;[&lt;/span&gt;&lt;span style="color:#000000;"&gt;5&lt;/span&gt;&lt;span style="color:#000000;"&gt;]
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Message&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;Message&lt;/span&gt;&lt;span style="color:#000000;"&gt;
        &lt;/span&gt;&lt;span style="color:#800080;"&gt;$rv&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    }
} &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Date&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Action&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Reason&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;User&lt;/span&gt;&lt;span style="color:#000000;"&gt; 
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Event ID 1074 represents a restart event. Rather than extracting the relevant information from the event message text, this code uses the ReplacementStrings property which is an array and holds the significant information bits. Accessing the event entries&amp;#39; replacement strings is much easier than parsing the message text.&lt;/p&gt;
&lt;p&gt;The code returns information only if the particular event entry has content in ReplacementStrings[4] (the 5th element of the array) because only then does the event entry represent a shutdown or reboot event.&lt;/p&gt;
&lt;p&gt;Note that Get-EventLog supports the -ComputerName parameter, so if a remote system is set up for remote access and you own the appropriate privileges, you can also analyze remote systems.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Analyzing%20System%20Restarts%20with%20%23PowerShell+http://bit.ly/zap5z7" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Analyzing%20System%20Restarts%20with%20%23PowerShell+http://bit.ly/zap5z7" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14121" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Sending Emails Securely (via SSL)</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/24/sending-emails-securely-via-ssl.aspx" /><id>/cs/blogs/tips/archive/2012/01/24/sending-emails-securely-via-ssl.aspx</id><published>2012-01-24T12:00:00Z</published><updated>2012-01-24T12:00:00Z</updated><content type="html">&lt;p&gt;In a previous tip we showed how to use the Send-MailMessage cmdlet to send off emails and preserve special characters by using UTF8 encoding. When you try this with your freemailer, you may run into issues where your SMTP server complains about needing a secure connection.&lt;/p&gt;
&lt;p&gt;So, when you receive such an error message, make sure you add the switch parameter -UseSsl. This only works right though if you use PowerShell v3 (the public CTP2 is readily available). In PowerShell v2, Send-MailMessage does not use the correct port for SSL connections.&lt;/p&gt;
&lt;p&gt;Here is a sample that uses the live.com freemailer (formally called &amp;quot;Hotmail&amp;quot;) which does require a secure connection:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;PS&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Send-MailMessage&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Body&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;My mail message can contain special characters: &amp;auml;&amp;ouml;&amp;uuml;&amp;szlig;&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-From&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;youraccountname&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;hotmail.com&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-to&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;someone&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;somewhere.com&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Credential&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;youraccountname&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;hotmail.com&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-SmtpServer&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#8b4513;"&gt;smtp.live.com&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Subject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Sending Mail from PowerShell&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Encoding&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;UTF8&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-UseSsl&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Note that PowerShell v3 Send-MailMessage accepts &amp;quot;UTF8&amp;quot; directly so you no longer need to submit the awkward ([System.Text.Encoding]::UTF8).&lt;/p&gt;
&lt;p&gt;There are plenty of websites that list SMTP server URLs for your favorite provider: http://www.e-eeasy.com/SMTPServerList.aspx.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Sending%20Emails%20Securely%20(via%20SSL)%20with%20%23PowerShell+http://bit.ly/zAoYut" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Sending%20Emails%20Securely%20(via%20SSL)%20with%20%23PowerShell+http://bit.ly/zAoYut" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14120" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Sending Emails with Special Characters</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/23/sending-emails-with-special-characters.aspx" /><id>/cs/blogs/tips/archive/2012/01/23/sending-emails-with-special-characters.aspx</id><published>2012-01-23T12:00:00Z</published><updated>2012-01-23T12:00:00Z</updated><content type="html">&lt;p&gt;PowerShell has built-in support for sending emails: Send-MailMessage! All you need is an SMTP server. However, with standard encoding you may run into issues where special characters are mangled. Use the -Encoding parameter and specify UTF8 to preserve such characters. Here&amp;#39;s a sample with a German freemailer web.de:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Send-MailMessage&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Body&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;I can send special characters: &amp;auml;&amp;ouml;&amp;uuml;&amp;szlig;&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-From&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;youraccountname&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;web.de&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-to&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;someone&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;somewhere.com&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Credential&lt;/span&gt;&lt;span style="color:#000000;"&gt; (&lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Get-Credential&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;youraccountname&lt;/span&gt;&lt;span style="color:#000000;"&gt;@&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;web.de&lt;/span&gt;&lt;span style="color:#000000;"&gt;) &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-SmtpServer&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#8b4513;"&gt;smtp.web.de&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Subject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Sending Mail From PowerShell&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Encoding&lt;/span&gt;&lt;span style="color:#000000;"&gt; ([&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;System.Text.Encoding&lt;/span&gt;&lt;span style="color:#000000;"&gt;]&lt;/span&gt;&lt;span style="color:#000000;"&gt;::&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;UTF8&lt;/span&gt;&lt;span style="color:#000000;"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Sending%20Emails%20with%20Special%20Characters%20with%20%23PowerShell+http://bit.ly/yi0D8g" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Sending%20Emails%20with%20Special%20Characters%20with%20%23PowerShell+http://bit.ly/yi0D8g" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=14119" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Check Active Internet Connection</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/20/check-active-internet-connection.aspx" /><id>/cs/blogs/tips/archive/2012/01/20/check-active-internet-connection.aspx</id><published>2012-01-20T12:00:00Z</published><updated>2012-01-20T12:00:00Z</updated><content type="html">&lt;p&gt;If your machine is connected to the Internet more than once, let&amp;#39;s say cabled and wireless at the same time, which connection is used? Here&amp;#39;s a function that tells you (thanks for inspiration to fellow MVP Richard Siddaway):&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#0000ff;"&gt;function&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;test-ipmetric&lt;/span&gt;&lt;span style="color:#000000;"&gt; {
    &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WmiObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_NetworkAdapter&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Filter&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;AdapterType=&amp;#39;Ethernet 802.3&amp;#39;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;ForEach-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; { &lt;/span&gt;&lt;span style="color:#000080;"&gt;$_&lt;/span&gt;&lt;span style="color:#000000;"&gt;.&lt;/span&gt;&lt;span style="color:#8b4513;"&gt;GetRelated&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Win32_NetworkAdapterConfiguration&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#000000;"&gt;) } &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;|&lt;/span&gt;&lt;span style="color:#000000;"&gt;
    &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;Select-Object&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Description&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Index&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;IPEnabled&lt;/span&gt;&lt;span style="color:#000000;"&gt;,&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;IPConnectionMetric&lt;/span&gt;&lt;span style="color:#000000;"&gt;
}
&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Check%20Active%20Internet%20Connection%20with%20%23PowerShell+http://bit.ly/wF4dpY" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Check%20Active%20Internet%20Connection%20with%20%23PowerShell+http://bit.ly/wF4dpY" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=13976" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry><entry><title>Use WMI and WQL!</title><link rel="alternate" type="text/html" href="/cs/blogs/tips/archive/2012/01/19/use-wmi-and-wql.aspx" /><id>/cs/blogs/tips/archive/2012/01/19/use-wmi-and-wql.aspx</id><published>2012-01-19T12:00:00Z</published><updated>2012-01-19T12:00:00Z</updated><content type="html">&lt;p&gt;WMI is a great information resource, and Get-WmiObject makes it easy to retrieve WMI instances. First, use -List parameter to find WMI class names. For example, find classes that deal with network:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WmiObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-List&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;*&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;network&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;*&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Next, pick one of the classes and enumerate its instances:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WmiObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;Win32_NetworkAdapterConfiguration&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;With WQL, a SQL-type query language for WMI, you can even create more sophisticated queries, such as:&lt;/p&gt;
&lt;pre&gt;&lt;span style="color:#5f9ea0;"&gt;Get-WmiObject&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#5f9ea0;"&gt;-Query&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Select * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;#39;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;To learn more about the specific WQL format and the keywords you can use, check this reference: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394606(v=vs.85).aspx&lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/home/?status=RT+%40PowerTip+%20Use%20WMI%20and%20WQL!%20with%20%23PowerShell+http://bit.ly/wofRme" target="twitter"&gt;&lt;img src="http://powershell.com/cs/Themes/powershell/images/ps/twitter_32x32.png" alt="Twitter This Tip!" style="vertical-align:middle;border:0px;" /&gt;&lt;/a&gt; 
&lt;a href="http://twitter.com/home/?status=RT+%40%20Use%20WMI%20and%20WQL!%20with%20%23PowerShell+http://bit.ly/wofRme" target="twitter"&gt;ReTweet this Tip!&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://powershell.com/cs/aggbug.aspx?PostID=13975" width="1" height="1"&gt;</content><author><name>ps1</name><uri>http://powershell.com/cs/members/ps1/default.aspx</uri></author></entry></feed>
