Advertisement
Guest User

Azure VM PowerShell audit VHD disk information

a guest
Jun 23rd, 2015
871
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $vms = Get-AzureVM -ServiceName mycloudservicenamehere
  2. foreach($vm in $vms) {
  3.  
  4.     #get-azurevm
  5.     $obj1 = $vm | Select-Object Name,InstanceSize,AvailabilitySetName,DNSName,deploymentname
  6.     #get VM Data disk, rename same properties to prevent output conflicts
  7.     $obj2 = $vm | Get-AzureDataDisk | Select-Object @{Name='DataDiskName'; Expression={$_.DiskName}},@{Name='DataDiskLabel'; Expression={$_.DiskLabel}},@{Name='DataMediaLink'; Expression={$_.MediaLink}},@{Name='DataDiskSizeGB'; Expression={$_.LogicalDiskSizeInGB}},@{Name='DataLUN'; Expression={$_.Lun}}
  8.     #same as above VM data disk, but with OS disk
  9.     $obj3 = $vm | Get-AzureOSDisk | Select-Object  @{Name='OSDiskName'; Expression={$_.DiskName}},@{Name='OSMediaLink'; Expression={$_.MediaLink}},@{Name='OSDiskLabel'; Expression={$_.DiskLabel}}, OS
  10.    
  11.     #combine these outputs into a single row CSV per VM
  12.     $combined = New-Object -TypeName PSObject
  13.     $obj1,$obj2,$obj3|%{
  14.         $CurObj = $_;
  15.         $_|gm|?{$_.MemberType -match "NoteProperty"}|%{
  16.             $NewMember = $_.Name;
  17.             $Combined|Add-Member -MemberType NoteProperty -Name $NewMember -Value $CurObj.$NewMember
  18.  
  19.  
  20.         }
  21.     }
  22.     #write each VM output to CSV
  23.     $Combined|Export-CSV -Path c:\Users\administrator\Desktop\output.csv -NoTypeInfo -Append -Force
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement