Azure Powershell查询以返回VM详细信息

时间:2018-09-17 11:02:52

标签: powershell azure-powershell

我正在尝试编写Powershell查询以返回下表:

NAME    STATUS  RESOURCE GROUP  VMSIZE  SIZEREASON (TAG)    LOCATION    PUBLIC DNS NAME

我可以使用Get-AzureRmVM | Select-Object Name, ResourceGroupName, Location,但是当我尝试在VmSize上添加时,该列在那里但没有值。

如果我只运行Get-AzureRmVM,那么我会得到VmSize,所以我不明白为什么不能选择它。

我还需要弄清楚如何添加状态,SIZ​​EREASON(标记),公共DNS名称

任何指导都值得赞赏。

还值得注意的是,我的表还需要同时包含资源管理的VM和经典VM(因此是所有VM)

UPDATE

我的Powershell查询当前为:

Get-AzureRmVm `
  | Select-Object ResourceGroupName `
                , Name `
                , Location `
                , @{Name="VmSize"; Expression={$_.ToPSVirtualMachine().HardwareProfile.VmSize}} `
                , @{Name="SizeReason(Tag)"; Expression={$_.ToPSVirtualMachine().Tags.Values}} `
                , FullyQualifiedDomainName `
   | Format-Table

突出的问题是:

  1. FullyQualifiedDomainName不起作用
  2. 我还缺少状态(例如:正在运行,已停止(已取消分配)等。)

1 个答案:

答案 0 :(得分:1)

这比我预期的要复杂。...

Get-AzureRmVm | Select-Object @{Name="VmSize"; Expression={$_.ToPSVirtualMachine().HardwareProfile.VmSize}}