{"id":2081,"date":"2013-07-31T00:30:00","date_gmt":"2013-07-31T00:30:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/2013\/07\/31\/dal-in-action-introducing-pcsv-cmdlets-for-out-of-band-management-of-server-hardware\/"},"modified":"2019-02-18T13:05:31","modified_gmt":"2019-02-18T20:05:31","slug":"dal-in-action-introducing-pcsv-cmdlets-for-out-of-band-management-of-server-hardware","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/dal-in-action-introducing-pcsv-cmdlets-for-out-of-band-management-of-server-hardware\/","title":{"rendered":"DAL in Action: Introducing PCSV Cmdlets for Out-of-Band Management of Server Hardware"},"content":{"rendered":"<p class=\"Publishwithline\"><em><span style=\"font-size: small\">This post is a part of the nine-part &ldquo;<\/span><\/em><a href=\"http:\/\/blogs.technet.com\/b\/in_the_cloud\/archive\/tags\/what_2700_s+new+in+2012+r2\/\"><em><span style=\"color: #0563c1;font-size: small\">What&rsquo;s New in Windows Server &amp; System Center 2012 R2<\/span><\/em><\/a><em><span style=\"font-size: small\">&rdquo; series that is featured on Brad Anderson&rsquo;s <\/span><\/em><a href=\"http:\/\/blogs.technet.com\/b\/in_the_cloud\/\"><strong><em><span style=\"color: #0563c1;font-size: small\">In the Cloud<\/span><\/em><\/strong><\/a><em><span style=\"font-size: small\"> blog.&nbsp; Today&rsquo;s blog post covers Out-Of-Band hardware management using new PCSVDevice cmdlets and how it applies to the larger topic of &ldquo;Transform the Datacenter.&rdquo;&nbsp; To read that post and see the other technologies discussed, read today&rsquo;s post: &ldquo;<\/span><\/em><a href=\"http:\/\/blogs.technet.com\/b\/in_the_cloud\/archive\/2013\/07\/31\/what-s-new-in-2012-r2-iaas-innovations.aspx\"><em><span style=\"color: #0563c1;font-size: small\">What&rsquo;s New in 2012 R2: IaaS Innovations<\/span><\/em><\/a><em><span style=\"font-size: small\">.&rdquo;<\/span><\/em><\/p>\n<p><span style=\"font-family: Calibri;font-size: small\">Windows Server is built from Cloud up to make it best Cloud OS. We believe that the issues running Clouds and the large datacenters running cloud workloads are classic OS issues. Our vision of datacenter management is built around concept of &ldquo;Datacenter Abstraction Layer (DAL)&rdquo; &ndash; which enables datacenter plug-n-play experience using industry standards. This vision is outlined <\/span><a href=\"http:\/\/technet.microsoft.com\/en-us\/cloud\/dal.aspx\"><span style=\"color: #0563c1;font-family: Calibri;font-size: small\">here<\/span><\/a><span style=\"font-family: Calibri;font-size: small\"> A critical aspect of building and scaling cloud infrastructure is Out-of-band management of server hardware through Baseboard management controllers (BMC).&nbsp; This is not a new concept; Out-of-band management of server hardware through BMC has been in existence for about 15 years now. In fact, last year we published &ldquo;<\/span><a href=\"http:\/\/gallery.technet.microsoft.com\/scriptcenter\/PowerShell-Out-of-Band-84009c12\"><span style=\"color: #0563c1;font-family: Calibri;font-size: small\">Out of band hardware management<\/span><\/a><span style=\"font-size: small\"><span style=\"font-family: Calibri\">&rdquo; PowerShell module at TechNet Script Center to enable management of server hardware using DMTF WS-Man standard (CIM Cmdlets). SCVMM 2012 also has support for out of band management. In WS 2012 R2, we take this a step forward to make this functionality available in box through an easy to use task abstraction so that users can include these functions in their scripting solutions.<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">As we planned Windows Server 2012 R2, we talked to datacenter operations teams and asked where they spend their manual effort in datacenter management. Almost everyone agreed that it goes into configuring networks and provisioning server hardware. In this blog post we will cover server hardware management. Network configuration will be covered in a separate blog. <\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We started with three simple objectives for WS 2012 R2 release:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Simple task oriented abstraction for common server hardware management tasks<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Support industry management standards<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Provide common abstraction to hide underlying complexities of protocols<\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We found that most of the server hardware in datacenters was capable of remote management through industry standards like IPMI\/RMCP+ and CIM\/WS-MAN. However, to our surprise, datacenters were relying on a set of fixed functions provided by vendor proprietary tools instead of building custom automation on standards that work across vendors. Reason was simple: the standards we mentioned are great but are seen as complex by the folks we talked to. There was a need to provide simple &lsquo;task-oriented-abstraction&rsquo; for managing the server hardware. It was also clear that we need to support both IPMI\/RMCP and CIM\/WS-Man and provide a common abstraction that hides the perceived underlying complexities. <\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We identified tasks that are performed most often in managing compute nodes in datacenters. <\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Collect hardware inventory<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Get available boot sources<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Set boot order (one time)<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Get power state<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Turn the machine ON\/OFF<\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We went into the workshop and came back with a PowerShell module and WMI a provider which achieves the goals outlined above. Building cmdlets on top on WMI gives great flexibility in building datacenter automation. We will talk about PowerShell cmdlets in this blog post.&nbsp;<\/span><\/span>&nbsp;<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"779\">\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; Get-Command -Module PcsvDevice&nbsp;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">CommandType&nbsp;&nbsp;&nbsp;&nbsp; Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ModuleName<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">&#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;-<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Get-PcsvDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Restart-PcsvDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set-PcsvDeviceBootConfiguration&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start-PcsvDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Stop-PcsvDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PcsvDevice<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-family: Calibri;font-size: small\">Let&#8217;s talk for a minute about the name PCSV and why we chose it. PCSV stands for &ldquo;Physical Computer System View&rdquo;. It is a new DMTF profile in the final approval process &lt;<\/span><a href=\"http:\/\/www.dmtf.org\/sites\/default\/files\/standards\/documents\/DSP1108_1%200%200i.pdf\"><span style=\"color: #0563c1;font-family: Calibri;font-size: small\">link<\/span><\/a><span style=\"font-size: small\"><span style=\"font-family: Calibri\">&gt;. Goal of this new profile it to hardware management easier and simpler. To be precise &ndash; instead of getting lost in sea of profiles and classes that come with existing DMTF initiatives like SMASH\/DASH, new PCSV profile gives a simple view to the client saving roundtrips and complex client side coding. We love the simplification that PCSV provides and decided to base our new cmdlets on it. <\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We choose to implement these cmdlets&nbsp; as a WMI provider which acts as a PCSV proxy for remote machines.&nbsp; Those remote machines can implement PCSV, SMASH, or IPMI &ndash; our provider makes them all appear as though they implement PCSV.&nbsp; This provides customers a simple uniform abstraction to manage.<\/span><\/span><\/p>\n<p>&nbsp;<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/30\/2018\/10\/0247.BMC.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/30\/2018\/10\/0247.BMC.png\" alt=\"\" width=\"344\" height=\"220\" border=\"0\" \/><\/a><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">When learning about any new cmdlet, Get-Command is your friend. Let&#8217;s use it to see how the Get-PcsvDevice cmdlet looks like:<\/span><\/span><\/p>\n<table style=\"width: 885px\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"885\">\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; Get-Command -Syntax Get-PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">Get-PcsvDevice [-TargetComputerName] &lt;string&gt; [-Credential] &lt;pscredential&gt; [-ManagementProtocol] &lt;ManagementProtocol&gt; <\/span><span style=\"font-family: terminal,monaco\">[[-Port] &lt;uint16&gt;] [-Authentication &lt;Authentication&gt;] [-UseSSL] [-SkipCACheck] [-SkipCNCheck] [-SkipRevocationCheck] <\/span><span style=\"font-family: terminal,monaco\">[-TimeoutSec &lt;uint32&gt;] [-CimSession &lt;CimSession[]&gt;] [-ThrottleLimit &lt;int&gt;] [-AsJob] [&lt;CommonParameters&gt;]<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;Get-Command<\/span><span style=\"font-size: small\"><span style=\"font-family: Calibri\">t tells us that we need to know the following:<\/span><\/span><\/p>\n<ul>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Name or address on the target computer which has the BMC<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Credentials<\/span><\/span><\/li>\n<li><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The management protocol to use (e.g. WSMAN OR IPMI)<\/span><\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: Calibri;font-size: small\">If your BMC is using standard ports (623 for IPMI and WSMAN HTTP, 664 for WSMAN HTTPS) you don&rsquo;t need to specify it; otherwise you also need to specify <\/span>the port.<\/p>\n<table style=\"width: 930px\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"930\">\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; $cred = Get-Credential root<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; $ip = &#8220;10.10.1.10&#8221;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; Get-PcsvDevice -TargetComputerName $ip -ManagementProtocol IPMI -Credential $cred<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">TargetComputerName&nbsp;&nbsp;Manufacturer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerialNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnabledState<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">10.10.1.10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PowerEdge R720&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CN7123456700EH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disabled<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">&nbsp;Similarly if we were using WSMAN protocol, the experience will look similar:<\/span><\/span><\/p>\n<table style=\"width: 930px\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"930\">\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; $cred = Get-Credential admin<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; $ip = &#8220;10.10.1.20&#8221;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">PS C:\\&gt; Get-PcsvDevice -TargetComputerName $ip -ManagementProtocol WSMan -Credential $cred<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">TargetComputerName&nbsp;&nbsp;&nbsp;&nbsp;Manufacturer&nbsp;&nbsp;&nbsp;Model&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SerialNumber&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnabledState<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8211;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8212;&#8212;&#8212;&#8212;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">10.10.1.20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hewlett-Packard&nbsp;HP Compaq 6005 Pro SFF&nbsp; MXL2081VWT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Enabled<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">The cool thing here is that the cmdlet figures out the profiles supported by the device (whether it is supporting PCSV, SMASH or DASH).<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Let&#8217;s talk about other operations &ndash; namely start\/stop\/restart and setting one time boot configuration.<\/span><\/span><\/p>\n<table style=\"width: 865px\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"865\">\n<p><span style=\"font-family: terminal,monaco\">$a = Get-PcsvDevice -TargetComputerName $ip -ManagementProtocol IPMI -Credential $cred<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">&nbsp;# Switch ON the machine<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">$a | Start-PcsvDevice<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Lets switch the machine OFF<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Note that the cmdlet prompts by default &#8211; because switching OFF<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># a machine can potentially result in data loss<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">$a | Stop-PcsvDevice<\/span><\/p>\n<p>&nbsp;<span style=\"font-family: terminal,monaco\"># Common automation scenario &#8211; set the machine to boot from network and restart the machine.<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Assumption : You have your WDS deployment server setup to serve image (not covered<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># in this script)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Let&rsquo;s see how to do it using PCSV cmdlets in a pipeline<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Step 1 &#8211; set the machine to boot from network , but just for the next boot<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\"># Step2 &#8211; Reboot the machine<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">$bmc = Get-PcsvDevice -TargetComputerName $ip -ManagementProtocol IPMI -Credential $cred&nbsp;<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco\">$bmc |&nbsp;<\/span><span style=\"font-family: terminal,monaco\">Set-PcsvDeviceBootConfiguration -OneTimeBootSource &#8220;CIM:Network:1&#8221; -PassThru | Restart-PcsvDevice<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">To make sure these cmdlets actually work with BMC implementations from major vendors &ndash; we are working on interop testing with our partners. We also plan to participate in industry plugfests to ensure interoperability. <\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">We see the cmdlets in Server 2012 R2 as the first step in enabling out-of-band server management from Windows.&nbsp; There is long way to go and we happy that we are starting with a solid foundation. We would love to hear from you what other aspects of out-of-band management we should consider. Our goal is to make server hardware management so easy that everyone can do it.<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Thanks<\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Osama Sajid, representing&nbsp; <\/span><\/span><\/p>\n<p><span style=\"font-size: small\"><span style=\"font-family: Calibri\">Standards Based Management team in Windows Server<\/span><\/span><\/p>\n<p><em><span style=\"font-family: Calibri;font-size: small\">To see all of the posts in this series, check out the <\/span><\/em><a href=\"http:\/\/blogs.technet.com\/b\/in_the_cloud\/archive\/tags\/what_2700_s+new+in+2012+r2\/\"><em><span style=\"color: #0563c1;font-family: Calibri;font-size: small\">What&rsquo;s New in Windows Server &amp; System Center 2012 R2<\/span><\/em><\/a><em><span style=\"font-size: small\"><span style=\"font-family: Calibri\"> archive.<\/span><\/span><\/em><\/p>\n<p><span style=\"font-family: Calibri;font-size: small\">&nbsp;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post is a part of the nine-part &ldquo;What&rsquo;s New in Windows Server &amp; System Center 2012 R2&rdquo; series that is featured on Brad Anderson&rsquo;s In the Cloud blog.&nbsp; Today&rsquo;s blog post covers Out-Of-Band hardware management using new PCSVDevice cmdlets and how it applies to the larger topic of &ldquo;Transform the Datacenter.&rdquo;&nbsp; To read that [&hellip;]<\/p>\n","protected":false},"author":600,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[111,139,146,193,204,233,238,316],"class_list":["post-2081","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-bmc","tag-dash","tag-dmtf","tag-hardware-management","tag-ipmi","tag-out-of-band-management","tag-pcsv-cmdlets","tag-smash"],"acf":[],"blog_post_summary":"<p>This post is a part of the nine-part &ldquo;What&rsquo;s New in Windows Server &amp; System Center 2012 R2&rdquo; series that is featured on Brad Anderson&rsquo;s In the Cloud blog.&nbsp; Today&rsquo;s blog post covers Out-Of-Band hardware management using new PCSVDevice cmdlets and how it applies to the larger topic of &ldquo;Transform the Datacenter.&rdquo;&nbsp; To read that [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2081","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=2081"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2081\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=2081"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=2081"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=2081"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}