{"id":2091,"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-managing-network-switches-using-powershell-and-cim\/"},"modified":"2024-02-23T14:34:41","modified_gmt":"2024-02-23T22:34:41","slug":"dal-in-action-managing-network-switches-using-powershell-and-cim","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/dal-in-action-managing-network-switches-using-powershell-and-cim\/","title":{"rendered":"DAL in action: Managing Network switches using PowerShell and CIM"},"content":{"rendered":"<p><em><span style=\"font-size: small;\">This post is a part of the nine-part \u201c<\/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\u2019s New in Windows Server &amp; System Center 2012 R2<\/span><\/em><\/a><em><span style=\"font-size: small;\">\u201d series that is featured on Brad Anderson\u2019s <\/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.\u00a0 Today\u2019s blog post covers management of network switches using CIM and WS-Man standards and how it applies to the larger topic of \u201cTransform the Datacenter.\u201d\u00a0 To read that post and see the other technologies discussed, read today\u2019s post: \u201c<\/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\u2019s New in 2012 R2: IaaS Innovations<\/span><\/em><\/a><em><span style=\"font-size: small;\">.\u201d<\/span><\/em><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">We described the role Cloud OS plays is managing the datacenter and the role the Datacenter Abstraction Layer (DAL) vision plays in enabling this on the DAL website <\/span><a href=\"http:\/\/technet.microsoft.com\/en-us\/cloud\/dal.aspx\"><span style=\"color: #0563c1; font-family: Calibri; font-size: small;\">link<\/span><\/a><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">. Of all the managed datacenter elements, nothing is getting more focus than \u201cNetwork\u201d. This is very expected. As we say \u201cDifference between Networking and Not-Working\u201d can be huge. It leads to loss of revenue, reduced uptime and frustrated customers. To address this humongous challenge, the industry has come up various open and proprietary solutions. We found that almost all of these solutions require the network switch vendors to write a custom piece of software to \u201cplug-in\u201d to their management framework. <\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">We <strong>disagree<\/strong> with this approach. We think device vendors should invest their energy in making their product better \u2013 not in creating a plethora of plug-ins that require constant change. In the world view advocated by DAL, network switch vendors implement an industry standard protocol and schema, and it is up to various Software Defined Networking (SDN) solutions to update their own software to talk to standard enabled switches.<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><strong>Imagine<\/strong> a world where OSes (like Windows Server) or Fabric Controllers like System Center Virtual Machine Manager (SCVMM) are able to manage network devices right-out-of box using CIM \/WSMAN standards \u2013 without requiring third party plugins or agents. <\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><strong>Imagine<\/strong> configuring switches from different switch vendors in a simple consistent way.<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><strong>Imagine<\/strong> if there was a way to \u201cdiscover\u201d vendor value adds and use them without having to learn proprietary CLI commands.<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">This is what standards based management brings to the complex world of software defined networking.<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">When we started working on this compelling vision, we identified one challenge. Network vendors we talked to responded in one voice \u201cWe are not experts in writing CIM\/WS-Man engine \u2013 it\u2019s easier for me to write plugins than implement a full CIM server and WS-MAN protocol on my device\u201d.\u00a0 Well, we solved that problem a year ago by releasing Open Management Infrastructure (OMI) to Open Source community under Apache 2.0 license. The ball started to roll.<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">To give a very high level view, currently CIM schema for network switch management covers the following functionality. <\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Switch global settings <\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Ethernet port and Vlan configuration (L2)<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Switch Virtual Interface (SVI), IP address (L3)<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Routing and BGP<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Users, Roles and ACLs <\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">AAA configuration<\/span><\/span><\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">&#8211;<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">SNMP settings<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">To ensure interoperability and consistency between schema implementation by different vendors, we created a Logo certification for CIM-enabled Switches. Currently logo tests require only the L2 level functionality, the bare minimum required for SCVMM 2012 R2 integration. <\/span><\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/07\/6646.Switch.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-20372\" src=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/07\/6646.Switch.png\" alt=\"Image 6646 Switch\" width=\"439\" height=\"207\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/07\/6646.Switch.png 439w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2013\/07\/6646.Switch-300x141.png 300w\" sizes=\"(max-width: 439px) 100vw, 439px\" \/><\/a><\/p>\n<p><span style=\"font-family: Calibri;\"><span style=\"font-size: small;\">We are also glad to let you know that\u00a0 Arista announced CIM\/WS-Man support in their entire product range with release of Windows Server 2012 R2 Preview. With this brief overview \u2013 we switch to demo mode, showing this vision in action using an OMI enabled Arista switch.<\/span><\/span><\/p>\n<p><span style=\"font-size: medium;\"><span style=\"color: #2e74b5;\"><span style=\"font-family: Calibri Light;\">Switch Configuration using PowerShell<\/span><\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">Windows PowerShell (PS) 3.0 shipped with CIM Cmdlets \u2013 that allow Windows to manage any standard CIM\/WSMAN server. We will use these cmdlets to configure an Arista switch. You can read about CIM Cmdlets in this <\/span><a href=\"http:\/\/blogs.msdn.com\/b\/powershell\/archive\/2012\/08\/24\/introduction-to-cim-cmdlets.aspx\"><span style=\"color: #0563c1; font-family: Calibri; font-size: small;\">blog post<\/span><\/a><span style=\"font-family: Calibri; font-size: small;\">. Detailed help documentation is <\/span><a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/jj553783.aspx\"><span style=\"color: #0563c1; font-family: Calibri; font-size: small;\">here<\/span><\/a><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">. <\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"779\"><span style=\"font-family: terminal,monaco;\">## Connect to Management Port on the switch. Use SSL to connect<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ip = \u201c10.10.1.1\u201d<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$Cred\u00a0 = Get-Credential admin #username and password to connect to the switch.<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$so = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck \u2013SkipRevocationCheck<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$s\u00a0\u00a0 = New-CimSession -CN $ip -Auth Basic -Credential $Cred -SessionOption $so <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Get-CimInstance CIM_ComputerSystem -CimSession $s<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">\u00a0# Get list of ports<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Get-CimInstance CIM_EthernetPort -CimSession $s | \u00a0Select ElementName, Speed,MaxSpeed<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">One very common questions that comes up from device vendors is \u2013 Would implementing standards mean every switch will become same? What about value adds that differentiate vendor offerings? <\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Answer is: Implementing CIM standard does not result in loss of value-adds. In fact, customers will find it easier to discover and use these custom settings. Device vendors can derive their class from standard CIM class and add properties or methods to expose the value-added functionality.<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"779\"><span style=\"font-family: terminal,monaco;\">### Vendor Value Adds &#8211; PowerShell also enables you to inspect class schema \u2013 <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">### (OMI implements GetClass standard operation)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\"># You can discover any vendor extensions &#8211; custom properties and methods to CIM derived classes<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\"><span style=\"font-family: terminal,monaco;\">$ports=Get-CimInstance CIM_EthernetPort -CimSession $s<\/span><\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ports[0].PSTypeNames<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ports[0].CimClass<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ports[0].CimClass.CimClassMethods<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ports[0].CimClass.CimClassProperties | Select Name, Cimtype<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">With this introduction \u2013 let\u2019s take some common switch configuration tasks and see how to do it using CIM. The script below shows how to do the following:<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">a.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Enable port<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">b.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Disable port<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">c.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Change port mode to trunk and set Vlans<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">d.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Change port mode to access and set native Vlan<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">e.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Enumerate Vlans<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">f.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Create Vlan<\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri; font-size: small;\">g.<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Delete vlan<\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<table style=\"width: 795px;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"795\"><span style=\"font-family: terminal,monaco;\">## Connect to Management Port on the switch. Use SSL to connect<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ip = \u201c10.10.1.1\u201d<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$Cred\u00a0 = Get-Credential admin<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$so = New-CimSessionOption -UseSsl -SkipCACheck -SkipCNCheck \u2013SkipRevocationCheck<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$s\u00a0\u00a0 = New-CimSession -CN $ip -Auth Basic -Credential $Cred -SessionOption $so <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">##Enumerate ports by getting all instances of CIM_EthernetPort<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$ports = Get-CimInstance\u00a0 CIM_EthernetPort -CimSession $s\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Enable Port &#8211; Invoke RequestStateChange method , passing RequestedState parameter as 2 (Enable)\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Invoke-CimMethod $ports[0]\u00a0 @{ RequestedState = 2 } RequestStateChange\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Disable Port \u2013 Invoke RequestStateChange method , passing RequestedState parameter = 3 (Disable)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Invoke-CimMethod $ports[0]\u00a0 @{ RequestedState = 3} RequestStateChange\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Change port mode to Trunk<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#get the settings for this port by going to associated instance of CIM_ EthernetPortAllocationSettingData<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$psd = Get-CimAssociatedInstance $ports[0] -ResultClassName Cim_EthernetPortAllocationSettingData<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Set the port mode to access by setting DesiredVLANEndpointMode to Trunk (5)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Set-CimInstance $psd -Property @{DesiredVLANEndpointMode = 5 } <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Now Set Allowed Vlans to 1,2 and 3<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Get to the Vlan settings for the ports through the association from Port&gt;LanEndpoint?VlanEndpoint&gt;SettingData<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$lanEndpoint\u00a0\u00a0= Get-CimAssociatedInstance $ports[0] -ResultClassName Cim_LanEndPoint<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$vlanEndpoint = Get-CimAssociatedInstance $lanEndpoint -ResultClassName Cim_VLanEndPoint<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$setting\u00a0\u00a0\u00a0\u00a0\u00a0 = Get-CimAssociatedInstance $vlanEndpoint -ResultClassName Cim_VLanEndPointSettingData<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Set-CimInstance $setting \u2013Property @{ TrunkedVLANList = @(1,2,3)}<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Change Port Mode to access<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Get settings for the port<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$psd = Get-CimAssociatedInstance $ports[0] -ResultClassName Cim_EthernetPortAllocationSettingData<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Call ModifyInstance , setting DesiredVLANEndpointMode to Access (2)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Set-CimInstance $psd -Property @{DesiredVLANEndpointMode = 2 }\u00a0 <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">\u00a0<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Enumerate Vlans<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$vlans =\u00a0 Get-CimInstance\u00a0 CIM_NetworkVlan -CimSession $s\u00a0\u00a0 <\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">\u00a0## Create Vlan \u2013 in the script below, we create two new vlans with id 4 and 5<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$svc\u00a0\u00a0\u00a0= Get-CimInstance MSFT_SwitchService -CimSession $s<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$cs\u00a0\u00a0\u00a0\u00a0= Get-CimInstance CIM_ComputerSystem\u00a0 -CimSession $s<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Create\u00a0 instances on MSFT_NetworkVlan class, these are in-memory objects on client side<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$v4 \u00a0= New-CimInstance -ClientOnly \u00a0MSFT_NetworkVLAN\u00a0 @{VLANId = [uint16]4} -Key @(&#8220;InstanceID&#8221;)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$v5 \u00a0= New-CimInstance -ClientOnly \u00a0MSFT_NetworkVLAN\u00a0 @{VLANId = [uint16]5} -Key @(&#8220;InstanceID&#8221;)<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Invokde AddVlan method on MSFT_SwitchService class, pass two vlan instances created above<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Invoke-CimMethod $svc[0]\u00a0 @{TargetedSwitch = $cs[0]; NetworkVLAN = [ciminstance[]]@($v4, $v5)} AddVLAN<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-family: terminal,monaco;\">## Remove Vlan<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$svc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0= Get-CimInstance MSFT_SwitchService\u00a0 -CimSession $s<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">$vlan\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 =\u00a0 Get-CimInstance\u00a0 MSFT_NetworkVlan -CimSession $s\u00a0\u00a0 | ? {$_.VLANId \u2013ieq 2}<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">#Invoke RemoveVlan method of MSFT_SwitchService class and pass the Vlan instance to be deleted<\/span><\/p>\n<p><span style=\"font-family: terminal,monaco;\">Invoke-CimMethod $svc[0]\u00a0 @{VLAN = [ciminstance[]]@($vlan)} RemoveVLAN<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">The script sample above shows how to do common switch configuration tasks using PowerShell. To ensure switches from different vendors can be managed in a consistent way, we also created a logo for CIM enabled Network Switches. All Windows Server logo certified switches will have consistent implementation of CIM schema ensuring that it will just work with SCVMM and Windows Server. <\/span><\/span><span style=\"font-family: Calibri; font-size: small;\">There is an important point to clarify here. DAL vision is to enable management of datacenter elements from both Windows and non-Windows. The Switch management tasks shown above in PS script can also be performed from a non-Windows client having CIM\/WS-Man client. <\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Our goal is to enable 100% of switch configuration using CIM and WS-Man. We are pleased with the uptick in the device vendors willing to implement CIM schema in devices. We hope that standard based management of network switches will take Software Defined Networking to levels never seen before.<\/span><\/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, on behalf of<\/span><\/span><\/p>\n<p><span style=\"font-size: small;\"><span style=\"font-family: Calibri;\">Standards Based Management team.<\/span><\/span><span style=\"font-family: Calibri; font-size: small;\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/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\u2019s 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>&nbsp;<\/p>\n<div><\/div>\n<p><span dir=\"ltr\"><span style=\"color: black; font-family: Calibri,Arial,Helvetica,sans-serif; font-size: small;\"><span style=\"font-size: 12pt;\"><span style=\"color: #282828;\"><span style=\"color: black; font-family: Calibri,Arial,Helvetica,sans-serif;\">\u00a0<\/span><\/span><\/span><\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This post is a part of the nine-part \u201cWhat\u2019s New in Windows Server &amp; System Center 2012 R2\u201d series that is featured on Brad Anderson\u2019s In the Cloud blog.\u00a0 Today\u2019s blog post covers management of network switches using CIM and WS-Man standards and how it applies to the larger topic of \u201cTransform the Datacenter.\u201d\u00a0 To [&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":[113,147,221],"class_list":["post-2091","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-cim-ws-man","tag-dmtf-network-switch-profile","tag-network-switch-automation"],"acf":[],"blog_post_summary":"<p>This post is a part of the nine-part \u201cWhat\u2019s New in Windows Server &amp; System Center 2012 R2\u201d series that is featured on Brad Anderson\u2019s In the Cloud blog.\u00a0 Today\u2019s blog post covers management of network switches using CIM and WS-Man standards and how it applies to the larger topic of \u201cTransform the Datacenter.\u201d\u00a0 To [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2091","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=2091"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/2091\/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=2091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=2091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=2091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}