<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Windows Storage Team</title><link>http://blogs.msdn.com/b/san/</link><description>Windows Storage and Filesystems</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Two new modules related to Storage Spaces for Windows PowerShell</title><link>http://blogs.msdn.com/b/san/archive/2012/10/19/two-new-modules-related-to-storage-spaces-for-windows-powershell.aspx</link><pubDate>Fri, 19 Oct 2012 21:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10361304</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10361304</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/10/19/two-new-modules-related-to-storage-spaces-for-windows-powershell.aspx#comments</comments><description>&lt;p&gt;Hello,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ve just posted two new modules for Windows PowerShell that I wrote which are designed to help with the management and diagnosis of Storage Spaces.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;These modules are;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;StorageSpaces     &lt;br /&gt;&lt;/strong&gt;This module automates deployment of Storage Spaces and provides intent-based management.&amp;#160; For example, instead of using many different cmdlets from the &lt;strong&gt;Storage&lt;/strong&gt; module to create a Storage Space, Initialize it, partition it, and format it, all of these tasks are performed via a single cmdlet in Windows PowerShell. &lt;/p&gt;  &lt;p&gt;Additionally these cmdlets will work in conjunction with a Failover Cluster using shared SAS storage with Storage Spaces to create a Cluster Shared Volume (CSV) in a single step as well.&lt;/p&gt;  &lt;p&gt;Read more and download the module here;   &lt;br /&gt;&lt;a title="http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-module-for-4be70a0c" href="http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-module-for-4be70a0c"&gt;http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-module-for-4be70a0c&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Storage Spaces Performance Diagnostic     &lt;br /&gt;&lt;/strong&gt;This module can be used to diagnose issues where one or more disks in a Storage Pool are performing abnormally, which are resulting in a Storage Space performing slowly.&lt;/p&gt;  &lt;p&gt;Read more, and download this module here;   &lt;br /&gt;&lt;a title="http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-Performance-9366b756" href="http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-Performance-9366b756"&gt;http://gallery.technet.microsoft.com/scriptcenter/Storage-Spaces-Performance-9366b756&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks, and I hope you find value in using these add-on modules for Windows PowerShell.&lt;/p&gt;  &lt;p&gt;Also, I wish to take a moment to apologize to my Wife for the time I’ve spent over the last 2 years or so learning Windows PowerShell and writing these modules, as well as to thank her for not killing me during the process &lt;img class="wlEmoticon wlEmoticon-smile" style="style" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7522.wlEmoticon_2D00_smile_5F00_4224CD34.png" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks also to Wentao Deng for his assistance with the PowerShell remote calls for Failover Clustering management, as well as his assistance with testing and bug fixes during the course of this project.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Sincerely, &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce Langworthy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10361304" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Performance+Monitor/">Performance Monitor</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Performance/">Storage Performance</category><category domain="http://blogs.msdn.com/b/san/archive/tags/StorageSpaces/">StorageSpaces</category></item><item><title>Creating a Bootable USB Disk on Windows 8 for deploying Windows</title><link>http://blogs.msdn.com/b/san/archive/2012/10/04/creating-a-bootable-usb-disk-in-the-windows-8-consumer-preview.aspx</link><pubDate>Thu, 04 Oct 2012 21:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10283721</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10283721</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/10/04/creating-a-bootable-usb-disk-in-the-windows-8-consumer-preview.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2" face="Calibri"&gt;As an introduction to some of the major improvements in managing your storage via PowerShell in the Windows 8, I wanted to give a comparison of how you would go through the process of creating a bootable USB disk such as would be done for deploying Windows 8 to multiple computers.&lt;/font&gt;&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Historically, this could have been achieved via &lt;strong&gt;Diskpart.exe,&lt;/strong&gt; as long as I knew the correct disk number, as it was not easy to script this operation with DiskPart.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font color="#9b00d3" face="Calibri"&gt;My scenario for this post is the following;&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;I have 2 USB disks connected to my machine, and I want to erase only one of these, make it bootable, and copy the Consumer Preview image to this disk for fast deployment on several machines.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font color="#9b00d3" face="Calibri"&gt;Prior method using DiskPart.exe&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;First, I would need to do some research using &lt;strong&gt;Diskpart&lt;/strong&gt;.exe or &lt;strong&gt;DiskMgmt&lt;/strong&gt; and would need to figure out which of the disks I have was the one that mapped to my USB disk..&lt;/font&gt;&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Using the &lt;strong&gt;Select Disk X&lt;/strong&gt;, &lt;strong&gt;Detail disk&lt;/strong&gt; commands in &lt;strong&gt;Diskpart&lt;/strong&gt; against every disk, I could eventually determine which of the disks I have connected is the USB disk, which would have allowed me to prepare the disk. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The issue here is this is not really scriptable via &lt;strong&gt;DiskPa&lt;/strong&gt;rt without building scripts to parse the output of &lt;strong&gt;DiskPart&lt;/strong&gt; to find the correct disk.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5153.image_5F00_5EE29E80.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0451.image_5F00_thumb_5F00_7367EDFE.png" width="417" height="274" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Followed by all of the appropriate commands to prepare this disk from &lt;strong&gt;diskpart&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;This method is painful, and I don’t like painful &lt;img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3443.wlEmoticon_2D00_smile_5F00_6E6F7967.png" /&gt;&lt;/font&gt;&lt;/p&gt; &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;&lt;font color="#9b00d3"&gt;Using Windows PowerShell to achieve this scenario using Windows 8:&lt;/font&gt;&amp;#160;&lt;/font&gt;&lt;/h3&gt; &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;em&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Warning&lt;/font&gt;&lt;/strong&gt;: &lt;font color="#ff0000"&gt;The Clear-Disk command does erase the disk(s) specified. Running these commands with multiple USB disks connected would erase &lt;strong&gt;all&lt;/strong&gt; of the USB disks unless the results are filtered further.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;List all of the Disks that are connected&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0815.image_5F00_0AF268A5.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8233.image_5F00_thumb_5F00_1F77B823.png" width="531" height="88" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Since I wanted to specifically use a specific USB disk for this process, I need to list only the USB-connected disks:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;List all the disks that are connected via USB&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | where-object BusType -eq &amp;quot;USB&amp;quot;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4532.image_5F00_58226230.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7268.image_5F00_thumb_5F00_38075573.png" width="536" height="61" /&gt;&lt;/a&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Since I have 2 USB disks connected (as seen above), and I only want clear and prepare the first one, I would need to either filter the list above further, or to specify the exact disk to manage, using one of the following approaches:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk 7&lt;/font&gt;&lt;/p&gt;   &lt;font size="2"&gt;&lt;/font&gt;&lt;/blockquote&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font size="2"&gt;or&lt;/font&gt;&lt;/p&gt;   &lt;font size="2"&gt;&lt;/font&gt;&lt;/blockquote&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;font size="2"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font size="2"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | where-object Bustype –eq “USB” | where-object FriendlyName –like Kingston*&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8738.image_5F00_49E3E940.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5280.image_5F00_thumb_5F00_57B62F3B.png" width="547" height="51" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Now that I know how to query for the disk I wanted to erase and prepare, how would I go about scripting this?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;font face="Consolas"&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2"&gt;$Disk = Get-Disk &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2"&gt;| where-object Bustype –eq “USB” &lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2"&gt;| where-object FriendlyName –like Kingston*&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;$Disk | Clear-Disk –RemoveData –Passthru `      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; | Initialize-Disk -PartitionStyle MBR –Passthru `       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; | New-Partition -IsActive -UseMaximumSize -DriveLetter U `       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; | Format-Volume -NewFileSystemLabel &amp;quot;Bootable USB&amp;quot; -FileSystem NTFS&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt; &lt;font face="Consolas"&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas"&gt;&lt;font size="2" face="Calibri"&gt;Now that the USB disk is prepared, how do I go about mounting the ISO image that I downloaded so that I can copy the files to the USB disk I just prepared?&lt;/font&gt;&lt;/font&gt;   &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;$ISOPath = &amp;quot;C:\Windows8-ConsumerPreview\Windows8-ConsumerPreview-64bit-English.iso&amp;quot;&lt;/font&gt;&lt;/p&gt;   &lt;font size="2"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Mount-DiskImage $IsoPath        &lt;br /&gt;        &lt;br /&gt;Get-DiskImage $IsoPath | Get-Volume&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0827.image_5F00_6D97137D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2068.image_5F00_thumb_5F00_7F73A74A.png" width="534" height="61" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;font size="2" face="Calibri"&gt;     &lt;p&gt;By going a little further with this example, I could even automate the process of copying the installation files to the new disk, by using the following method to get the source and destination paths for use with Robocopy&lt;/p&gt;   &lt;/font&gt;&lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="1" face="Consolas"&gt;&lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;$SourcePath&amp;#160; = ((Get-Volume `        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; | where-object Filesystem -eq &amp;quot;UDF&amp;quot;).DriveLetter + ':\')&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;   &lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;$DestinationPath = (($Disk `        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;| Get-Partition).DriveLetter&amp;#160; +':\')&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;robocopy $SourcePath $DestinationPath /s&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Thanks,&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Bruce Langworthy     &lt;br /&gt;Senior Program Manager – Windows Storage and FileSystems&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="1" face="Consolas"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10283721" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Script+Example/">Script Example</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_SMAPI/">#SMAPI</category></item><item><title>Determining disk health using Windows PowerShell on Windows Server 2012 and Windows 8</title><link>http://blogs.msdn.com/b/san/archive/2012/09/26/determining-disk-health-using-windows-powershell.aspx</link><pubDate>Wed, 26 Sep 2012 16:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10343351</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10343351</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/09/26/determining-disk-health-using-windows-powershell.aspx#comments</comments><description>&lt;p&gt;Last year, I had posted an article on how to view SMART data from a disk to determine the health of the disk on Windows 7 and Windows Server 2008 R2;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/san/archive/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does.aspx" href="http://blogs.msdn.com/b/san/archive/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does.aspx"&gt;http://blogs.msdn.com/b/san/archive/2011/08/11/have-you-ever-wanted-to-know-if-your-disk-is-going-to-fail-before-it-does.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;For Windows 8, we took this a step further with the addition of the &lt;strong&gt;Get-StorageReliabilityCounter&lt;/strong&gt; cmdlet in the &lt;strong&gt;Storage&lt;/strong&gt; module for Windows PowerShell.&amp;#160; &lt;/p&gt;  &lt;p&gt;This information can be obtained by passing either a Disk or a PhysicalDisk object (when using Storage Spaces) to this cmdlet. For example,&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;Get-Disk 0 | Get-StorageReliablityCounter&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;or&lt;/p&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;Get-PhysicalDisk –FriendlyName PhysicalDisk1 | Get-StorageReliablityCounter&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;By reviewing this information is possible to make several types of determinations, such as:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What is the temperature of my Disk?&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Is my disk hotter than the manufacturer recommended maximum?&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Has my disk experienced any sort of read or write failures?&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Is my SSD disk approaching the end of its use (Via the Wear property). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Has this disk experienced any long delays in reading or writing data&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It is important to note that some values are only of interest when compared with drives of the same model, and I wanted to give a couple of concrete examples for how to use these counters effectively:&lt;/p&gt; &lt;strong&gt;&lt;/strong&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="491" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="184"&gt;         &lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;           &lt;p align="center"&gt;&lt;strong&gt;PropertyName&lt;/strong&gt;&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;        &lt;td valign="top" width="305"&gt;         &lt;blockquote style="margin-right: 0px;" dir="ltr"&gt;           &lt;p align="center"&gt;&lt;strong&gt;Suggested Use&lt;/strong&gt;&lt;/p&gt;         &lt;/blockquote&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="184"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;Read or Write failures&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="305"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;This counter is of interest without comparing to other drives.&amp;#160; Any drive reporting read or write failures should be considered at risk.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="184"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;Temperature&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="305"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;This counter is most useful when comparing with other drives of the same type and model. It may be normal to see notable differences in the normal operational temperature between dissimilar drive models.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="184"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;Read or Write Latency&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="305"&gt;         &lt;p style="margin-right: 0px;" dir="ltr" align="left"&gt;This counter is most useful when comparing with drives of the same type and model, as it would be expected to see differences when comparing different models.&amp;#160; For example, a 15K RPM spinning disk would on average report lower latency then a disk spinning at 5400 RPM.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;p&gt;In several cases during the release preview, this information was critical in diagnosing issues with disks in a Storage Spaces pool performing abnormally.&amp;#160; These counters were used to easily identify drives which were experiencing long delays in read or write performance, which negatively impacted the performance of a Storage Space.&lt;/p&gt;  &lt;ul&gt;&lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;One note of caution:&lt;/strong&gt; The display of this information is based the disk device correctly reporting these counters. Not all disks report these types of statistics. So the values reported per-disk may vary.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 1: Reliability Counter Information reported by a SAS disk which is part of a Storage Spaces pool.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3108.image_5F00_767A569D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2626.image_5F00_thumb_5F00_36443D23.png" width="606" height="304" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 2: Reliability Counter Information reported by a USB disk&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0572.image_5F00_760E23A8.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2438.image_5F00_thumb_5F00_55F316EB.png" width="574" height="379" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;More Information:&lt;/h1&gt;  &lt;p&gt;Information provided by the &lt;strong&gt;Get-StorageReliablityCounter&lt;/strong&gt; cmdlet is obtained via log pages which are defined in the specification, SCSI Primary Commands 4 (SPC-4).&amp;#160; For devices that report this information, the counter information is displayed using this cmdlet.&lt;/p&gt;  &lt;h1&gt;&lt;font size="4"&gt;&lt;/font&gt;&lt;/h1&gt;  &lt;h1&gt;&lt;font size="4"&gt;Information for Drive Manufacturers:&lt;/font&gt;&lt;/h1&gt;  &lt;p&gt;For more information about the Windows logo requirements for providing this information, please refer to the following article on MSDN:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/hardware/jj134356.aspx"&gt;http://msdn.microsoft.com/en-us/library/windows/hardware/jj134356.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the section titled &lt;strong&gt;Device.Storage.Hd.Scsi.ReliabilityCounters&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Bruce&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10343351" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/TroubleShooting/">TroubleShooting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_SMAPI/">#SMAPI</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Windows+8/">Windows 8</category></item><item><title>ISO Mounting Scenarios</title><link>http://blogs.msdn.com/b/san/archive/2012/09/21/iso-mounting-scenarios.aspx</link><pubDate>Fri, 21 Sep 2012 17:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10352130</guid><dc:creator>Atishay Kumar</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10352130</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/09/21/iso-mounting-scenarios.aspx#comments</comments><description>&lt;p&gt;We hope you had an opportunity to look at the &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/08/30/accessing-data-in-iso-and-vhd-files.aspx"&gt;ISO Mounting Windows 8 Blog post&lt;/a&gt;. Native support for accessing ISO/VHD files was one of the most requested features for Windows 8. In Windows 8, you can directly mount ISO/VHD files from Windows Explorer and the content is available to you within clicks.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is a quick refresher on ISO and VHD files.&lt;/p&gt;
&lt;p&gt;An ISO file is a file container that contains all information needed to put the contents on a CD or DVD or Blu-Ray. &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/08/30/accessing-data-in-iso-and-vhd-files.aspx"&gt;ISO Mounting Windows8 Blog post&lt;/a&gt; explains the format well and we encourage you to read it for more information.&lt;/p&gt;
&lt;p&gt;A Virtual Hard-Disk is a representation of a disk in a file which is treated as a physical disk by the Windows. Since it is a file, it can be moved around and provides portability unmatched by physical disks.&amp;nbsp; For more in-depth information on VHD format, we encourage you to read the &lt;a href="http://download.microsoft.com/download/f/f/e/ffef50a5-07dd-4cf8-aaa3-442c0673a029/Virtual%20Hard%20Disk%20Format%20Spec_10_18_06.doc"&gt;VHD File Format Specification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note: A Virtual Hard Disk (VHD) is a different concept than a Virtual Disk as exposed by the Storage PowerShell module.&amp;nbsp; For more information on Virtual Disks, see the blog post:&amp;nbsp;&amp;nbsp; &lt;a href="http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx"&gt;An Introduction to Storage Management in Windows Server 2012&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this blog post, we look at some common scenarios and PowerShell Cmdlets for ISO/VHD mounting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;Sharing Content on ISO / VHD File with Others&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Whether at home or at office, all of us have faced the need to access the contents of an ISO/VHD file. We want to share contents with others quickly and in an easily accessible manner. Windows 8 makes it easy.&lt;/p&gt;
&lt;p&gt;To view the contents of an ISO file, you can mount an ISO/VHD by selecting &amp;ldquo;Mount&amp;rdquo; option in Explorer Ribbon, double click on the file or right click to select mount option. Windows Explorer will show you the contents immediately. Example shown here uses ISO image of Windows 8.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/6014.1.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/3240.1.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/3240.1.png" border="0" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/1122.1.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/0181.1.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This post will not discuss mount and eject operations in details. &lt;a href="http://blogs.msdn.com/b/b8/archive/2011/08/30/accessing-data-in-iso-and-vhd-files.aspx"&gt;ISO Mounting Windows 8 Blog post&lt;/a&gt; covers basic operations in great depth.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;Installing software application using ISO Mounting&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;When software is distributed in form of ISOs, the ISO contents has to be accessible in order to install the software. With ISO Mounting, you don&amp;rsquo;t have to burn the ISO to an optical disc or use third party software. However, there are cases where installing software after mounting the ISO file may not be very straight forward. We discuss two scenarios in this post.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;Determining which executable to run in order to install a software application&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When an optical disc containing software installation is inserted, if the software company has specified what executable to run, Windows will run it automatically for you. This behavior is commonly known as Autorun. Autorun is configurable but we will not discuss it in detail in this blog post. When the ISO is mounted, Windows creates a Virtual CD-ROM for you. To protect against malicious software, Windows blocks autorun on this Virtual CD-ROM.&amp;nbsp; In order to figure out which executable to run, refer to the autorun.inf file located on the Virtual CD-ROM.&lt;/p&gt;
&lt;p&gt;In the following example that uses &amp;ldquo;Windows 8&amp;rdquo; ISO image, autorun.inf tells the executable that should be run in order to install Windows 8. If the Virtual CD-ROM was assigned the drive letter d:, then setup.exe in the autorun.inf file would refer to d:\setup.exe.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7367.2.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7367.2.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-size: small;"&gt;Install a software application that requires multiple ISO files for installation&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Some software applications require multiple discs for installation. When you put a disc in the optical drive and run the setup to install the software, the setup knows from where the setup is being run from and the associated drive letter. For example, if the optical drive has the drive letter d: associated with it, the setup knows that the setup files reside on d: drive. When the setup asks to take disc one out and put disc two in, setup may rely on the drive letter to know where to read the contents of disc two from.&lt;/p&gt;
&lt;p&gt;In case of ISO Mounting, once disc one is ejected and the setup asks for disk two, ISO Mounting does not guarantee that the disc two will get the same drive letter upon mounting. The following example walks-through how to change the drive letter of a Virtual CD-ROM in order to complete the installation successfully.&lt;br /&gt;&lt;br /&gt;Open Disk Management by typing &amp;ldquo;Disk Management&amp;rdquo; in Start Screen and switch to Settings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7026.3.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7026.3.png" border="0" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7345.3.png"&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/8446.3.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Disk Management UI will show the drive letter associated with the Virtual CD-ROM.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/4274.4.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/4274.4.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Right click on E: and select the option to &amp;ldquo;Change Drive Letters and Paths&amp;hellip;&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/5040.5.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/5040.5.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Select &amp;ldquo;Change&amp;rdquo; on the pop-up window to choose the desired drive letter. Windows 8 will now use the new drive letter for the Virtual CD-ROM.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;ISO Mounting and Windows 8 Server&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;ISO mounting is not available on a default installation of Window 8 Server. It is an optional feature that must be enabled in order to mount ISO/VHD files from Windows Explorer. Launch Server Manager by typing &amp;ldquo;Server Manager&amp;rdquo; in the Start Screen.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/1541.6.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/1541.6.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;In Server Manager, click on Manage and select &amp;ldquo;Add Roles and Features&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7651.7.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/7651.7.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Navigate to Features and select &amp;ldquo;Desktop Experience&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/5355.8.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/5355.8.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Alternatively, PowerShell also may be used to install Desktop-Experience package. The picture below demonstrates how to use PowerShell to install Desktop-Experience package.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/2500.9.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/2500.9.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The machine has to be rebooted before the changes would take effect.&lt;/p&gt;
&lt;p&gt;Note that on Windows 8 server, VHD and ISO files can be mounted only by an administrator. This allows admins to control content available to server users.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: medium;"&gt;ISO Mounting and PowerShell&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With Windows 8 Developer Preview we introduced you to native support for ISO/VHD Mounting. You gave us feedback, and we are delighted to know that you are excited about the feature. One of features requested by you was to provide scripting support for ISO/VHD Mounting and we have added PowerShell support to mount and eject ISO Files. We hope you enjoy the improvements.&lt;br /&gt;&lt;br /&gt;There are three Cmdlets for ISO mounting. Mount-DiskImage, Get-DiskImage and Dismount-DiskImage.&lt;br /&gt;&lt;br /&gt;Mount-DiskImage mounts a valid ISO/VHD file and requires&amp;nbsp;full path of the file.&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Mount-DiskImage C:\Users\WinVMAdmin\Downloads\Windows8-ConsumerPreview-32bit-English.iso&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The Get-DiskImage cmdlet returns information about one or more disk images (ISO or VHD). This cmdlet could also be used to determine if the specified ISO or VHD file is mounted or not.&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Get-DiskImage C:\Users\WinVMAdmin\Downloads\Windows8-ConsumerPreview-32bit-English.iso | Get-Volume&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;DisMount-DiskImage cmdlet can be used to eject an already mounted ISO/VHD file.&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;DisMount-DiskImage C:\Users\WinVMAdmin\Downloads\Windows8-ConsumerPreview-32bit-English.iso&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The following picture demonstrates the above Cmdlets&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/4503.10.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/4503.10.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Getting the drive letter of a mounted VHD requires the use of few other Cmdlets. Just like a physical storage disk could have multiple partitions, a VHD can contain multiple partitions.&amp;nbsp; In order to get the drive letter(s) assigned to the partitions of the mounted VHD, we need to query for partitions and then get volume information of each partition.&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;Get-DiskImage C:\Users\WinVMAdmin\Downloads\WS2008R2_EnterpriseCore_x64.vhd | Get-Disk | Get-Partition | Get-Volume&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If only the drive letter is needed as output then following command would be helpful&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;span style="font-family: courier new,courier;"&gt;(Get-DiskImage C:\Users\WinVMAdmin\Downloads\WS2008R2_EnterpriseCore_x64.vhd | Get-Disk | Get-Partition | Get-Volume).DriveLetter&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Get-DiskImage Cmdlet is demonstrated in following picture.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/6457.11.png"&gt;&lt;img alt="" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47/6457.11.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We would love to hear how you are using ISO Mounting. Thank you for reading and enjoy Windows 8!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10352130" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.msdn.com/b/san/archive/tags/vhd+mounting/">vhd mounting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/iso+mounting/">iso mounting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/isomounting/">isomounting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/mounting/">mounting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/vhd/">vhd</category><category domain="http://blogs.msdn.com/b/san/archive/tags/iso/">iso</category></item><item><title>Updated : MPIO Guide for DSM Developers</title><link>http://blogs.msdn.com/b/san/archive/2012/08/03/updated-mpio-guide-for-dsm-developers.aspx</link><pubDate>Fri, 03 Aug 2012 16:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10336650</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10336650</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/08/03/updated-mpio-guide-for-dsm-developers.aspx#comments</comments><description>&lt;p&gt;Our guide on creating a DSM for MPIO for storage developers for Windows Server 2012 is now available at the link below:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=30454" href="http://www.microsoft.com/en-us/download/details.aspx?id=30454"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30454&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10336650" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO/">MPIO</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO_2D00_FAQ/">MPIO-FAQ</category></item><item><title>Users Guide for MPIO on Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/08/02/users-guide-for-mpio-on-windows-server-2012.aspx</link><pubDate>Thu, 02 Aug 2012 17:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10336251</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10336251</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/08/02/users-guide-for-mpio-on-windows-server-2012.aspx#comments</comments><description>&lt;p&gt;The fully updated version of the users guide for MPIO on Windows Server 2012 is now available here:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=30450" href="http://www.microsoft.com/en-us/download/details.aspx?id=30450"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30450&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10336251" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO/">MPIO</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO_2D00_FAQ/">MPIO-FAQ</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category></item><item><title>Managing iSCSI Initiator connections with Windows PowerShell on Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/07/31/managing-iscsi-initiator-connections-with-windows-powershell-on-windows-server-2012.aspx</link><pubDate>Tue, 31 Jul 2012 22:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10335230</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10335230</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/07/31/managing-iscsi-initiator-connections-with-windows-powershell-on-windows-server-2012.aspx#comments</comments><description>&lt;h3&gt;Managing iSCSI Initiator Connections&lt;/h3&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Updated: 9/18/2012&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;This post covers iSCSI Initiator connection management using the &lt;b&gt;Iscsi &lt;/b&gt;module for Windows PowerShell available with Windows Server 2012 and Windows 8.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-size: x-small;" size="2"&gt;Note: For additional details on management of Windows Disk, Partition, and Volume objects, please refer to the following article:&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Managing Storage with Windows PowerShell on Windows Server 2012 &lt;br /&gt;&lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/san/archive/2012/07/03/managing-storage-with-windows-powershell-on-windows-server-2012.aspx"&gt;&lt;span style="font-size: x-small;" size="2"&gt;http://blogs.msdn.com/b/san/archive/2012/07/03/managing-storage-with-windows-powershell-on-windows-server-2012.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Background:&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Prior to Windows Server 2012, iSCSI Initiator connection management via the command line was performed using the iSCSICLI.exe tool from a CMD prompt. The legacy tool iSCSICLI.exe is superseded by the iSCSI module for Windows PowerShell available on Windows Server 2012 and Windows 8 (only).&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Prerequisites&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;The iSCSI module requires that the iSCSI Service and its associated firewall rule be enabled in order to report information back. This can be accomplished via either of the following methods:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;Open the iSCSI control panel: The first time that the iSCSI Initiator control panel is opened, you are prompted and asked if you would like to start the service automatically.&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-size: x-small;" size="2"&gt;Use the following commands in PowerShell;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Set-Service -Name msiscsi -StartupType Automatic&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Start-Service msiscsi&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Note: at a minimum, the Windows Firewall rule for the iSCSI Initiator Service must also be enabled for outgoing traffic.&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;To list available firewall rules related to the MSiSCSI Service, use the following command:&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;PS C:\WINDOWS\system32&amp;gt; Get-NetFirewallServiceFilter -Service msiscsi | Get-NetFirewallRule | Select DisplayGroup,DisplayName,Enabled&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: xx-small;" face="Consolas" size="1"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1780.image_5F00_7AD1EA26.png"&gt;&lt;img width="559" height="71" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0216.image_5F00_thumb_5F00_47297DC8.png" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Connecting to a new iSCSI Target&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Connecting to a new iSCSI Target is a two-step process. First an iSCSI Target Portal is established using the New-iSCSITargetPortal cmdlet, and then a connection is established using the Connect-iSCSITarget cmdlet.&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;Creating a new iSCSI Target Portal&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For example, I have a new iSCSI target named DeepSpace that I need to establish a connection with. I would complete the connection using the following command:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;New-IscsiTargetPortal &amp;ndash;TargetPortalAddress DeepSpace&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2843.image_5F00_34E0B706.png"&gt;&lt;img width="587" height="108" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1185.image_5F00_thumb_5F00_7FD427D5.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;Viewing available iSCSI Targets&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;After a new target portal is created, the iSCSI target, and its connection status are displayed via the Get-IscsiTarget cmdlet as shown below:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2656.image_5F00_78B4EB5D.png"&gt;&lt;img width="580" height="69" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8055.image_5F00_thumb_5F00_06873159.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;Connecting to available iSCSI Targets&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;To connect to all available iSCSI Targets, use the following command:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;&lt;span style="font-size: x-small;" size="2"&gt;Get-IscsiTarget | Connect-IscsiTarget&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7510.image_5F00_05019199.png"&gt;&lt;img width="334" height="88" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6433.image_5F00_thumb_5F00_6B998E5E.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4&gt;Listing iSCSI Connections and sessions:&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;View currently connected iSCSI Sessions and connections using the following commands;&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;To view iSCSI Connections:&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;Get-iSCSIConnection&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;To View iSCSI Sessions:&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Get-iSCSISession&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;To list all Windows disks for a specific iSCSI session:&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Get-iSCSISession | Get-Disk&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4073.image_5F00_6A92CA9A.png"&gt;&lt;img width="565" height="62" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3225.image_5F00_thumb_5F00_2A5CB120.png" border="0" /&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;h4&gt;&lt;/h4&gt;
&lt;h4&gt;Listing the iSCSI IQN for the iSCSI Initiator&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;You can list the current iSCSI Qualified Name (IQN) by using the following command: The iSCSI IQN for the initiator is typically used when configuring masking sets with an iSCSI Target device to allow access by a specific initiator to an iSCSI Target device.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;(Get-InitiatorPort).NodeAddress&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Configuring sessions to persist across reboots:&lt;/h4&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;An iSCSI Session that has a property of IsPersistent = $True will automatically attempt reconnection on a system reboot. For example, the connection below is not persistent:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;PS C:\WINDOWS\system32&amp;gt; Get-IscsiSession&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;" face="Consolas"&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="background-color: #cccccc;"&gt;AuthenticationType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NONE &lt;br /&gt;InitiatorInstanceName&amp;nbsp;&amp;nbsp; : ROOT\ISCSIPRT\0000_0 &lt;br /&gt;InitiatorNodeAddress&amp;nbsp;&amp;nbsp;&amp;nbsp; : iqn.1991-05.com.microsoft:deepcore.contoso.com &lt;br /&gt;InitiatorPortalAddress&amp;nbsp; : 0.0.0.0 &lt;br /&gt;InitiatorSideIdentifier : 400001370000 &lt;br /&gt;IsConnected&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 &lt;br /&gt;IsDataDigest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsDiscovered&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsHeaderDigest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsPersistent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;NumberOfConnections&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1 &lt;br /&gt;SessionIdentifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : fffffa80144f8430-4000013700000003 &lt;br /&gt;TargetNodeAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : iqn.1991-05.com.microsoft:deepspace-deepcore-target &lt;br /&gt;TargetSideIdentifier&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0300 &lt;br /&gt;PSComputerName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;When connecting to a new iSCSI Target using the Connect-iSCSITarget cmdlet, persistence is managed via the &amp;ndash;IsPersistent Boolean value.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For example, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;Get-iSCSITarget | Connect-IscsiTarget &amp;ndash;IsPersistent $False&lt;/span&gt; would prevent the new connection from persisting across reboots.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Note: Connections are persistent by default unless overridden by specifying &amp;ndash;IsPersistent $False&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For an existing session, if the session is not persistent, it can be made persistent by piping the session to the Register-iSCSISession cmdlet. For example:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;PS C:\WINDOWS\system32&amp;gt; Get-IscsiSession | Where-Object IsPersistent -eq $False&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;AuthenticationType&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : NONE &lt;br /&gt;InitiatorInstanceName&amp;nbsp;&amp;nbsp; : ROOT\ISCSIPRT\0000_0 &lt;br /&gt;InitiatorNodeAddress&amp;nbsp;&amp;nbsp;&amp;nbsp; : iqn.1991-05.com.microsoft:deepcore.contoso.com &lt;br /&gt;InitiatorPortalAddress&amp;nbsp; : 0.0.0.0 &lt;br /&gt;InitiatorSideIdentifier : 400001370000 &lt;br /&gt;IsConnected&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 &lt;br /&gt;IsDataDigest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsDiscovered&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsHeaderDigest&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;IsPersistent&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : False &lt;br /&gt;NumberOfConnections&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1 &lt;br /&gt;SessionIdentifier&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : fffffa80144f8430-4000013700000003 &lt;br /&gt;TargetNodeAddress&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : iqn.1991-05.com.microsoft:deepspace-deepcore-target &lt;br /&gt;TargetSideIdentifier&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0300 &lt;br /&gt;PSComputerName&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;In this case, since I have an iSCSI Session which is not persistent, I could pipe this object to Register-IscsiSession to make it persistent.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Get-IscsiSession | Register-IscsiSession&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Connecting to an iSCSI Target when using CHAP Secrets&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To connect to an iSCSI Target which requires the use of a CHAP secret, you can use the following cmdlet options, and select the appropriate type of CHAP secret to use in the&amp;nbsp;&amp;ndash;AuthenticationType parameter.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;Get-iScsiTarget | Connect-iScsitarget &amp;ndash;AuthenticationType ONEWAYCHAP &amp;ndash;ChapUserName &amp;lt;username&amp;gt; -ChapSecret &amp;lt;secret&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;h4&gt;Advanced Configuration Management: Using MPIO with iSCSI Connections.&lt;/h4&gt;
&lt;p&gt;Connecting multiple network adapters in conjunction with iSCSI and MPIO:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;em&gt;Note: MPIO is available on Windows Server versions only.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h5&gt;Tip: List your IPv4 addresses using the Get-NetIPAddress cmdlet&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-size: x-small; background-color: #cccccc;" size="2"&gt;Get-NetIPAddress &amp;ndash;AddressFamily IPv4 &amp;ndash;PrefixOrigin DHCP&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For example, if I stored the output of the above command in the variable $Nics on a machine with 2 network adapters, then $Nics[0].IpAddress returns the IP address for my first NIC, and $Nics[1].Ipaddress returns the IP address for my second NIC.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For the rest of this example, I have used the above to populate two variables;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt;$Nic1 = $Nics[0]&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small;" face="Consolas" size="2"&gt;$Nic2 = $Nics[1]&lt;/span&gt;&lt;/p&gt;
&lt;h6&gt;Configuring MPIO to automatically claim devices:&lt;/h6&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Tip: By configuring MPIO to automatically claim iSCSI devices (for example) before any are connected, you may be able to avoid an extra reboot when the disks are claimed.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;In the example below, I am installing the MPIO feature, enabling automatic claiming of all iSCSI disks, and setting the default load balance policy in MPIO to Round Robin:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;# Enable the MPIO Feature &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enable-WindowsOptionalFeature -Online -FeatureName MultipathIO&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt; &lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;# Enable automatic claiming of iSCSI devices for MPIO &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enable-MSDSMAutomaticClaim -BusType iSCSI&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt; &lt;br /&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;# Set the default load balance policy of all newly claimed devices to Round Robin &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: Consolas; background-color: #cccccc;" face="Consolas"&gt;Set-MSDSMGlobalDefaultLoadBalancePolicy -Policy RR&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h6&gt;Connecting with MPIO and iSCSI using multiple Network adapters&lt;/h6&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;First we will need to define the targetportal to point to the iSCSI Target. In my example below, the target portal is named DeepSpace&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;New-IscsiTargetPortal &amp;ndash;TargetPortalAddress DeepSpace&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6746.image_5F00_11263D86.png"&gt;&lt;img width="602" height="156" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7144.image_5F00_thumb_5F00_54FA71DD.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;Lastly, we would create one MPIO-enabled iSCSI connection per network adapter using the following commands:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Get-IscsiTarget | Connect-IscsiTarget&amp;nbsp; -IsPersistent $True &amp;ndash;IsMultipathEnabled $True &amp;ndash;InitiatorPortalAddress $Nic1.IPAddress&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: Consolas; font-size: x-small; background-color: #cccccc;" face="Consolas" size="2"&gt;Get-IscsiTarget | Connect-IscsiTarget&amp;nbsp; -IsPersistent $True &amp;ndash;IsMultipathEnabled $True &amp;ndash;InitiatorPortalAddress $Nic2.IPAddress&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2330.image_5F00_14C45863.png"&gt;&lt;img width="601" height="404" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0218.image_5F00_thumb_5F00_5083F116.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;Viewing connections to determine which Network Adapter is used&lt;/h6&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;&lt;span style="background-color: #cccccc;"&gt;Get-iSCSIConnection&lt;/span&gt; displays the IP address for the network adapter used with this connection(s). For example;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6560.image_5F00_1458256E.png"&gt;&lt;img width="389" height="216" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8306.image_5F00_thumb_5F00_5017BE21.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;Viewing advanced properties for a disk which is connected via iSCSI:&lt;/h6&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;The following example shows listing all disks associated with the active iSCSI Connection(s) in the system.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5078.image_5F00_237FD882.png"&gt;&lt;img width="667" height="70" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2330.image_5F00_thumb_5F00_2A32E205.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This process can also be reversed to determine the iSCSI connections for a specific Disk object such as by passing the output of Get-Disk 1 to Get-iSCSIConnection.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Additional References:&lt;/h4&gt;
&lt;h5&gt;Complete list of cmdlets in the iSCSI module:&lt;/h5&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;For a complete listing of the cmdlets contained in the iSCSI module for Windows PowerShell, please refer to the following document on TechNet: &lt;br /&gt;&lt;/span&gt;&lt;a href="http://technet.microsoft.com/library/hh826099.aspx"&gt;&lt;span style="font-size: x-small;" size="2"&gt;http://technet.microsoft.com/library/hh826099.aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: x-small;" size="2"&gt;iSCSI Initiator WMI V2 Classes for Windows Server 2012 and Windows 8 &lt;br /&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/hh968118(v=vs.85).aspx"&gt;&lt;span style="font-size: x-small;" size="2"&gt;http://msdn.microsoft.com/en-us/library/windows/desktop/hh968118(v=vs.85).aspx&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10335230" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/iSCSI/">iSCSI</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category></item><item><title>Managing MPIO with Windows PowerShell on Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/07/20/managing-mpio-with-windows-powershell-on-windows-server-2012.aspx</link><pubDate>Fri, 20 Jul 2012 23:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10332100</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10332100</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/07/20/managing-mpio-with-windows-powershell-on-windows-server-2012.aspx#comments</comments><description>&lt;h2&gt;&lt;a name="_Ref328569546"&gt;&lt;font color="#4f81bd" size="4" face="Calibri"&gt;Installing and Managing MPIO using PowerShell:&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;This post is intended as an overview of capabilities present in the MPIO module for managing MPIO on Windows Server 2012.      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;em&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;em&gt;Note: The MPIO feature is available on Windows Server 2012 versions only.        &lt;br /&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;     &lt;br /&gt;Use of the MPIO module in Windows&amp;#160; PowerShell requires an “elevated” PowerShell window, opened with Administrator privileges.&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;   &lt;br /&gt;&lt;a name="_Toc330293704"&gt;&lt;font color="#4f81bd" face="Calibri"&gt;Query the installation state of MPIO:&lt;/font&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To determine if MPIO is currently installed, use the following command:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204,204,204)" size="2" face="Consolas"&gt;Get-WindowsOptionalFeature –Online –FeatureName MultiPathIO&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7610.clip_5F00_image002_5F00_53464BC9.jpg"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4061.clip_5F00_image002_5F00_4C270F51.jpg"&gt;&lt;img title="clip_image002" style="background-image: none; display: inline" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0743.clip_5F00_image002_5F00_thumb_5F00_358FF48B.jpg" width="584" height="168" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&amp;#160; &lt;/h3&gt;  &lt;h3&gt;&lt;a name="_Toc330293705"&gt;&lt;font color="#4f81bd" face="Calibri"&gt;Enable or Disable the MPIO Feature:&lt;/font&gt;&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;If the MPIO feature is not currently installed, use the following command to enable the MPIO feature:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204,204,204)" size="2" face="Consolas"&gt;Enable-WindowsOptionalFeature –Online –FeatureName MultiPathIO&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4073.clip_5F00_image004_5F00_72F52591.jpg"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4382.clip_5F00_image004_5F00_19C33BD2.jpg"&gt;&lt;img title="clip_image004" style="background-image: none; display: inline" border="0" alt="clip_image004" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1411.clip_5F00_image004_5F00_thumb_5F00_1508B4D9.jpg" width="589" height="92" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Toc330293706"&gt;&lt;font color="#4f81bd" size="3" face="Calibri"&gt;To disable the MPIO feature, use the following command:&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204,204,204)" size="2" face="Consolas"&gt;Disable-WindowsOptionalFeature –Online –FeatureName MultiPathIO&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&lt;font size="2" face="Calibri"&gt;Listing commands available in the MPIO module:      &lt;br /&gt;&lt;/font&gt;&lt;font size="2" face="Calibri"&gt;&lt;font style="font-weight: normal"&gt;The commands available in the MPIO module can be listed using get-command as shown below&lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;em&gt;Note: Not all of these cmdlets are available in the Release Preview.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0576.clip_5F00_image007_5F00_2B9FCF9F.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8508.clip_5F00_image007_5F00_526DE5DF.png"&gt;&lt;img title="clip_image007" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="clip_image007" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3566.clip_5F00_image007_5F00_thumb_5F00_3855A97E.png" width="593" height="240" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;     &lt;br /&gt;      &lt;br /&gt;Full help and example content for the MPIO module is available via the following method:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2" face="Calibri"&gt;In PowerShell, after importing the MPIO module or using any MPIO cmdlet, updated help can be downloaded from the internet by running the following command:        &lt;br /&gt;&lt;/font&gt;      &lt;ul&gt;       &lt;li&gt;&lt;font size="2" face="Calibri"&gt;&lt;font style="background-color: rgb(204,204,204)"&gt;Update-Help&lt;/font&gt;             &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;&lt;a name="_Toc327274167"&gt;&lt;font color="#4f81bd" size="4" face="Calibri"&gt;Obtaining additional PowerShell help and examples&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For a complete list of available PowerShell cmdlets in the MPIO module, including usage and examples, please refer to the following TechNet site:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;MPIO Cmdlets in Windows PowerShell          &lt;br /&gt;&lt;/font&gt;&lt;/b&gt;&lt;a href="http://technet.microsoft.com/library/hh826113.aspx"&gt;&lt;font color="#0000ff" size="2" face="Calibri"&gt;http://technet.microsoft.com/library/hh826113.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;You can also obtain help for individual commands by specifying the cmdlet with Get-Help, such as shown below:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;font style="background-color: rgb(204,204,204)"&gt;Get-Help Get-MPIOAvailableHW&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3302.clip_5F00_image009_5F00_793BFC1F.jpg"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4477.clip_5F00_image009_5F00_200A1260.jpg"&gt;&lt;img title="clip_image009" style="background-image: none; display: inline" border="0" alt="clip_image009" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7367.clip_5F00_image009_5F00_thumb_5F00_5EB78CC9.jpg" width="590" height="280" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;a name="_Toc327274168"&gt;&lt;font color="#4f81bd" size="4" face="Calibri"&gt;Obtaining and updating help for Windows PowerShell cmdlets&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;In Windows 8, PowerShell modules which ship with Windows do not include help content “in-box” instead this content is provided on the Internet, and may be updated via PowerShell from a computer which has Internet access.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Once a PowerShell module has been imported into the current PowerShell session, the help content may be downloaded and updated via the following command:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204,204,204)" size="2"&gt;Update-Help &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;em&gt;Note: the –Force parameter must be used if attempting to update more than once per 24 hour period.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; &lt;em&gt;&lt;/em&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The get-help cmdlet offers multiple levels of verbosity, which include&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2" face="Calibri"&gt;No switch specified, only basic help is returned.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Detailed provides detailed help        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Example provides examples of the cmdlet in use.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Full provides all available help content for the specified cmdlet.&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For example, in order to obtain script examples for the Get-MPIOAvailableHW cmdlet, the following command is utilized:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font style="background-color: rgb(204,204,204)" size="2"&gt;Get-Help Get-MPIOAvailableHW –Examples&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5556.clip_5F00_image011_5F00_4AE27672.jpg"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2816.clip_5F00_image011_5F00_1F9DDF6B.jpg"&gt;&lt;img title="clip_image011" style="background-image: none; display: inline" border="0" alt="clip_image011" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1817.clip_5F00_image011_5F00_thumb_5F00_6C1D9FCF.jpg" width="588" height="202" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font color="#4f81bd" size="4" face="Calibri"&gt;Script Example: Configuring MPIO using PowerShell:&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;In this example, I wish to perform the following tasks:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Tip: If these steps are performed prior to connecting devices of the desired BusType, you can typically avoid the need for a restart.&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Install the MPIO feature on a new Windows Server 2012 installation.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Configure MPIO to automatically claim all iSCSI devices.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Configure the default Load Balance policy for Round Robin.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Set the Windows Disk timeout to 60 seconds.&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Here is what this script would look like:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6116.image_5F00_3711109F.png"&gt;&lt;img title="image" style="background-image: none; display: inline" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7776.image_5F00_thumb_5F00_44E3569A.png" width="590" height="158" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt; &lt;b&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/b&gt;  &lt;h2&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;a name="_Toc330293710"&gt;&lt;font color="#4f81bd" size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;a name="_Toc330293710"&gt;&lt;font color="#4f81bd" size="4" face="Calibri"&gt;Scripting the Configuration of MPIO Timer Values&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Timers for MPIO can be managed using the Get-MPIOSetting and Set-MPIOSetting PowerShell cmdlets:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Example: Viewing the current MPIO settings.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5554.clip_5F00_image012_5F00_038D2080.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0172.clip_5F00_image012_5F00_2A5B36C0.png"&gt;&lt;img title="clip_image012" style="background-image: none; display: inline" border="0" alt="clip_image012" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5875.clip_5F00_image012_5F00_thumb_5F00_51294D00.png" width="310" height="162" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;     &lt;br /&gt;      &lt;br /&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;h3&gt;&lt;font color="#4f81bd"&gt;Additional References:&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;MPIO PowerShell cmdlets list and help documentation:      &lt;br /&gt;&lt;/font&gt;&lt;a href="http://technet.microsoft.com/library/hh826113.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/library/hh826113.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10332100" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO/">MPIO</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Tai_2D00_Hing+Tse/">Tai-Hing Tse</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Bill+Yin/">Bill Yin</category></item><item><title>Managing Storage with Windows PowerShell on Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/07/03/managing-storage-with-windows-powershell-on-windows-server-2012.aspx</link><pubDate>Tue, 03 Jul 2012 21:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10326542</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10326542</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/07/03/managing-storage-with-windows-powershell-on-windows-server-2012.aspx#comments</comments><description>&lt;h3&gt;&lt;font size="3" face="Calibri"&gt;Managing local Windows Storage&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;This post covers basic provisioning operations against local Windows storage resources using the &lt;b&gt;Storage&lt;/b&gt; module for Windows PowerShell. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: I will cover using the Storage module in combination with a Storage Management Provider to manage a storage subsystem (array) in a subsequent post.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The Disk, Partition, and Volume objects are associated as shown in the figure below. When starting from a new (blank) disk, you first initialize the disk to create a partition, and then you create a Volume with a file system such as NTFS. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1374.clip_5F00_image002_5F00_6FA91BC5.png"&gt;&lt;font face="Calibri"&gt;&lt;img title="clip_image002" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7635.clip_5F00_image002_5F00_thumb_5F00_16773206.png" width="152" height="204" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The following sections discuss the operations that you can perform with each type of object – Disk, Partition, and Volume. They also discuss setting the policy of whether to automatically mount new disks, and how to use the various cmdlets to format a new disk for use.&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font size="3" face="Calibri"&gt;Disk&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;A Disk object represents a disk as seen by a Windows computer, and does not require an available management provider. An example of a Disk object is a disk displayed in the Disk Management snap-in.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Listing all disks in the system&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all Disks visible to the operating system, type: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Get-Disk&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5635.image_5F00_4C11C022.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2086.image_5F00_thumb_5F00_0FE5F47A.png" width="581" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Listing only the system disk or all disks except the system disk&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list only the system disk, type the following command: &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | Where-Object IsSystem -eq $True&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3666.image_5F00_36B40ABA.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6712.image_5F00_thumb_5F00_2F94CE42.png" width="590" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all disks except the system disk, instead type this command, which pipes the output of the Get-Disk cmdlet to the Where-Object cmdlet:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | where-object IsSystem -eq $False&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0458.image_5F00_1D4C0780.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2185.image_5F00_thumb_5F00_162CCB08.png" width="595" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Listing all disks for a specific storage bus&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all disks attached via a specific storage bus, type the following command, replacing &amp;lt;BusType&amp;gt; with the bus you want to query:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | Where-Object -Eq &amp;lt;BusType&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For example, to list all of the Storage Spaces that are connected, query disks connected via the “Spaces” bus. This method can also be used for other bus types, such as iSCSI and USB:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7536.image_5F00_78C75DB9.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8206.image_5F00_thumb_5F00_667E96F7.png" width="596" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Clearing all of the partitions and volumes from a disk&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To clear all partitions and volumes from a disk, backup all data on all volumes on the disk, and then type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;&lt;b&gt;&lt;font color="#ff0000"&gt;Warning&lt;/font&gt;:&lt;/b&gt; This is operation cannot be undone; it will clear all partitions and volumes from the disk and allows the disk to be re-initialized and create a new partition and volume.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Clear-Disk 6 -RemoveData&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7120.image_5F00_317207C7.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1856.image_5F00_thumb_5F00_6D31A07A.png" width="593" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: If the specified disk contains an OEM partition, such as for system recovery, it is also necessary to specify the –RemoveOEM switch when using the clear-disk cmdlet.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Initializing a disk&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To initialize a disk to allow creation of a partition and volume, type the following command, where &amp;lt;DiskNumber&amp;gt; is the number of the disk to initialize:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Initialize-Disk &amp;lt;DiskNumber&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: All disks are initialized as GPT by default unless otherwise specified.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To initialize a disk as MBR, use the –PartitionStyle parameter. For example:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Initialize-Disk 4 –PartitionStyle MBR&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;Listing all disks that are offline&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all disks that are currently offline, type the following command:     &lt;br /&gt;&lt;font style="background-color: rgb(204, 204, 204);" face="Consolas"&gt;Get-Disk | Where-Object IsOffline –Eq $True&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0361.image_5F00_5120E18F.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1832.image_5F00_thumb_5F00_3105D4D2.png" width="585" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Bringing all offline disks online&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To bring all disks that are currently offline back online, type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | Where-Object IsOffline –Eq $True | Set-Disk –IsOffline $False&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;Partition&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;A Disk object can contain one or more logical regions called &lt;em&gt;partitions&lt;/em&gt;, which are represented by a Partition object. With the exception of special purpose partitions such as a Microsoft Reserved (MSR), or OEM recovery partition, Microsoft recommends creating one data partition per disk.&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;&lt;font size="2" face="Calibri"&gt;Listing all of the partitions on all disks&lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all partitions on all disks, type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Get-Partition&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8787.image_5F00_10EAC815.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7711.image_5F00_thumb_5F00_1EBD0E10.png" width="582" height="356" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Listing all of the partitions on a specific disk&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all partitions on a specific disk, type the following command, replacing &amp;lt;DiskNumber&amp;gt; with the number of the appropriate disk:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Partition –DiskNumber &amp;lt;DiskNumber&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5657.image_5F00_2C8F540B.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6237.image_5F00_thumb_5F00_0C74474E.png" width="588" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Creating a new partition on a new disk&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To create a new partition on a blank disk, first use the Initialize-Disk cmdlet, then type the following command, replacing &amp;lt;DiskNumber&amp;gt; with the number of the appropriate disk:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;New-Partition –DiskNumber &amp;lt;DiskNumber&amp;gt; -UseMaximumSize -AssignDriveLetter&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5460.image_5F00_5767B81D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6131.image_5F00_thumb_5F00_7E35CE5D.png" width="584" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;Volume&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;A Volume object is the highest level object in the Disk-Partition-Volume hierarchy and represents a Partition object that has been formatted with a file system such as NTFS or ReFS and is available for data storage.&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;Listing all volumes&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list all volumes accessible to Windows, type:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Volume&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1057.image_5F00_05166117.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2541.image_5F00_thumb_5F00_0BC96A9A.png" width="584" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Listing the volume for a specific drive letter&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To list the volume for a specific drive letter, type the following, replacing &amp;lt;DriveLetter&amp;gt; with the letter of the drive you want to view:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Volume –DriveLetter &amp;lt;DriveLetter&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6735.image_5F00_127C741D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7824.image_5F00_thumb_5F00_5D6FE4EC.png" width="587" height="60" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Formatting a volume&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To format a volume with the NTFS file system, type the following, replacing &amp;lt;DriveLetter&amp;gt; with the letter of the drive you want to format:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Format-Volume -DriveLetter &amp;lt;DriveLetter&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8715.image_5F00_043DFB2D.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0804.image_5F00_thumb_5F00_2B0C116D.png" width="585" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Calibri"&gt;Storage Settings object&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The new disk policy (previously known as the SAN Policy) is the policy Windows uses to determine whether Windows should automatically ‘mount’ disks that are detected as new.&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Viewing the new disk policy &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To view the new disk policy, type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-StorageSetting | Select-Object NewDiskPolicy&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1464.image_5F00_51DA27AD.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0486.image_5F00_thumb_5F00_1CCD987D.png" width="332" height="60" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Set the NewDiskPolicy&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To set the new disk policy, type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Set-StorageSetting –NewDiskPolicy OfflineShared&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: The default setting for NewDiskPolicy on Windows 8 is OnlineAll. The default setting on all Windows Server 2012 editions is OfflineShared.&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font face="Calibri"&gt;Policy Setting&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font face="Calibri"&gt;Effect&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;OfflineAll&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;All new disks are left offline by default.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;OfflineInternal&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;All disks on busses that are detected as internal are left offline as default.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;OfflineShared&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;All Disks on sharable busses, such as iSCSI, FC, or SAS are left offline by default&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;OnlineAll&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;font face="Calibri"&gt;All disks are automatically brought online.&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h4&gt;&lt;font face="Calibri"&gt;Combined Example: Format a New Disk&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To format a new disk that has not been initialized, first we should get all Disk objects and then pipe the objects to the Where-Object cmdlet to select only disks with the RAW partition style (which indicates that the disks haven’t yet been initialized). To do so, type the following command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Get-Disk | Where-Object PartitionStyle –Eq &amp;quot;RAW&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5076.image_5F00_4E97AFD1.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6646.image_5F00_thumb_5F00_2E7CA314.png" width="582" height="64" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Then, use the Initialize-Disk cmdlet to initialize the disk. After that, use the New-Partition cmdlet to create a partition on the disk, and pipe the output to the Format-Volume cmdlet to format the volume with the NTFS file system. To do so, type the following commands:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;Initialize-disk 3&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Consolas"&gt;New-Partition -DiskNumber 3 -UseMaximumSize -AssignDriveLetter | Format-Volume -NewFileSystemLabel &amp;quot;Mirror&amp;quot; -FileSystem NTFS&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7217.image_5F00_3C4EE90F.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1854.image_5F00_thumb_5F00_4A212F0A.png" width="584" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p&gt;Bruce Langworthy&lt;/p&gt;  &lt;p&gt;Senior Program Manager – Windows Storage and Filesystems&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10326542" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category></item><item><title>Introduction to Storage Management on Windows Server 2012 (Part 2)</title><link>http://blogs.msdn.com/b/san/archive/2012/07/02/introduction-to-storage-management-on-windows-server-2012-part-2.aspx</link><pubDate>Tue, 03 Jul 2012 02:43:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10326351</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10326351</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/07/02/introduction-to-storage-management-on-windows-server-2012-part-2.aspx#comments</comments><description>&lt;h3&gt;Understanding Custom object views in the Storage Module for Windows PowerShell&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Before I delve into the actual usage of the cmdlets present in the Storage module, I wanted to explain a bit about how the parameters and information are displayed. The default view of most &lt;strong&gt;Storage&lt;/strong&gt; cmdlets display only the most commonly accessed properties of an object, which can be a little confusing unless you know there are other parameters that you can access.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For the first article in this series, see the post below:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx" href="http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx"&gt;http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The Storage module uses a custom object format that varies the parameters returned based on whether the object is viewed in table or list format. This is done so that the default (table) view is easy to read. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To display an expanded set of properties, use the Format-List cmdlet shown in Figure 1. For example, Get-Disk | Format-List. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: In the figure below, FL is an alias to Format-List.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;To view a complete list of properties, use the Format-List * command shown in Figure 3. For example, Get-Disk | Format-List *).&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4341.image_5F00_7BA86288.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2768.image_5F00_thumb_5F00_42255291.png" width="582" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 1: The default (table) view for Get-Disk&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1033.image_5F00_68F368D1.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7484.image_5F00_thumb_5F00_368F9552.png" width="587" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 2: The list view for Get-Disk&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6406.image_5F00_1A7ED667.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0143.image_5F00_thumb_5F00_563E6F1A.png" width="593" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 3: The list view of &lt;b&gt;ALL &lt;/b&gt;object properties for Get-Disk. (Using Format-List *)&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;Available Windows PowerShell modules related to managing Storage&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Storage Management scenarios are managed via Windows PowerShell in Windows Server 2012 and Windows 8 using the following modules:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;Module name&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="312"&gt;         &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;Purpose&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;Storage&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="312"&gt;         &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Provides management interfaces for local storage and storage objects exposed via a Storage Management Provider&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;MPIO&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="312"&gt;         &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Allows configuration of the Multipath I/O (MPIO) feature. (Windows Server 2012 only).&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="319"&gt;         &lt;p&gt;&lt;b&gt;&lt;font size="2" face="Calibri"&gt;iSCSI&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="312"&gt;         &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Provides iSCSI initiator connection management&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To obtain a list of the commands in any of these modules, use the following commands in Windows PowerShell:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;font style="background-color: rgb(204, 204, 204);" face="Courier New"&gt;Get-Command –Module &amp;lt;ModuleName&amp;gt;&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For example, to obtain a list of all of the Windows PowerShell cmdlets in the Storage module, use the following commands:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Courier New"&gt;Get-Command –Module Storage&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;&lt;a name="_Toc328249169"&gt;Obtaining and Updating help for Windows PowerShell Modules:&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;In Windows 8, Windows PowerShell Help includes only a basic listing of parameters “in-box”. The complete Help is published to Microsoft TechNet, and you can update Windows PowerShell to include this Help from any computer that has Internet access.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Once a Windows PowerShell module has been imported into the current Windows PowerShell session, the help content may be downloaded and updated via the following command:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;Update-Help&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Note: the –Force parameter must be used if attempting to update more than once per 24 hour period.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;To display help for a specific cmdlet, use the following command:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Courier New"&gt;Get-Help &amp;lt;Cmdlet&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For example, to get help for the Get-Disk cmdlet, use&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Courier New"&gt;Get-Help Get-Disk&lt;/font&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The get-help cmdlet offers multiple levels of verbosity, which include&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2" face="Calibri"&gt;No parameter specified, only basic help is displayed.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Detailed provides detailed help&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Example provides examples of the cmdlet in use.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Full provides all available help content for the specified cmdlet.&lt;/font&gt;&lt;/li&gt;  &lt;/ul&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;For example, to obtain script examples for the Get-Disk cmdlet, use the following command:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font style="background-color: rgb(204, 204, 204);" size="2" face="Courier New"&gt;Get-Help Get-Disk –Examples&lt;/font&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;This returns output similar to the following:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4338.image_5F00_681B02E7.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/4341.image_5F00_thumb_5F00_75ED48E2.png" width="549" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 4: The Help examples included with the Get-Disk cmdlet&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Windows 8 and Windows Server 2012 contain the Storage Management API, associated WMI classes, and the &lt;b&gt;Storage &lt;/b&gt;module for Windows PowerShell.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;font size="2" face="Calibri"&gt;Note: Windows PowerShell and the Storage module are not available by default in Windows PE. I will cover in a subsequent post building a custom Windows PE image that includes the Storage module and Windows PowerShell optional components for Windows PE.&lt;/font&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The Windows Standards-Based Storage Management Service is available only on Windows Server 2012, and is required for the use of SMI-S providers with Storage Management (it is also not available from Windows PE).&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc328249173"&gt;&lt;font size="2" face="Calibri"&gt;Other available management interfaces for storage:&lt;/font&gt;&lt;/a&gt;&lt;/h4&gt;  &lt;h5&gt;&lt;a name="_Toc328249174"&gt;&lt;font size="2" face="Calibri"&gt;Storage Spaces Control Panel&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Windows 8 includes the Storage Spaces control panel item, shown in Figure 5. The Storage Spaces control panel item provides a simple user interface that end-users can use to configure and manage the Storage Spaces subsystem for personal storage. It cannot be used for management of other Storage Management Providers, and is available only on Windows 8.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2768.image_5F00_07C9DCB0.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3348.image_5F00_thumb_5F00_19A6707D.png" width="531" height="545" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 5: Storage Spaces in Control Panel in Windows 8&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;&lt;a name="_Toc328249175"&gt;&lt;font size="2" face="Calibri"&gt;File and Storage Services canvas in Server Manager &lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Windows Server 2012 includes the File and Storage Services role in Server Manager, which enables you to remotely manage multiple file servers from a single window, including Storage Spaces, and other installed Storage Management Providers or SMI-S providers.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1680.image_5F00_1F66C470.png"&gt;&lt;img style="display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5383.image_5F00_thumb_5F00_11284B80.png" width="535" height="408" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Figure 6: File and Storage Services in Server Manager in Windows Server 2012&lt;/font&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc328249177"&gt;&lt;font face="Calibri"&gt;Windows Management Instrumentation (WMI&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;)&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;Windows 8 and Windows Server 2012 include a rich set of management classes intended for use by developers creating management applications for storage&lt;/font&gt;. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10326351" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SMI_2D00_S/">SMI-S</category></item><item><title>TechEd video on Standards Support and Storage Management for Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/07/01/teched-video-on-standards-support-and-storage-management-for-windows-server-2012.aspx</link><pubDate>Sun, 01 Jul 2012 14:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10325865</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10325865</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/07/01/teched-video-on-standards-support-and-storage-management-for-windows-server-2012.aspx#comments</comments><description>&lt;p&gt;&lt;font size="2" face="Calibri"&gt;Be sure to check out the excellent TechEd video “&lt;strong&gt;Standards Support and Interoperability in Windows Server 2012: Storage, Networking, and Management&lt;/strong&gt;” here:&lt;/font&gt;&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a title="http://channel9.msdn.com/Events/TechEd/Europe/2012/WSV308" href="http://channel9.msdn.com/Events/TechEd/Europe/2012/WSV308"&gt;&lt;font size="2" face="Calibri"&gt;http://channel9.msdn.com/Events/TechEd/Europe/2012/WSV308&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pointers to some specific sections of the video:&lt;/p&gt; &lt;font size="2" face="Calibri"&gt;&lt;/font&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Information on standards starts at about the 30 minute mark.&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;&lt;strong&gt;Storage&lt;/strong&gt; specific content starts at the 1 hour mark&lt;/font&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="2" face="Calibri"&gt;Management demo with an SMI-S provider at 1:09&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Thanks,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;Bruce&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10325865" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/iSCSI/">iSCSI</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SMI_2D00_S/">SMI-S</category></item><item><title>An Introduction to Storage Management in Windows Server 2012</title><link>http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx</link><pubDate>Tue, 26 Jun 2012 23:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10324279</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10324279</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx#comments</comments><description>&lt;h3&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;Introducing the Windows Storage Management API (SMAPI)&lt;/h3&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Windows® Server 2012 delivers capabilities to enable significantly improved storage management. By doing so, Windows customers will enjoy the benefits of decreased management complexity and associated costs. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Improved storage management related capabilities include:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Calibri"&gt;The Windows Storage Management API (SMAPI) which provides PowerShell Cmdlets via the &lt;b&gt;Storage&lt;/b&gt; module for end to end management of Windows storage as well as a new set of WMI management classes.         &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;PowerShell cmdlets enabling scriptable and remote administration with decreased management costs by allowing for repeatable configuration scripts, which are easily re-usable across different storage subsystems.        &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri"&gt;A new interface – the Storage Management Provider framework – enabling customers to easily manage 3&lt;sup&gt;rd&lt;/sup&gt;-party Storage subsystems using either a Storage Management Provider (SMP), or SMI-S Provider.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;b&gt;Note&lt;/b&gt;: As a result of the introduction of the Windows Storage Management API, the Virtual Disk Service (VDS) is being deprecated. Please see the following link for more information:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/hh848071(v=vs.85).aspx"&gt;&lt;font face="Calibri"&gt;http://msdn.microsoft.com/en-us/library/windows/desktop/hh848071(v=vs.85).aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font color="#000000" face="Calibri"&gt;High Level Architecture overview:&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;The following diagram shows the functional architecture for the Storage Management API, and how the Windows Standards-Based Storage Management service is integrated with the Storage Management API to provide flexible management via either management applications or PowerShell.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/3716.image_5F00_3E7BCDA1.png"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/6813.image_5F00_6F1D4E88.png"&gt;&lt;img title="image" style="margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1526.image_5F00_thumb_5F00_5CD487C6.png" width="537" height="309" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;By combining the Storage Management API with either a Storage Management Provider (SMP), or the Windows Standards-Based Storage Management Service and an SMI-S provider, users are able to deploy and manage their storage using a common interface such as PowerShell, or Microsoft management applications such as the File and Storage Services canvas in Server Manager.&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;font face="Calibri"&gt;Note: &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;font face="Calibri"&gt;Management of Windows storage resources (Disk, Partition, and Volume) is provided directly by the Storage Management API.          &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;/em&gt;&lt;em&gt;&lt;font face="Calibri"&gt;A SMP or SMI-S Provider is only required for managing storage subsystems.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Irrespective of whether an SMP or SMI-S provider is used with your storage, the management processes are the same. For example, multiple management providers can be installed, and manage multiple subsystems simply by specifying the subsystem to manage.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;In either case, an end to end deployment workflow enabled by the Storage Management API would be the same:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0181.image_5F00_102247F4.png"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7077.image_5F00_1C9E6E4C.png"&gt;&lt;img title="image" style="display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8156.image_5F00_thumb_5F00_2E7B0219.png" width="175" height="419" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;In the example below, virtual disks are shown from Storage Spaces, an EMC SMI-S provider, and a Hitachi SMI-S Provider all via one command:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7382.image_5F00_2030A867.png"&gt;&lt;img title="image" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8053.image_5F00_thumb_5F00_0DE7E1A5.png" width="543" height="66" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;font color="#000000" face="Calibri"&gt;&lt;/font&gt;&lt;/h4&gt;  &lt;h4&gt;&lt;font color="#000000" face="Calibri"&gt;More Information:&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;b&gt;&lt;i&gt;Note:&lt;/i&gt;&lt;/b&gt; In addition to the management of storage resources using the storage module, there is also an &lt;b&gt;MPIO&lt;/b&gt; module for managing Microsoft MPIO, and an &lt;b&gt;iSCSI&lt;/b&gt; module for managing Microsoft iSCSI Initiator connections. I will cover these in detail in a subsequent posts.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;For information on deploying and managing &lt;b&gt;Storage Spaces&lt;/b&gt;, the built in subsystem in Windows Server 2012 and Windows 8, please refer to the following whitepaper:&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;&lt;font face="Calibri"&gt;&lt;em&gt;Deploy and Manage Storage Spaces using PowerShell:&lt;/em&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a href="http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;h5&gt;&lt;font face="Calibri"&gt;&lt;em&gt;For a list of the cmdlets contained in the &lt;b&gt;Storage&lt;/b&gt; module, refer to the following topic on TechNet:&lt;/em&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/hh848705.aspx"&gt;&lt;font face="Calibri"&gt;http://technet.microsoft.com/en-us/library/hh848705.aspx&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;h5&gt;&lt;font face="Calibri"&gt;&lt;em&gt;Introduction to SMI-S&lt;/em&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a href="http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx&lt;/font&gt;&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Thanks,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;Bruce Langworthy      &lt;br /&gt;Senior Program Manager – Windows Storage and Filesystems&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10324279" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_SMAPI/">#SMAPI</category><category domain="http://blogs.msdn.com/b/san/archive/tags/StorageSpaces/">StorageSpaces</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SMI_2D00_S/">SMI-S</category></item><item><title>An Introduction to SMI-S</title><link>http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-smi-s.aspx</link><pubDate>Tue, 26 Jun 2012 13:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10323977</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10323977</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-smi-s.aspx#comments</comments><description>&lt;p&gt;Jeff Goldner has posted an introduction to the Storage Management Initiative Specification (SMI-S) for storage management that covers the following topics.&amp;#160; This post is available here:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx" href="http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx"&gt;http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;And covers the following topics:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introduction to SMI-S&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Providers&lt;/li&gt;      &lt;li&gt;Classes&lt;/li&gt;      &lt;li&gt;Associations&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;What Microsoft is doing with SMI-S&lt;/li&gt;    &lt;li&gt;What it means for hardware vendors&lt;/li&gt;    &lt;li&gt;Next up&lt;/li&gt;    &lt;li&gt;Additional References&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10323977" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SMI_2D00_S/">SMI-S</category></item><item><title>Managing Storage Spaces using PowerShell Whitepaper is now available</title><link>http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx</link><pubDate>Wed, 13 Jun 2012 02:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10319146</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10319146</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx#comments</comments><description>&lt;p&gt;Our newest whitepaper, which details how to deploy and manage Storage Spaces in the Windows Server 2012 Release Candidate is now available at the link below:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=30125" href="http://www.microsoft.com/en-us/download/details.aspx?id=30125"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=30125&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here is a list of the sections in this whitepaper:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Introduction: Managing Storage Spaces using PowerShell&lt;/li&gt;    &lt;li&gt;Background on Storage Spaces and the Storage Management API&lt;/li&gt;    &lt;li&gt;Deploy and Manage Storage Spaces with PowerShell&lt;/li&gt;    &lt;li&gt;Maintaining Storage Spaces&lt;/li&gt;    &lt;li&gt;Advanced Storage Spaces configuration options&lt;/li&gt;    &lt;li&gt;Glossary&lt;/li&gt;    &lt;li&gt;Additional References&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce Langworthy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10319146" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/StorageSpaces/">StorageSpaces</category></item><item><title>Analyzing Storage Performance using the Windows Performance Analysis Toolkit (WPT)</title><link>http://blogs.msdn.com/b/san/archive/2012/04/04/analyzing-storage-performance-using-the-windows-performance-analysis-toolkit-wpt.aspx</link><pubDate>Wed, 04 Apr 2012 15:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10290804</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10290804</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/04/04/analyzing-storage-performance-using-the-windows-performance-analysis-toolkit-wpt.aspx#comments</comments><description>&lt;p&gt;I wanted to make sure everyone has seen this excellent blog posting from Robert Smith in Premier Field Engineering (PFE), on using the WPT to get to the bottom of performance issues with the Storage Stack. Please check out his post and use this the next time you have a performance issue with Storage.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/robertsmith/archive/2012/02/07/analyzing-storage-performance-using-the-windows-performance-toolkit.aspx" href="http://blogs.technet.com/b/robertsmith/archive/2012/02/07/analyzing-storage-performance-using-the-windows-performance-toolkit.aspx"&gt;http://blogs.technet.com/b/robertsmith/archive/2012/02/07/analyzing-storage-performance-using-the-windows-performance-toolkit.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This includes the following topics:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Obtaining the WPT&lt;/li&gt;    &lt;li&gt;Getting Started: Capturing Storage Performance Data&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Considerations for starting a trace&lt;/li&gt;      &lt;li&gt;Stopping a trace&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Trace Analysis&lt;/li&gt;    &lt;li&gt;What to look for (in a trace)&lt;/li&gt;    &lt;li&gt;High Disk service times&lt;/li&gt;    &lt;li&gt;Storport Tracing&lt;/li&gt;    &lt;li&gt;High I/O Times&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10290804" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Performance+Monitor/">Performance Monitor</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Performance/">Storage Performance</category></item><item><title>Links to Storage resources for the Windows 8 Consumer Preview</title><link>http://blogs.msdn.com/b/san/archive/2012/03/28/storage-resources-for-the-windows-8-consumer-preview.aspx</link><pubDate>Wed, 28 Mar 2012 15:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10285531</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10285531</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/03/28/storage-resources-for-the-windows-8-consumer-preview.aspx#comments</comments><description>&lt;p&gt;&lt;font size="1" face="Calibri"&gt;&lt;em&gt;&lt;strong&gt;Updated: 7/1/2012&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;As it can be difficult to locate all of our public content related to Storage and FileSystems on various Microsoft sites for the Windows 8 Consumer Preview and Windows Server “8” beta, I wanted to provide a list of documentation related to the consumer preview.&lt;/font&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;The list below is intended to be a starting point of available resources from the Storage team.&lt;/font&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font color="#4f81bd" size="3" face="Calibri"&gt;&lt;strong&gt;Introductions:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;An Introduction to Storage Management in Windows Server 2012&lt;/strong&gt;        &lt;br /&gt;&lt;/font&gt;&lt;a title="http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx" href="http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.msdn.com/b/san/archive/2012/06/26/an-introduction-to-storage-management-in-windows-server-2012.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri"&gt;Introduction to SMI-S for Storage Management          &lt;br /&gt;&lt;/font&gt;&lt;a title="http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx" href="http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.technet.com/b/filecab/archive/2012/06/25/introduction-to-smi-s.aspx&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Calibri"&gt;&amp;#160; &lt;font size="2"&gt;&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4f81bd" size="3" face="Calibri"&gt;Technical Guides:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;About the Windows Storage Management API&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/Hh830613" href="http://msdn.microsoft.com/en-us/library/Hh830613"&gt;&lt;font face="Calibri"&gt;http://msdn.microsoft.com/en-us/library/Hh830613&lt;/font&gt;&lt;/a&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri"&gt;&lt;font size="2"&gt;Deploy and Manage Storage Spaces using Windows PowerShell&lt;/font&gt;          &lt;br /&gt;&lt;/font&gt;&lt;a title="http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx" href="http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.msdn.com/b/san/archive/2012/06/12/managing-storage-spaces-using-powershell-whitepaper-is-now-available.aspx&lt;/font&gt;&lt;/a&gt;        &lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;Understand and Troubleshoot Storage Spaces in Windows Server “8” Beta&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://www.microsoft.com/download/en/details.aspx?id=29002" href="http://www.microsoft.com/download/en/details.aspx?id=29002"&gt;&lt;font size="2" face="Calibri"&gt;http://www.microsoft.com/download/en/details.aspx?id=29002&lt;/font&gt;&lt;/a&gt;      &lt;br /&gt;&lt;font face="Calibri"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;Encrypted Hard Drive Technical Preview&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://technet.microsoft.com/en-us/library/hh831627.aspx" href="http://technet.microsoft.com/en-us/library/hh831627.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/en-us/library/hh831627.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;Multi-terabyte Volumes Technical Preview&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://technet.microsoft.com/en-us/library/hh831536.aspx" href="http://technet.microsoft.com/en-us/library/hh831536.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/en-us/library/hh831536.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri"&gt;Windows Server “8” Beta – Hyper-V over SMB – Quick Provisioning a VM on an SMB FileShare:          &lt;br /&gt;&lt;/font&gt;&lt;a title="http://blogs.technet.com/b/josebda/archive/2012/03/20/windows-server-8-beta-hyper-v-over-smb-quick-provisioning-a-vm-on-an-smb-file-share.aspx" href="http://blogs.technet.com/b/josebda/archive/2012/03/20/windows-server-8-beta-hyper-v-over-smb-quick-provisioning-a-vm-on-an-smb-file-share.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.technet.com/b/josebda/archive/2012/03/20/windows-server-8-beta-hyper-v-over-smb-quick-provisioning-a-vm-on-an-smb-file-share.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri"&gt;Windows Server “8” Beta Scale-Out File Server for SQL Server 2012 – Step-by-step Installation:          &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://blogs.technet.com/b/josebda/archive/2012/03/15/windows-server-8-beta-scale-out-file-server-for-sql-server-2012-step-by-step-installation.aspx" href="http://blogs.technet.com/b/josebda/archive/2012/03/15/windows-server-8-beta-scale-out-file-server-for-sql-server-2012-step-by-step-installation.aspx"&gt;&lt;font face="Calibri"&gt;http://blogs.technet.com/b/josebda/archive/2012/03/15/windows-server-8-beta-scale-out-file-server-for-sql-server-2012-step-by-step-installation.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;strong&gt;VSS For SMB File Shares&lt;/strong&gt;      &lt;br /&gt;&lt;a title="http://blogs.technet.com/b/clausjor/archive/2012/06/14/vss-for-smb-file-shares.aspx" href="http://blogs.technet.com/b/clausjor/archive/2012/06/14/vss-for-smb-file-shares.aspx"&gt;http://blogs.technet.com/b/clausjor/archive/2012/06/14/vss-for-smb-file-shares.aspx&lt;/a&gt;&lt;font face="Calibri"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4f81bd" size="3" face="Calibri"&gt;PowerShell References:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;Storage Management PowerShell cmdlets&lt;/font&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a title="http://technet.microsoft.com/en-us/library/hh848705.aspx" href="http://technet.microsoft.com/en-us/library/hh848705.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/en-us/library/hh848705.aspx&lt;/font&gt;&lt;/a&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;iSCSI Initiator PowerShell cmdlets        &lt;br /&gt;&lt;/font&gt;&lt;a title="http://technet.microsoft.com/library/hh826099.aspx" href="http://technet.microsoft.com/library/hh826099.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/library/hh826099.aspx&lt;/font&gt;&lt;/a&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;strong&gt;         &lt;br /&gt;iSCSI Target PowerShell cmdlets&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://technet.microsoft.com/library/hh826097.aspx" href="http://technet.microsoft.com/library/hh826097.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/library/hh826097.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&lt;strong&gt;         &lt;br /&gt;iSCSI Block Storage How&amp;#160; Guide:&lt;/strong&gt;&lt;/font&gt;&lt;strong&gt;&lt;font size="2" face="Calibri"&gt;         &lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;a title="http://technet.microsoft.com/en-us/library/hh848268.aspx" href="http://technet.microsoft.com/en-us/library/hh848268.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/en-us/library/hh848268.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Calibri"&gt;&amp;#160; &lt;/font&gt;&lt;/p&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;blockquote&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;MPIO PowerShell cmdlets (Windows 8 Server Preview only)&lt;/font&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a title="http://technet.microsoft.com/library/hh826113.aspx" href="http://technet.microsoft.com/library/hh826113.aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://technet.microsoft.com/library/hh826113.aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;Windows PowerShell Reference Sheet for File and Storage Services in Windows Server “8” Beta&lt;/font&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;a title="https://blogs.technet.com/b/roiyz/archive/2012/03/06/windows-powershell-reference-sheet-for-file-and-storage-services-in-windows-server-8-beta.aspx?Redirected=true" href="http://blogs.technet.com/b/roiyz/archive/2012/03/06/windows-powershell-reference-sheet-for-file-and-storage-services-in-windows-server-8-beta.aspx?Redirected=true"&gt;&lt;font size="2" face="Calibri"&gt;http://blogs.technet.com/b/roiyz/archive/2012/03/06/windows-powershell-reference-sheet-for-file-and-storage-services-in-windows-server-8-beta.aspx?Redirected=true&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;       &lt;br /&gt;&lt;/font&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4f81bd" size="3" face="Calibri"&gt;WMI Management references:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;Storage Management API – WMI v2 Classes        &lt;br /&gt;&lt;/font&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/hh830612(v=vs.85).aspx" href="http://msdn.microsoft.com/en-us/library/hh830612(v=vs.85).aspx"&gt;&lt;font size="2" face="Calibri"&gt;http://msdn.microsoft.com/en-us/library/hh830612(v=vs.85).aspx&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;    &lt;h4&gt;&lt;font size="2" face="Calibri"&gt;       &lt;br /&gt;Storage Management WMI Application Sample         &lt;br /&gt;&lt;/font&gt;&lt;a title="http://code.msdn.microsoft.com/windowsdesktop/Storage-management-ddef6afc" href="http://code.msdn.microsoft.com/windowsdesktop/Storage-management-ddef6afc"&gt;&lt;font size="2" face="Calibri"&gt;http://code.msdn.microsoft.com/windowsdesktop/Storage-management-ddef6afc&lt;/font&gt;&lt;/a&gt;&lt;/h4&gt;   &lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a title="http://technet.microsoft.com/en-us/library/hh831536.aspx" href="http://technet.microsoft.com/en-us/library/hh831536.aspx"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/roiyz/archive/2012/03/06/windows-powershell-reference-sheet-for-file-and-storage-services-in-windows-server-8-beta.aspx"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;font face="Calibri"&gt;&lt;/font&gt;  &lt;p&gt;&lt;font face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10285531" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO/">MPIO</category><category domain="http://blogs.msdn.com/b/san/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/san/archive/tags/iSCSI/">iSCSI</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Windows+8/">Windows 8</category></item><item><title>Managing System Restore points with PowerShell</title><link>http://blogs.msdn.com/b/san/archive/2012/02/22/managing-system-restore-points-with-powershell.aspx</link><pubDate>Thu, 23 Feb 2012 07:35:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10271356</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10271356</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2012/02/22/managing-system-restore-points-with-powershell.aspx#comments</comments><description>&lt;p&gt;Jeffery Hicks has posted a great article on managing system restore points via PowerShell here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://mcpmag.com/articles/2012/02/21/powershell-windows-restore.aspx" href="http://mcpmag.com/articles/2012/02/21/powershell-windows-restore.aspx"&gt;http://mcpmag.com/articles/2012/02/21/powershell-windows-restore.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10271356" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Volsnap/">Volsnap</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SystemRestore/">SystemRestore</category></item><item><title>Updated Guidance on Microsoft MPIO Settings</title><link>http://blogs.msdn.com/b/san/archive/2011/12/02/updated-guidance-on-microsoft-mpio-settings.aspx</link><pubDate>Sat, 03 Dec 2011 02:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10242109</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10242109</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/12/02/updated-guidance-on-microsoft-mpio-settings.aspx#comments</comments><description>&lt;p&gt;&lt;font size="1"&gt;Last updated 2/22/2012&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://technet.microsoft.com/en-us/library/ee619778(WS.10).aspx"&gt;Microsoft Multipath I/O Step by Step guide&lt;/a&gt; for Windows Server 2008 R2 two new MPIO registry keys were introduced (&lt;strong&gt;UseCustomPathRecoveryInterval&lt;/strong&gt; and &lt;strong&gt;PathRecoveryInterval&lt;/strong&gt;) to mitigate a transient error. We issued post-release guidance previously and have recently updated our guidance as described below.&lt;/p&gt;  &lt;p&gt;For additional information about MPIO settings, please refer to the Microsoft Multipath I/O Step-By-Step guide here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee619749(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee619749(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Background on the issue:&lt;/h4&gt;  &lt;p&gt;The two new settings were introduced in Windows Server 2008 R2 to help mitigate the issue detailed below: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A transient error can cause a path to briefly fail and recover. &lt;/li&gt;    &lt;li&gt;MPIO detects that the path has failed and then performs a failover. &lt;/li&gt;    &lt;li&gt;The failed path was the last path for a particular pseudo-LUN, so the associated PDO Remove Timer started ticking down. &lt;/li&gt;    &lt;li&gt;The error was brief enough and PnP was busy enough that PnP missed the fact that the path went away and came back. Therefore, there are no PnP events generated to indicate that the path is back online. &lt;/li&gt;    &lt;li&gt;The pseudo-LUN never sees the path come back online and it gets removed after the PDO Remove Timer runs out.&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;The end result is that the system has at least one path and one device online, but no pseudo-LUN to represent that device.&lt;/p&gt;  &lt;p&gt;MPIO has a path recovery mechanism that can be used to avoid this issue. However, by default, the period at which path recovery is attempted is set to twice in the PDORemovePeriod. In the majority of cases, the default is acceptable, but it does not solve the problem in this particular scenario.&lt;/p&gt;  &lt;p&gt;This is where the CustomPathRecoveryInterval setting comes into play. They allow you to configure a timer that determines the period at which path recovery attempts are performed. By setting the PathRecoveryInterval to less than the PDORemovePeriod, the path recovery attempt executes before the pseudo-LUN is removed, the path is detected as back online, and the pseudo-LUN is saved from removal.&lt;/p&gt;  &lt;p&gt;We recommend that you test the use of this value before widespread deployment in production to ensure that path recovery attempts are not happening so frequently that they have a significant impact on regular I/O.&lt;/p&gt;  &lt;h4&gt;Updated guidance:&lt;/h4&gt;  &lt;p&gt;As the default settings allow for the potential that a path recovery under high load may be missed, we are making the following updated recommendation around the use of these settings. Note however, that, as always, settings should be evaluated for potential impact in a test environment prior to implementing changes in production environments.&lt;/p&gt;  &lt;p&gt;We now recommend that the keys above be considered for wider use since they have the potential to allow path recovery under load in situations that might otherwise result in a path failure and I/O delays.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;em&gt;A warning about this value.&lt;/em&gt;&lt;/b&gt;&amp;#160; The PathRecoveryInterval controls how often MPIO will check to see if the device has returned after an error. This translates to a greater amount of traffic to the array. Caution should be used when implementing this setting, as implementing this change with a value that is too low may cause adverse performance impact. &lt;/p&gt;  &lt;p&gt;Our general guidance going forward for this setting is as follows: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The PDORemovePeriod should be set to a minimum of 30 seconds.&amp;#160; &lt;/li&gt;    &lt;li&gt;UseCustomPathRecoveryInterval would be set to 1 to enable custom path recovery.&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&lt;/li&gt;    &lt;li&gt;PathRecoveryInterval should be set to a value approximately 10 seconds less than the PDO remove period.&amp;#160; Additionally we recommend that this value not be set below 20 seconds to mitigate performance degradation risk.&lt;/li&gt;  &lt;/ul&gt;  &lt;p&gt;It is also important to note that the PDORemovePeriod must be set to a value less than the global Windows Disk Timeout, to allow path recovery prior to I/O timeouts.&amp;#160; For more information on the global Windows “Disk” timeout registry key, please see the article link at the end of this post.&lt;/p&gt;  &lt;p&gt;For example:&lt;/p&gt;  &lt;p&gt;If the Windows Disk timeout is 30 seconds&lt;/p&gt;  &lt;p&gt;AND&lt;/p&gt;  &lt;p&gt;The PDORemovePeriod is 25 seconds&lt;/p&gt;  &lt;p&gt;Then a good starting point value for PathRecoveryInterval would be 15 to 20 seconds.&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="10"&gt;         &lt;p&gt;&lt;b&gt;Setting &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="405"&gt;         &lt;p&gt;&lt;b&gt;Definition &lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="10"&gt;         &lt;p&gt;HKLM\System\CurrentControlSet\Services\mpio\Parameters\&lt;/p&gt;          &lt;p&gt;&amp;#160; UseCustomPathRecoveryInterval&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="405"&gt;         &lt;p&gt;If this key exists and is set to 1, it allows the use of PathRecoveryInterval.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="10"&gt;         &lt;p&gt;HKLM\System\CurrentControlSet\Services\mpio\Parameters\&lt;/p&gt;          &lt;p&gt;&amp;#160; PathRecoveryInterval&lt;/p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="405"&gt;         &lt;p&gt;Represents the period after which PathRecovery is attempted. This setting is only used if it is not set to 0 and UseCustomPathRecoveryInterval is set to 1.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h4&gt;Additional Guidelines for setting timeouts:&lt;/h4&gt;  &lt;p&gt;Regardless of the values that you choose for MPIO, it is crucial that the following rules be used when setting the timeouts referenced in this article:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Windows Disk timeout (detailed in the article below) must have the highest value.&lt;/li&gt;    &lt;li&gt;The PDORemovePeriod must be less than the Disk timeout setting&lt;/li&gt;    &lt;li&gt;The CustomPathRecoveryInterval must be less than the value used for PDORemovePeriod.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Note: The settings detailed in this article are also useful in the recovery of paths with the iSCSI Initiator and MPIO.&lt;/p&gt;  &lt;p&gt;Additional References:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/san/archive/2011/09/01/the-windows-disk-timeout-value-understanding-why-this-should-be-set-to-a-small-value.aspx"&gt;http://blogs.msdn.com/b/san/archive/2011/09/01/the-windows-disk-timeout-value-understanding-why-this-should-be-set-to-a-small-value.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;The MPIO Team&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10242109" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/MPIO/">MPIO</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Performance/">Storage Performance</category></item><item><title>An update on Storage and Continuous Availability Enhancements in Windows Server 8</title><link>http://blogs.msdn.com/b/san/archive/2011/11/25/an-update-on-storage-and-continuous-availability-enhancements-in-windows-server-8.aspx</link><pubDate>Fri, 25 Nov 2011 13:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10238517</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10238517</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/11/25/an-update-on-storage-and-continuous-availability-enhancements-in-windows-server-8.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=https://blogs.msdn.com/b/san/archive/2011/11/18/an-update-on-storage-and-continuous-availability-enhancements-in-windows-server-8.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;For those of you eager for more Windows 8 related news, there is a new blog posting from Thomas Pfenning , at the link below that details improvements in Storage and Continuous Availability for Windows Server 8:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/server-cloud/archive/2011/09/20/storage-and-continuous-availability-enhancements-in-windows-server-8.aspx" href="http://blogs.technet.com/b/server-cloud/archive/2011/09/20/storage-and-continuous-availability-enhancements-in-windows-server-8.aspx"&gt;http://blogs.technet.com/b/server-cloud/archive/2011/09/20/storage-and-continuous-availability-enhancements-in-windows-server-8.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10238517" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Windows+8/">Windows 8</category></item><item><title>Updated Guidance from the Exchange Server team on disk timeouts</title><link>http://blogs.msdn.com/b/san/archive/2011/11/21/updated-guidance-from-the-exchange-server-team-on-disk-timeouts.aspx</link><pubDate>Mon, 21 Nov 2011 17:26:22 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10239180</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10239180</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/11/21/updated-guidance-from-the-exchange-server-team-on-disk-timeouts.aspx#comments</comments><description>&lt;p&gt;In response to my recent post about the updated guidelines for &lt;a href="http://blogs.msdn.com/b/san/archive/2011/09/01/the-windows-disk-timeout-value-understanding-why-this-should-be-set-to-a-small-value.aspx" target="_blank"&gt;Windows disk timeouts&lt;/a&gt;, the Exchange Server team has released&amp;#160; updated guidance on disk timeout settings with Exchange Server deployments. The article, titled “Windows Disk Timeouts and Exchange Server 2010” is available here:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/exchange/archive/2011/11/17/windows-disk-timeouts-and-exchange-server-2010.aspx" href="http://blogs.technet.com/b/exchange/archive/2011/11/17/windows-disk-timeouts-and-exchange-server-2010.aspx"&gt;http://blogs.technet.com/b/exchange/archive/2011/11/17/windows-disk-timeouts-and-exchange-server-2010.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Bruce&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10239180" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Disk/">Disk</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Performance+Monitor/">Performance Monitor</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Performance/">Storage Performance</category></item><item><title>Windows Server 8: Standards-Based Storage Management</title><link>http://blogs.msdn.com/b/san/archive/2011/10/15/windows-server-8-standards-based-storage-management.aspx</link><pubDate>Sat, 15 Oct 2011 14:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10225684</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10225684</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/10/15/windows-server-8-standards-based-storage-management.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=https://blogs.msdn.com/b/san/archive/2011/10/15/windows-server-8-standards-based-storage-management.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Jeffrey Snover has posted a great blog here about what is coming in Storage Management:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.technet.com/b/server-cloud/archive/2011/10/14/windows-server-8-standards-based-storage-management.aspx" href="http://blogs.technet.com/b/server-cloud/archive/2011/10/14/windows-server-8-standards-based-storage-management.aspx"&gt;http://blogs.technet.com/b/server-cloud/archive/2011/10/14/windows-server-8-standards-based-storage-management.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10225684" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SAN/">SAN</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Announcements/">Announcements</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_WindowsStorageManagement/">#WindowsStorageManagement</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_SMAPI/">#SMAPI</category></item><item><title>Using PowerShell to collect information for Storage Troubleshooting (Part 2: Performance Counters)</title><link>http://blogs.msdn.com/b/san/archive/2011/09/10/using-powershell-to-collect-information-for-storage-troubleshooting-part-2-performance-counters.aspx</link><pubDate>Sat, 10 Sep 2011 22:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10195619</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>1</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10195619</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/09/10/using-powershell-to-collect-information-for-storage-troubleshooting-part-2-performance-counters.aspx#comments</comments><description>&lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;This is the second in a series of posts on how to utilize PowerShell to easily collect system information useful for troubleshooting Storage issues. &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;Note: In a later installment of this series, I’ll be showing how to utilize the information gathered in these scripts for troubleshooting some common storage issues.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;In my first installment, I covered the collection of currently installed Hotfixes, and collection of specific system events related to storage. You can find the first installment here:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/san/archive/2011/08/12/using-powershell-to-collect-information-for-storage-troubleshooting-part-1-hotfixes-and-system-events.aspx" target="_blank"&gt;&lt;font face="Segoe UI"&gt;Storage Troubleshooting Part 1: Hotfixes and System Events&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;One troubleshooting step which typically comes into play with troubleshooting storage performance is collecting Performance Monitor (Perfmon) logs to assess the current system state, and look for causes of slow performance, such as lack of available memory, or excessive disk queue length.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;Setting up a Perfmon log to capture information takes time and expertise for review, and I wanted a way to take a quick peek at the system to see if such an effort was needed.&amp;#160; For example, if file copies seem “slow” and I were to look at the current Disk Queue length, it could tell me whether the perceived slowness is time spent waiting on the disk to do work.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;Once you figure out how to access performance counters through PowerShell (which isn’t a lot of fun), it’s actually easy to use them to view information.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Segoe UI"&gt;&lt;font size="2"&gt;What I mean by this, is that finding them is hard, but using them is easy&lt;/font&gt; &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h2&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/h2&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Displaying Performance Counter Information:&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;In order to look at a specific counter, you need the path and name of the counter. For example, if I wanted to display the current Disk Queue Length for all disks, the following query in PowerShell would display this:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: #cccccc" face="Consolas"&gt;(Get-Counter &amp;quot;\\$Computer\PhysicalDisk(*)\Current Disk Queue Length&amp;quot;).Countersamples&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;Which displays output, similar to the following:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: #cccccc" face="Consolas"&gt;Path&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; InstanceName CookedValue      &lt;br /&gt;----&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ------------ -----------       &lt;br /&gt;\\bman-pc\physicaldisk(0 c:)&amp;#160; \current disk queue length&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0 c:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160; &lt;br /&gt;\\bman-pc\physicaldisk(1 f:)&amp;#160; \current disk queue length&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1 f:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160; &lt;br /&gt;\\bman-pc\physicaldisk(2 i:)&amp;#160; \current disk queue length&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 2 i:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160; &lt;br /&gt;\\bman-pc\physicaldisk(_total)\current disk queue length&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _total&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0&amp;#160;&amp;#160; &lt;/font&gt;&amp;#160; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;This can even be combined with the use of Where-Object to filter the results. For example, using the output above as a guide, if I only wished to display these counters for the C volume, I would use the following command to specify that I want only the instance name for Disk 0.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: #cccccc" face="Consolas"&gt;((Get-Counter &amp;quot;\\$Computer\PhysicalDisk(*)\Current Disk Queue Length&amp;quot;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ).Countersamples | ? {$_.InstanceName -eq &amp;quot;0 c:&amp;quot;})&lt;/font&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Accessing the list of available counter paths&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;This is cool, but only of limited use unless you know how to find the path and name needed for accessing the counters. This is done by storing the output of Get-Counter in a variable, and then looking at the paths property.&amp;#160; For example, if I wished to list all of the counters available on the Disk object, I would use the following Query:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: #cccccc" face="Consolas"&gt;$PhysCounter = get-counter -ListSet PhysicalDisk&amp;#160;&amp;#160; &lt;br /&gt;$PhysCounter.Paths&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="2" face="Segoe UI"&gt;Which yields the following list of paths exposed by this object which may be queried:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font style="background-color: #8fb08c"&gt;&lt;font face="Courier New"&gt;\PhysicalDisk(*)\Current Disk Queue Length&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font style="background-color: #8fb08c"&gt;&lt;font face="Courier New"&gt;\PhysicalDisk(*)\% Disk Time&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Queue Length&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\% Disk Read Time&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Read Queue Length&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\% Disk Write Time&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Write Queue Length         &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk sec/Transfer&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk sec/Read&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk sec/Write&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Transfers/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Reads/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Writes/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Bytes/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Read Bytes/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Disk Write Bytes/sec&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Bytes/Transfer&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Bytes/Read&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\Avg. Disk Bytes/Write&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;\PhysicalDisk(*)\% Idle Time&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&lt;font style="background-color: #8fb08c"&gt;&lt;font face="Courier New"&gt;\PhysicalDisk(*)\Split IO/Sec&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;   &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Segoe UI"&gt;&lt;font size="2"&gt;Prefixing this with the computer name is all that is needed to use this to collect information from the counters.&lt;/font&gt; &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3 class="csharpcode"&gt;&lt;font face="Segoe UI"&gt;PowerShell sample script&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p class="csharpcode"&gt;&lt;font face="Segoe UI"&gt;In the sample below, I’ve taken this a bit further, and create a table for each of the counter sets. There are example outputs below, followed by the script sample itself.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p class="csharpcode"&gt;&lt;font face="Segoe UI"&gt;&lt;em&gt;Example of Disk counters output:&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/2311.image_5F00_56708DEC.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/8171.image_5F00_thumb_5F00_15CE417D.png" width="592" height="124" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;font face="Segoe UI"&gt;&lt;em&gt;Example of Processor counters output:&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7457.image_5F00_72918C8A.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5126.image_5F00_thumb_5F00_1D69F09D.png" width="540" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;em&gt;Example of Memory counters output:&lt;/em&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/0027.image_5F00_31EF401B.png"&gt;&lt;img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/7457.image_5F00_thumb_5F00_2A63D0AE.png" width="544" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="csharpcode"&gt;Note: The script below can also be downloaded from the Microsoft Script Repository on Technet at the following link:&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;a title="http://gallery.technet.microsoft.com/scriptcenter/StoragePerfCounters-ec8f6c8f" href="http://gallery.technet.microsoft.com/scriptcenter/StoragePerfCounters-ec8f6c8f"&gt;http://gallery.technet.microsoft.com/scriptcenter/StoragePerfCounters-ec8f6c8f&lt;/a&gt;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&amp;#160;&lt;/p&gt;  &lt;p class="csharpcode"&gt;&lt;span class="rem"&gt;#================================================================================= &lt;/span&gt;    &lt;br /&gt;&lt;span class="rem"&gt;# Created with: SAPIEN Technologies, Inc., PrimalForms 2011 v2.0.11&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;# Created on:&amp;#160;&amp;#160; 8/14/2011 7:16 PM&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;# Created by:&amp;#160;&amp;#160; Bruce Langworthy&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;# Organization: Microsoft Corporation&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;# Filename: StoragePerformanceCounters.PS1&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#=================================================================================&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;# Note: The performance information displayed by these counters are the&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; current values only, they do not show trends. This information&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; should be used as a measurement only of the current system state.&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;#=================================================================================&lt;/span&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#&amp;#160;&amp;#160; Retrieve the current Disk performance counter information.&lt;/span&gt;     &lt;br /&gt;$computer&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = $ENV:Computername     &lt;br /&gt;$instance&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = &lt;span class="str"&gt;&amp;quot;_total&amp;quot;&lt;/span&gt;     &lt;br /&gt;    &lt;br /&gt;@(&lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Current Disk Queue Length&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\% Disk Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk Queue Length&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk Read Queue Length&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk Write Queue Length&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk sec/Transfer&amp;quot;&lt;/span&gt;     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk sec/Read&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\PhysicalDisk(*)\Avg. Disk sec/Write&amp;quot;&lt;/span&gt;) |% {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (Get-Counter $_.replace(&lt;span class="str"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;,$instance)).CounterSamples } |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Select-Object Path,CookedValue |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Format-Table -AutoSize     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#&amp;#160;&amp;#160; Retrieve the current Processor performance counter information.&lt;/span&gt;     &lt;br /&gt;$computer&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = $ENV:Computername     &lt;br /&gt;$instance&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = &lt;span class="str"&gt;&amp;quot;_total&amp;quot;&lt;/span&gt;     &lt;br /&gt;@(&lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% Processor Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% User Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% Privileged Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\Interrupts/sec&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% DPC Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\DPCs Queued/sec&amp;quot;&lt;/span&gt;     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% Idle Time&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Processor(*)\% Interrupt Time&amp;quot;&lt;/span&gt;) |% {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (Get-Counter $_.replace(&lt;span class="str"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;,$instance)).CounterSamples } |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Select-Object Path,CookedValue |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Format-Table -AutoSize     &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;# Retreive the current Memory counter information&lt;/span&gt;     &lt;br /&gt;$computer&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = $ENV:Computername     &lt;br /&gt;$instance&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = &lt;span class="str"&gt;&amp;quot;_total&amp;quot;&lt;/span&gt;     &lt;br /&gt;@(&lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Page Faults/sec&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Available Bytes&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Committed Bytes&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Commit Limit&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Pages/sec&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Free System Page Table Entries&amp;quot;&lt;/span&gt;     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Pool Paged Resident Bytes&amp;quot;&lt;/span&gt;,     &lt;br /&gt;&amp;#160; &lt;span class="str"&gt;&amp;quot;\\$Computer\Memory\Available MBytes&amp;quot;&lt;/span&gt;) |% {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (Get-Counter $_.replace(&lt;span class="str"&gt;&amp;quot;*&amp;quot;&lt;/span&gt;,$instance)).CounterSamples } |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Select-Object Path,CookedValue |     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Format-Table -AutoSize     &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#================================================================================================&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;#The following examples shows how to list the available paths to query for several counter sets&lt;/span&gt;     &lt;br /&gt;&lt;span class="rem"&gt;#================================================================================================&lt;/span&gt;     &lt;br /&gt;$PhysCounter&amp;#160; = get-counter -ListSet PhysicalDisk     &lt;br /&gt;$PhysCounter.Paths     &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#Memory Counters&lt;/span&gt;     &lt;br /&gt;$MemCounter&amp;#160;&amp;#160; = get-counter -ListSet Memory     &lt;br /&gt;$MemCounter.Paths     &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span class="rem"&gt;#CPU Counters&lt;/span&gt;     &lt;br /&gt;$CpuCounter&amp;#160;&amp;#160; = get-counter -ListSet Processor     &lt;br /&gt;$CpuCounter.Paths     &lt;br /&gt;    &lt;br /&gt;&amp;#160; &lt;br /&gt;&lt;a class="twitter-follow-button" href="http://twitter.com/{screen_name}" data-show-count="false"&gt;Follow @BruceLangworthy&lt;/a&gt; &lt;script src="http://platform.twitter.com/widgets.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10195619" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Script+Example/">Script Example</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Perfmon/">Perfmon</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Performance+Monitor/">Performance Monitor</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Dan+Lovinger/">Dan Lovinger</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PrimalForms/">#PrimalForms</category></item><item><title>FAQ: Storage Reference pages for Developers</title><link>http://blogs.msdn.com/b/san/archive/2011/09/02/storage-wmi-classes.aspx</link><pubDate>Sat, 03 Sep 2011 04:15:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10205602</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10205602</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/09/02/storage-wmi-classes.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:4px 0px 4px 0px;"&gt;&lt;iframe src="http://www.facebook.com/widgets/like.php?href=https://blogs.msdn.com/b/san/archive/2011/09/02/storage-wmi-classes.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;Since the information on TechNet and MSDN can unfortunately be quite spread out, I wanted to post this consolidated list of resources for Storage driver developers, to keep this in one location.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Storage Devices Reference on MSDN&lt;/h3&gt;  &lt;p&gt;The section includes references on the following Storage related items:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Storage Routines &lt;/li&gt;    &lt;li&gt;Storage Structures and Enumerations &lt;/li&gt;    &lt;li&gt;I/O Requests for Mass Storage Drivers &lt;/li&gt;    &lt;li&gt;Storage WMI classes for management &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ff566970(v=VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/ff566970(v=VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ff566970(v=VS.85).aspx&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Storage Samples:&lt;/h3&gt;  &lt;p&gt;Samples for the following driver types are available:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;AddFilter &lt;/li&gt;    &lt;li&gt;CDROM Class Driver &lt;/li&gt;    &lt;li&gt;Common Library for Storage Class Drivers &lt;/li&gt;    &lt;li&gt;Disk Class Driver &lt;/li&gt;    &lt;li&gt;DiskPerf filter driver &lt;/li&gt;    &lt;li&gt;flpyDisk &lt;/li&gt;    &lt;li&gt;Pciide &lt;/li&gt;    &lt;li&gt;SCSI Pass Through Interface &lt;/li&gt;    &lt;li&gt;Sfloppy &lt;/li&gt;    &lt;li&gt;Storage SDIO Driver Sample &lt;/li&gt;    &lt;li&gt;iSCSI WMI Sample &lt;/li&gt;    &lt;li&gt;MPIO DSM Sample &lt;/li&gt;    &lt;li&gt;Storport Example Driver &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ff567002(v=VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/ff567002(v=VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ff567002(v=VS.85).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Design Guides:&lt;/h3&gt;  &lt;p&gt;Design guides for the following driver types are also available:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Storage Drivers &lt;/li&gt;    &lt;li&gt;Storage Class Drivers &lt;/li&gt;    &lt;li&gt;Storage Port Drivers &lt;/li&gt;    &lt;li&gt;Storage Miniport Drivers &lt;/li&gt;    &lt;li&gt;Storage Virtual Miniport Drivers &lt;/li&gt;    &lt;li&gt;Storage Filter Drivers &lt;/li&gt;    &lt;li&gt;Storage Silo Drivers &lt;/li&gt;    &lt;li&gt;Crash Dump Filter Drivers &lt;/li&gt;    &lt;li&gt;CD-Rom Drivers &lt;/li&gt;    &lt;li&gt;Tape Drivers &lt;/li&gt;    &lt;li&gt;Changer Drivers &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ff566969(v=VS.85).aspx" href="http://msdn.microsoft.com/en-us/library/ff566969(v=VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/ff566969(v=VS.85).aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10205602" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/Announcements/">Announcements</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Management/">Storage Management</category><category domain="http://blogs.msdn.com/b/san/archive/tags/WMI/">WMI</category></item><item><title>The Windows Disk timeout value: Less is better</title><link>http://blogs.msdn.com/b/san/archive/2011/09/01/the-windows-disk-timeout-value-understanding-why-this-should-be-set-to-a-small-value.aspx</link><pubDate>Fri, 02 Sep 2011 02:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10195898</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>0</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10195898</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/09/01/the-windows-disk-timeout-value-understanding-why-this-should-be-set-to-a-small-value.aspx#comments</comments><description>&lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;Updated: 6/7/2012&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;As a result of some internal discussions around this, I decided that a blog post was long overdue on this topic, as the ramifications of setting the timeout value for Disk.sys are not commonly understood completely, and can lead to long recovery times in enterprise environments.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;&lt;em&gt;The Windows Disk timeout is stored in the following registry key:&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Courier New"&gt;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\ &lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;For example, most array vendors will set this value to (at least) 60 seconds. This means, for all intents and purposes, that Windows will not report any problems with timeouts until at least 60 seconds have passed.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;If for some reason, the Fibre Channel frame in question was dropped ,this is further exaggerated by the fact that after this timeout is hit, the Disk / Class layer will retry the I/O operation 8 times at the interval of the timeout for disk.sys, and during this time, since Windows is waiting for the SAN to return data, the operating system may appear to be frozen, depending on what the data was.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;This means that with the value of 60 seconds, the effective impact to the user is the following:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;div align="justify"&gt;&lt;font face="Segoe UI"&gt;I/O Timeouts will not be exposed in the Windows Event log until after 60 seconds AND the timeouts have expired, so effectively, this translates to an 8 minute delay before the I/O is retried. &lt;/font&gt;&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;While there is not any single rule which will apply equally to everyone in this case, I think most people would agree that waiting 8 minutes is far too long.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;Going forward, Microsoft is recommending that the Disk timeout value be set as low as possible, and no greater than 20 to 30 seconds at a maximum. In this way, you can decrease the time to recovery on dropped I/O packets.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;&lt;font size="4"&gt;Why not just set it to 1 second? I don’t want to wait that long:&lt;/font&gt;&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;Keep in mind that the disk.sys timeout value is a global setting. If you were to set it to 1 second, this would mean that it would also have the effect of allowing only 1 second to spin up a drive which is asleep before reporting a timeout on the device.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;It’s also important that this value be set high enough when using systems which are not only using SAN storage.&amp;#160; For example, if you were to set the timeout value to 5 seconds on Windows Client operating systems where a SAN is not connected, you would likely see timeout errors which were not actually a problem, such as when a DVD or local disk are spinning up after being asleep. A good starting point to consider using is a value between 10 and 30 seconds.&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;Clearly, the need for a reasonable value is key, however we would strongly recommend that this be no more than 30 seconds going forward. As with any other change, this is something that should be evaluated for impact in a test environment prior to implementing this in a production environment.&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;h3&gt;What are the key things to consider when setting the disk timeout value? &lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;The greater this value, the longer it will be before any timeout errors are surfaced by Windows. We would in general recommend setting this value low enough to meet any required SLA’s on the storage, rather than setting it too high.        &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;To drive this point a little further, let’s review a potential scenario:        &lt;br /&gt;        &lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;li&gt;       &lt;div align="justify"&gt;&lt;font face="Segoe UI"&gt;Let’s say that I have a SQL Server deployment, and my primary concern is fast I/O to the SQL database. SQL in general requires very short delays on I/O responses, and delays can translate to a delay in client applications built on top of SQL.            &lt;br /&gt;            &lt;br /&gt;In fact SQL Server will generate an Application event any time an I/O takes longer than 15 seconds. &lt;/font&gt;&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt; &lt;font face="Segoe UI"&gt;   &lt;blockquote&gt;     &lt;p align="justify"&gt;       &lt;br /&gt;The problem with this approach, is that using the default value of 60 (or more) seconds employed by most array vendors, would prevent you from seeing any System events related to I/O timeouts &lt;b&gt;unless&lt;/b&gt; the timeouts are for longer than 60 seconds.         &lt;br /&gt;        &lt;br /&gt;This can make troubleshooting extremely difficult, because on one hand you would have a SQL client application acting slow, and SQL reporting slow I/O, at the same time that there are no events from Windows.         &lt;br /&gt;        &lt;br /&gt;To ensure that these additional system events required for troubleshooting are not lost you would likely want to find a timeout closer to a maximum of 15 seconds that still works well under production workloads without generating excessive event log noise. &lt;/p&gt;   &lt;/blockquote&gt; &lt;/font&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;If you are using Fibre Channel-based storage, any occurrence of a dropped FC frame will cause all I/O to halt until recovery occurs, or until Storport has exceeded its 8 retry attempts at intervals of the Disk timeout. &lt;/font&gt;&lt;/p&gt;    &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;So as I mentioned previously, 60 seconds will likely be far too long in this case, as it would translate to a 8 minute outage on a dropped frame. &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;font face="Segoe UI"&gt;     &lt;p align="justify"&gt;&amp;#160;&lt;/p&gt;   &lt;/font&gt;&lt;/blockquote&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;More Information&lt;/font&gt;&lt;/h3&gt;  &lt;ul&gt;   &lt;ul&gt;     &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;Even if you are not using Fibre Channel storage, in most cases, a disk timeout value of 60 seconds would be too long, as it would mask timeout errors far beyond the point where a user could perceive slow access to data.&lt;/font&gt;&lt;/p&gt;      &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;When troubleshooting issues with storage performance, it may be beneficial to set this slightly lower than normal to increase the chances of catching timeout errors.&lt;/font&gt;&lt;/p&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;h3&gt;Additional Resources&lt;/h3&gt;  &lt;blockquote&gt;   &lt;p align="justify"&gt;&lt;font face="Segoe UI"&gt;I have received some questions on what timeout values exist for both iSCSI and MPIO. These are documented in their respective users guides. I’m including links to these documents below:        &lt;br /&gt;        &lt;br /&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6408" target="_blank"&gt;iSCSI Initiator Users Guide&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;   &lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/blockquote&gt;  &lt;blockquote&gt;&lt;font face="Segoe UI"&gt;     &lt;p align="justify"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee619778(WS.10).aspx" target="_blank"&gt;MPIO Users Guide&lt;/a&gt;&lt;/p&gt;   &lt;/font&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10195898" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/FAQ/">FAQ</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Fibre+Channel/">Fibre Channel</category><category domain="http://blogs.msdn.com/b/san/archive/tags/SAN/">SAN</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Disk/">Disk</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Storage+Performance/">Storage Performance</category></item><item><title>Using PowerShell to collect information for Storage Troubleshooting (Part 1: Hotfixes and System Events)</title><link>http://blogs.msdn.com/b/san/archive/2011/08/12/using-powershell-to-collect-information-for-storage-troubleshooting-part-1-hotfixes-and-system-events.aspx</link><pubDate>Fri, 12 Aug 2011 14:58:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10195199</guid><dc:creator>Bruce Langworthy - MSFT</dc:creator><slash:comments>2</slash:comments><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/san/commentapi.aspx?WeblogPostID=10195199</wfw:comment><comments>http://blogs.msdn.com/b/san/archive/2011/08/12/using-powershell-to-collect-information-for-storage-troubleshooting-part-1-hotfixes-and-system-events.aspx#comments</comments><description>&lt;p&gt;&lt;font face="Segoe UI"&gt;This will be part of a series of posts on how to utilize PowerShell to easily collect system information useful for troubleshooting Storage issues. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;In my first installment, we will cover the collection of currently installed Hotfixes, and collection of specific system events related to storage.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Collecting a list of installed hotfixes:&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font face="Segoe UI"&gt;The following code sample produces a list of the installed hotfixes on the system, sorted in descending order, which can be useful when looking for a specific hotfix, or when performing configuration monitoring.&lt;/font&gt;&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(165, 165, 165);"&gt;(Get-HotFix | Select HotfixID, Description, InstalledBy, InstalledOn | 
Sort-Object -Property InstalledOn -Descending)                         &lt;/font&gt;                                            &lt;/pre&gt;


