91 lines
2.6 KiB
PowerShell
91 lines
2.6 KiB
PowerShell
$Subscriptions = Get-AzSubscription
|
|
|
|
$AzureVMs = [System.Collections.ArrayList]@()
|
|
ForEach ($Subscription in $Subscriptions) {
|
|
Set-AzContext -Subscription $Subscription
|
|
|
|
$AllVMs = Get-AzVM
|
|
|
|
ForEach ($VM in $AllVMs) {
|
|
$VMSize = $null
|
|
$VMSizeSpecs = $null
|
|
$OSDisk = $null
|
|
$DataDisks = $null
|
|
$obj = $null
|
|
|
|
$VMSize = $VM.HardwareProfile.VMSize
|
|
$VMSizeSpecs = Get-AzVMSize -Location $VM.Location | Where-Object { $_.Name -eq $VMSize }
|
|
|
|
$OSDisk = $VM.StorageProfile.OSDisk
|
|
$DataDisks = $VM.StorageProfile.DataDisks
|
|
|
|
#$IpAddress = (Get-AzNetworkInterface | Where-Object {$_.Id -eq $VM.NetworkProfile.NetworkInterfaces.Id}).IpConfigurations.PrivateIpAddress
|
|
|
|
$obj = [PSCustomObject]@{
|
|
VMName = $VM.Name
|
|
Subscription = $Subscription.Name
|
|
ComputerName = $VM.OSProfile.ComputerName
|
|
Size = $VMSize
|
|
CPU = $VMSizeSpecs.NumberOfCores
|
|
Memory = ($VMSizeSpecs.MemoryInMb / 1024)
|
|
TotalDisk = ($OSDisk.DiskSizeGB + ($DataDisks.DiskSizeGB | Measure-Object -Sum).Sum)
|
|
OsDiskGB = $OSDisk.DiskSizeGB
|
|
DataDisksGB = $DataDisks.DiskSizeGB -join ", "
|
|
}
|
|
|
|
$null = $AzureVMs.Add($obj)
|
|
}
|
|
}
|
|
|
|
$SharePointList = Get-ITDVMwareSharePointVMGuestList | Where-Object { $_.Status -notlike "D*" -and ($_.DataCenter -like "MAC*" -or $_.DataCenter -like "MAG*") }
|
|
|
|
$AzureToSharePointCompare = [System.Collections.ArrayList]@()
|
|
|
|
ForEach ($AzVM in $AzureVMs) {
|
|
$SPItem = $null
|
|
|
|
Write-Verbose -Message ("Start " + $AzVM.VMName) -Verbose
|
|
|
|
$SPItem = $SharePointList | Where-Object { $_.Title -match $AzVM.VMName.split('-')[1] }
|
|
Write-Verbose -Message ("Found " + $SPItem.Count + " possible SharePoint matches") -Verbose
|
|
|
|
$obj = [PSCustomObject]@{
|
|
AzVMName = $AzVM.VMName;
|
|
#AzComputerName = $AzVM.ComputerName
|
|
SPTitle = $SPItem.Title;
|
|
CPU = $null;
|
|
MemoryGB = $null;
|
|
DiskTotal = $null;
|
|
}
|
|
|
|
|
|
Write-Verbose -Message "One match found, starting compare"
|
|
|
|
If ($SPItem.Processors -ne $AzVM.CPU) {
|
|
$obj.CPU = $false
|
|
}
|
|
Else {
|
|
$obj.CPU = $true
|
|
}
|
|
|
|
If ($SPItem.RAM -ne $AzVM.Memory) {
|
|
$obj.MemoryGB = $false
|
|
}
|
|
Else {
|
|
$obj.MemoryGB = $true
|
|
}
|
|
|
|
$SPDiskTotalGB = $SPItem.Disk1 + $SPItem.Disk2 + $SPItem.Disk3 + $SPItem.Disk4
|
|
If ($SPDiskTotalGB -ne $AzVM.TotalDisk) {
|
|
$obj.DiskTotal = $false
|
|
}
|
|
Else {
|
|
$obj.DiskTotal = $true
|
|
}
|
|
|
|
$null = $AzureToSharePointCompare.Add($obj)
|
|
|
|
|
|
}
|
|
|