Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有Azure powershell cmdlet可用于获取订阅中ARM VM的核心和cpu_Azure_Azure Powershell - Fatal编程技术网

是否有Azure powershell cmdlet可用于获取订阅中ARM VM的核心和cpu

是否有Azure powershell cmdlet可用于获取订阅中ARM VM的核心和cpu,azure,azure-powershell,Azure,Azure Powershell,我正在尝试使用get-AzureRmVM获取订阅中的ARM VM列表,并使用HardwareProfile.VmSize对象获取它们的实例大小。有没有一种方法可以使用cmdlet(就像在经典中使用get-AzureRoleSize cmdlet)获取每个vm的#Cpu数量、#内核数量等?您的意思是使用命令获取这样的信息吗 PS C:\User> $size = (Get-AzureRmVM -ResourceGroupName ubuntu -Name vm1).HardwareProfi

我正在尝试使用get-AzureRmVM获取订阅中的ARM VM列表,并使用HardwareProfile.VmSize对象获取它们的实例大小。有没有一种方法可以使用cmdlet(就像在经典中使用get-AzureRoleSize cmdlet)获取每个vm的#Cpu数量、#内核数量等?

您的意思是使用命令获取这样的信息吗

PS C:\User> $size = (Get-AzureRmVM -ResourceGroupName ubuntu -Name vm1).HardwareProfile.VmSize
PS C:\Users> get-azurermvmsize -location eastus | ?{ $_.name -eq $size }

Name            NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
----            ------------- ---------- ---------------- -------------- --------------------
Standard_DS1_v2             1       3584                2        1047552                 7168

如果您想要获得多个虚拟机的总内核,这里提供了完整的解决方案:

# Calculating total Amount of Cores
Write-Output "Calculating the total Cores of VMs ..."
try {
    $TotalCores = $null
    $Location = "westeurope"
    $Cores = $null
    $TotalVMs = (Get-AzVM -Status | Where-Object { $_.ProvisioningState -eq "Succeeded" }) | Sort-Object -Property Name

    foreach ($VM in $TotalVMs) {
        Write-Output "Checking $($Vm.Name) ..."
        $VMSize = (Get-AzVM -Name $VM.Name).HardwareProfile.VmSize
        $Cores = (Get-AzVMSize -location $Location | Where-Object { $_.name -eq $VMSize }).NumberOfCores
        $TotalCores += $Cores
    }
    Write-Output "Wow! Found '$TotalCores' Cores ..."
}
catch {
    $ErrorMsg = "[ERROR] while calculating the total CPU Cores: $($_.Exception.Message)!"
    Write-Error -Message $ErrorMsg
}

是的,这个有效。我将只是在一个循环中获取多个vm的详细信息,而不是单个vm和单个位置。