&lt;h3&gt;&lt;font face="Segoe UI"&gt;Sample hotfix output:&lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;&lt;font face="Segoe UI"&gt;Note: In sample output, some text may have been omitted to improve readability. To get the complete output, you can omit the Select filter, and combine it with piping to Out-File to save as a file.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(143, 176, 140);"&gt;HotfixID                          Description                      InstalledBy                    InstalledOn          
--------                         -----------                      -----------                     -----------          
KB2539635                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2562937                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2559049                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2536276                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2556532                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2567680                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2560656                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2563894                        Security Update                  NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2563227                        Update                           NT AUTHORITY\SYSTEM             8/10/2011 12:00:00 AM
KB2555917                        Security Update                  NT AUTHORITY\SYSTEM             7/14/2011 12:00:00 AM
KB2529073                        Update                           NT AUTHORITY\SYSTEM             7/14/2011 12:00:00 AM
KB2507938                        Security Update                  NT AUTHORITY\SYSTEM             7/14/2011 12:00:00 AM
KB2533623                        Update                           NT AUTHORITY\SYSTEM             7/14/2011 12:00:00 AM
KB2532531                        Security Update                  NT AUTHORITY\SYSTEM             7/14/2011 12:00:00 AM&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&amp;#160;&lt;/pre&gt;

