Sample PowerShell scripts to for networking and storage in SCVMM 2012

Sample PowerShell scripts to for networking and storage in SCVMM 2012

  • Comments 5
  • Likes

scriptHi, I am Nitin Bhat, Program Manager on the SCVMM team. Today I am going to provide you with sample PowerShell scripts to leverage our investments made for networking and storage. These scripts would execute against the SCVMM 2012 Beta builds.

The best part about exposing the fabric information is the level of granularity and extensibility points.

For example in the networking scripts mentioned below, you can drill down from a logical network to all the way an IP Pool entity, MAC Pools, load balancers etc. From a storage perspective in the scripts for storage section, you can drill down from a Virtual machine to a Logical Unit level and then to a storage provider level.

Hope you find these scripts useful.

Scripts for networking

#Connect to SCVMM Server
get-vmmserver localhost | fl Name, Port, IsConnected, FQDN, DatabaseServerName, DatabaseName

#Get all logical networks for the SCVMM server
get-SClogicalNetwork

#Get logical networks existing where the name of the logical network is “backend”
($logicalnetwork= get-SClogicalNetwork | where {$_.Name -eq "backend"}) | fl Name, Description,ServerConnection

#Get logical network definitions existing for this specific logical network “backend”
($logicalnetworkdefinition = get-sclogicalnetworkdefinition | where {$_.LogicalNetwork -eq $logicalnetwork}) | fl Name, HostGroups, SubnetVLans

#Get all IP Pools
get-scstaticipaddresspool | fl Name, IPAddressRangeStart, IPAddressRangeEnd, AvailableAddresses, DNSSuffix, Subnet, TotalAddresses, DNSServers,Logicalnetworkdefinition

#Get all IP Pools existing for a specific logical network definition $logicalnetworkdefinition
(get-scstaticipaddresspool | where {$_.LogicalNetworkDefinition -eq $logicalnetworkdefinition}) | fl Name, IPAddressRangeStart, IPAddressRangeEnd, AvailableAddresses, DNSSuffix, Subnet, otalAddresses, DNSServers, Logicalnetworkdefinition

#Get MAC Pools existing
get-scmacaddresspool | fl Name, Description, MACAddressRangeStart, MACAddressRangeEnd, AvailableAddresses, TotalAddresses, SupportedVirtualizationPlatforms

#Get Load Balancer Information
get-SCLoadBalancer | ft Manufacturer, Model, IPAddress, AvailableProtocols,AvailableLoadBalancingMethods

#Get VIP Templates (Virtual IP templates)
get-scloadbalancerVIP | ft Name, Address, LoadBalancer,LoadBalancingMethod

Scripts for storage

#Connect to SCVMM Server
get-vmmserver localhost | fl Name, Port, IsConnected, FQDN, DatabaseServerName, DatabaseName

#Get virtual machine present on SAN where name of the VM is demo22
($vm = Get-SCVirtualMachine | where {$_.Name -eq "demo22"}) | fl Name, Location, VirtualMachineState, VirtualDiskDrives, VMHost

#Virtual machine to disk drives
$vm.VirtualDiskDrives | fl VirtualHardDisk, BusType, Bus, LUN, ObjectType

#Virtual disk drive to virtual hard disk
$vm.VirtualDiskDrives[0].VirtualHardDisk | fl Location, HostVolume, VMHost

#Virtual hard disk to Host Volume
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume | fl MountPoints, HostDisk, VMHost

#Host Volume to Host Disk
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume.HostDisk | fl DeviceID, UniqueID, SMLunId, StorageLogicalUnit, VMHost

#Host Disk to Storage Logical Unit
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume.HostDisk.StorageLogicalUnit | fl Name, CopyType, SourceLogicalUnit, StoragePool

#Storage logical unit to Storage Pool
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume.HostDisk.StorageLogicalUnit.StoragePool | fl Name, RemainingManagedSpace, TotalManagedSpace, StorageArray

#Storage Pool to Storage Array
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume.HostDisk.StorageLogicalUnit.StoragePool.StorageArray | fl Name, TotalCapacity, RemainingCapacity, IsCloneCapable, IsSnapshotCapable, StorageProvider

#Storage Array to Storage Provider
$vm.VirtualDiskDrives[0].VirtualHardDisk.HostVolume.HostDisk.StorageLogicalUnit.StoragePool.StorageArray.StorageProvider | fl Name, NetworkAddress, TCPPort, StorageArrays

Nitin Bhat

The App-V Team blog: http://blogs.technet.com/appv/
The WSUS Support Team blog: http://blogs.technet.com/sus/
The SCMDM Support Team blog: http://blogs.technet.com/mdm/
The ConfigMgr Support Team blog: http://blogs.technet.com/configurationmgr/
The SCOM 2007 Support Team blog: http://blogs.technet.com/operationsmgr/
The SCVMM Team blog: http://blogs.technet.com/scvmm/
The MED-V Team blog: http://blogs.technet.com/medv/
The DPM Team blog: http://blogs.technet.com/dpm/
The OOB Support Team blog: http://blogs.technet.com/oob/
The Opalis Team blog: http://blogs.technet.com/opalis
The Service Manager Team blog: http: http://blogs.technet.com/b/servicemanager
The AVIcode Team blog: http: http://blogs.technet.com/b/avicode
The System Center Essentials Team blog: http: http://blogs.technet.com/b/systemcenteressentials
The Server App-V Team blog: http: http://blogs.technet.com/b/serverappv

clip_image001 clip_image002

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Thanks for the Post,

    similarly is there a script to report the VM Guest tools version?

    and an option to upgrade the VM guest tools from SCVMM?

  • What kind of VM guest tools are you looking for?

  • Nice Script dude... but i use only the old cmdlets ... the alias for the new one for example u use "get-vmmserver" and it is just the alias for "Get-SCVMMServer" but the script is still great

  • "Nice Script dude... but i use only the old cmdlets"   *you

  • It would be great if there is a script that can export and import logical- and VM networks between VMM instances. This would make a greenfield upgrade to R2 for example a smoother operation.

    Of course the same applies to SSU roles, profiles or logical switches.