&lt;h3&gt;&lt;font face="Segoe UI"&gt;Collecting system events for a specific source&lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;&lt;font face="Segoe UI"&gt;First, I would recommend storing the system log in a PowerShell variable when intending to query multiple event log sources.&amp;#160; Querying the log can be a very slow process, and by storing it in a variable, you can avoid repeating the delay for collection of the system log.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;# &lt;font color="#dfce04"&gt;&lt;font color="#4bacc6"&gt;Store the current System log in the variable TempSystemLog&lt;/font&gt;&lt;/font&gt; &lt;br /&gt;&lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;$TempSystemLog = (Get-WinEvent -LogName System)              &lt;br /&gt;&lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;#                                                            &lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;# &lt;/font&gt;&lt;/font&gt;&lt;font color="#4bacc6"&gt;Then pipe the variable to the appropriate filter&lt;/font&gt;           &lt;br /&gt;&lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;($TempSystemLog | ? {$_.ProviderName -eq &lt;span class="str"&gt;&amp;quot;NTFS&amp;quot;   &lt;/span&gt;})         &lt;br /&gt;($TempSystemLog | ? {$_.ProviderName -eq &lt;span class="str"&gt;&amp;quot;Volsnap&amp;quot;&lt;/span&gt;})         &lt;br /&gt;($TempSystemLog | ? {$_.ProviderName -eq &lt;span class="str"&gt;&amp;quot;Disk&amp;quot;   &lt;/span&gt;})         &lt;/font&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(204, 204, 204);" face="Segoe UI"&gt;&lt;/font&gt;&amp;#160;&lt;/pre&gt;

&lt;p&gt;&lt;font style="background-color: rgb(255, 255, 255);" face="Segoe UI"&gt;&lt;font size="3"&gt;Hint: If you add “FT –Autosize” it will display more of the message text on the screen, such as &lt;/font&gt;&lt;/font&gt;&lt;font style="background-color: rgb(255, 255, 255);" face="Segoe UI"&gt;&lt;font size="3"&gt;&lt;font style="background-color: rgb(255, 255, 255);" face="Segoe UI"&gt;&lt;font size="3"&gt;is &lt;font style="background-color: rgb(255, 255, 0);"&gt;highlighted&lt;/font&gt; below&lt;/font&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;($TempSystemLog | Where-&lt;span class="kwrd"&gt;object&lt;/span&gt; {$_.ProviderName -eq &lt;/font&gt;&lt;span class="str"&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;&amp;quot;Disk&amp;quot; &lt;/font&gt;&lt;font style="background-color: rgb(204, 204, 204);"&gt;| &lt;/font&gt;&lt;font style="background-color: rgb(255, 255, 0);"&gt;FT –Autosize)&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font style="background-color: rgb(255, 255, 255);"&gt;The c&lt;/font&gt;ommands above produce separate lists of all NTFS events, all Volsnap events, and all&amp;#160; Disk events. &lt;/p&gt;

&lt;h3&gt;&lt;font face="Segoe UI"&gt;Sample Outputs:&lt;/font&gt;&amp;#160;&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;h4&gt;&lt;font face="Segoe UI"&gt;NTFS Events:&lt;/font&gt;&lt;/h4&gt;

  &lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(143, 176, 140);"&gt;TimeCreated           ProviderName  Id Message
-----------           ------------  -- -------
6/10/2011 5:19:42 AM  Ntfs          57 The system failed to flush data to the transaction log. Corruption may occur.
6/10/2011 5:19:42 AM  Ntfs          57 The system failed to flush data to the transaction log. Corruption may occur.
6/10/2011 5:19:42 AM  Ntfs          57 The system failed to flush data to the transaction log. Corruption may occur.
6/10/2011 5:19:41 AM  Ntfs          57 The system failed to flush data to the transaction log. Corruption may occur.&lt;/font&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;font style="background-color: rgb(143, 176, 140);"&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;h4&gt;&lt;font face="Segoe UI"&gt;Volsnap Events:&lt;/font&gt;&lt;/h4&gt;

  &lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(143, 176, 140);"&gt;TimeCreated           ProviderName Id Message
-----------           ------------ -- -------
8/11/2011 7:42:50 AM  volsnap      36 The shadow copies of volume F: were aborted because the shadow copy storage  …&lt;br /&gt;8/11/2011 7:40:21 AM  volsnap      33 The oldest shadow copy of volume F: was deleted to keep disk space usage &lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;for&lt;/font&gt;&lt;/span&gt; …
8/11/2011 7:39:40 AM  volsnap      33 The oldest shadow copy of volume F: was deleted to keep disk space usage &lt;font color="#000000"&gt;&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;for&lt;/font&gt;&lt;/span&gt; &lt;/font&gt;…&lt;/font&gt;&amp;#160;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;h4&gt;&lt;font face="Segoe UI"&gt;Disk Events:&lt;/font&gt;&lt;/h4&gt;

  &lt;pre class="csharpcode"&gt;&lt;font style="background-color: rgb(143, 176, 140);"&gt;TimeCreated          ProviderName Id Message
-----------          ------------ -- -------
8/1/2011 9:18:45 PM  Disk         11 The driver detected a controller error on \Device\Harddisk3\DR3.                
7/4/2011 6:55:49 PM  Disk         11 The driver detected a controller error on \Device\Harddisk2\DR2.                
7/4/2011 6:55:49 PM  Disk         11 The driver detected a controller error on \Device\Harddisk2\DR2.                
7/4/2011 6:55:48 PM  Disk         11 The driver detected a controller error on \Device\Harddisk2\DR2.                
7/4/2011 6:55:48 PM  Disk         11 The driver detected a controller error on \Device\Harddisk2\DR2.                
7/4/2011 6:55:47 PM  Disk         11 The driver detected a controller error on \Device\Harddisk2\DR2.                
7/3/2011 10:44:49 AM Disk         51 An error was detected on device \Device\Harddisk3\DR3 during a paging operation.
7/3/2011 10:44:45 AM Disk         51 An error was detected on device \Device\Harddisk3\DR3 during a paging operation.
7/3/2011 10:44:45 AM Disk         51 An error was detected on device \Device\Harddisk3\DR3 during a paging operation.
7/3/2011 10:44:45 AM Disk         51 An error was detected on device \Device\Harddisk3\DR3 during a paging operation.&lt;/font&gt;&lt;/pre&gt;

  &lt;p&gt;&lt;font face="Segoe UI"&gt;As can be seen in the combined sample, you can essentially query for any event source simply by modifying the &lt;/font&gt;&lt;font face="Segoe UI"&gt;provider name below by using the “Source” name in the event log you wish.&lt;/font&gt;&lt;/p&gt;

  &lt;h3&gt;&lt;font size="3" face="Segoe UI"&gt;&lt;/font&gt;&lt;/h3&gt;

  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Additional Eventlog sources of interest:&lt;/font&gt;&lt;/h3&gt;

  &lt;p&gt;&lt;font size="3" face="Segoe UI"&gt;Note: This section is not intended to be an exhaustive list, which I will add to as time allows.&lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&lt;font size="3" face="Segoe UI"&gt;For users of the &lt;strong&gt;iSCSI Initiator&lt;/strong&gt;, the following events sources are interesting:&lt;/font&gt;&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;iSCSI&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;iSCSIPrt&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;MSiSCSI&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;For users of &lt;strong&gt;MPIO&lt;/strong&gt;:&lt;/font&gt;&lt;/pre&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;MPIO&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;MSDSM&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;Other Storage events of interest:&lt;/font&gt;&lt;/pre&gt;

  &lt;ul&gt;
    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;Partition Manager (partmgr)&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;Volume Manager (volmgr)&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;

    &lt;li&gt;
      &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;ClassPNP&lt;/font&gt;&lt;/pre&gt;
    &lt;/li&gt;
  &lt;/ul&gt;

  &lt;pre class="csharpcode"&gt;&lt;font size="3" face="Segoe UI"&gt;&lt;/font&gt;&lt;/pre&gt;

  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Making the information returned more usable:&lt;/font&gt;&lt;/h3&gt;

  &lt;p&gt;&lt;font face="Segoe UI"&gt;A great alternative to viewing these in the PowerShell console is to open them in GridView. &lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&lt;font face="Segoe UI"&gt;For example, to get a list of hotfixes in GridView, we’d type the following:&lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&lt;font style="background-color: rgb(165, 165, 165);" face="Consolas"&gt;(Get-HotFix | Out-GridView)&lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&lt;font face="Segoe UI"&gt;Which yields a tabular GUI, which supports search criteria and sorting of data.&lt;/font&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;font face="Segoe UI"&gt;Example of Gridview output: &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;em&gt;&lt;font size="2" face="Segoe UI"&gt;Note I’ve selected only specific properties for the example&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/5658.image_5F00_78611E97.png"&gt;&lt;img style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-08-47-metablogapi/1537.image_5F00_thumb_5F00_50BAA26D.png" width="492" height="601" /&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;h3&gt;&amp;#160;&lt;/h3&gt;

  &lt;p&gt;To download a copy of this example, please see my posting in the script center here:&lt;/p&gt;

  &lt;p&gt;&lt;a title="http://gallery.technet.microsoft.com/Collect-System-Events-5c0fbe7f" href="http://gallery.technet.microsoft.com/Collect-System-Events-5c0fbe7f"&gt;http://gallery.technet.microsoft.com/Collect-System-Events-5c0fbe7f&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;

  &lt;h3&gt;&lt;font face="Segoe UI"&gt;Combined PowerShell Sample:&lt;/font&gt;&lt;/h3&gt;

  &lt;div class="csharpcode"&gt;
    &lt;p&gt;&lt;font face="Segoe UI"&gt;&lt;/font&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;##############################################################################
  &lt;br /&gt;# Created by:&amp;#160;&amp;#160; Bruce Langworthy

  &lt;br /&gt;# Organization: Microsoft Corporation

  &lt;br /&gt;# Sample Name: StorageEvents.ps1&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;##############################################################################

  &lt;br /&gt;# Note: This is intended primarily&amp;#160; as an example of how to collect specific

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; event types, as it will typically return too many events to be easily

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; usable at the PowerShell prompt.

  &lt;br /&gt;#

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I would suggest combining them either with Out-Gridview, or Out-File.

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; For example,

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog | Where-object {$_.ProviderName -eq &amp;quot;NTFS&amp;quot;} | Out-Gridview

  &lt;br /&gt;#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog | Where-object {$_.ProviderName -eq &amp;quot;NTFS&amp;quot;} | Out-File

  &lt;br /&gt;#

  &lt;br /&gt;##############################################################################&lt;/p&gt;

&lt;p&gt;
  &lt;br /&gt;# Get the list of installed hotfixes, and sort them my descending installation date&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (Get-HotFix | Select HotfixID, Description, InstalledBy, InstalledOn | 

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sort-Object -Property InstalledOn -Descending)

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;# Store system log, because this query is horribly time consuming

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog = (Get-WinEvent -LogName System)&lt;/p&gt;

&lt;p&gt;# Obtain and display NTFS Events.
  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog | Where-object {$_.ProviderName -eq &amp;quot;NTFS&amp;quot;}

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;# Obtain and display Volsnap events

  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog | Where-object {$_.ProviderName -eq &amp;quot;Volsnap&amp;quot;}&lt;/p&gt;

&lt;p&gt;# Obtain and display Disk Events&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; $TempSystemLog | Where-object {$_.ProviderName -eq &amp;quot;Disk&amp;quot;}&lt;/p&gt;

&lt;blockquote&gt;
  &lt;div class="csharpcode"&gt;&lt;/div&gt;

  &lt;p class="csharpcode"&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;

  &lt;div class="csharpcode"&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10195199" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/san/archive/tags/_4000_BruceLangworthy/">@BruceLangworthy</category><category domain="http://blogs.msdn.com/b/san/archive/tags/NTFS/">NTFS</category><category domain="http://blogs.msdn.com/b/san/archive/tags/TroubleShooting/">TroubleShooting</category><category domain="http://blogs.msdn.com/b/san/archive/tags/PowerShell/">PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Volsnap/">Volsnap</category><category domain="http://blogs.msdn.com/b/san/archive/tags/Disk/">Disk</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PowerShell/">#PowerShell</category><category domain="http://blogs.msdn.com/b/san/archive/tags/_2300_PrimalForms/">#PrimalForms</category></item></channel></rss>