【问题标题】:Azure Powershell Query to return VM detailsAzure Powershell 查询以返回 VM 详细信息
【发布时间】:2019-02-21 07:00:15
【问题描述】:

我正在尝试编写一个 powershell 查询以返回下表:

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

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

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

我还需要弄清楚如何添加 Status、SIZEREASON (TAG)、PUBLIC DNS NAME

非常感谢任何指导。

还值得注意的是,我的表还需要包含资源托管 VM 和经典 VM(即所有 VM)

更新

我的 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. 我也缺少状态(例如:正在运行、已停止(已释放)等)

【问题讨论】:

  • 查看Get-AzureRmVM | Get-Member的输出
  • 我也这样做了,但是我看不到一个名为 VmSize 的属性,即使只是运行“Get-AzureRmVM”给了我 VmSize

标签: powershell azure-powershell


【解决方案1】:

这比我预期的要棘手....

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

【讨论】:

  • 这确实为我指明了正确的方向,它也为我提供了我需要的标签,我现在唯一需要解决的是如何在表中获取公共 DNS 名称(FQDN),所以我目前有Get-AzureRmVm | Select-Object ResourceGroupName, Name, Location, @{Name="VmSize"; Expression={$_.ToPSVirtualMachine().HardwareProfile.VmSize}}, @{Name="SizeReason(Tag)"; Expression={$_.ToPSVirtualMachine().Tags.Values}} | Format-Table
  • @Jeffrey FullyQualifiedDomainName 是一个现成的属性:Get-AzureRmVM | Get-Member | Where-Object Name -EQ FullyQualifiedDomainName
  • 原来如此,但是运行它不会返回值Get-AzureRmVm | Select-Object ResourceGroupName, Name, Location, @{Name="VmSize"; Expression={$_.ToPSVirtualMachine().HardwareProfile.VmSize}}, @{Name="SizeReason(Tag)"; Expression={$_.ToPSVirtualMachine().Tags.Values}}, FullyQualifiedDomainName | Format-Table
  • 哪些值?我正在修改的订阅没有暴露任何 FQDN,因此我无法测试该位是否正确返回。
  • 对不起,如果我不是很清楚。 Get-AzureRmVm | Select-Object ResourceGroupName, Name, Location, @{Name="VmSize"; Expression={$_.ToPSVirtualMachine().HardwareProfile.VmSize}}, @{Name="SizeReason(Tag)"; Expression={$_.ToPSVirtualMachine().Tags.Values}}, FullyQualifiedDomainName | Format-Table 没有为我提供 FQDN,我还发现我仍然需要找到一种方法来获取状态(例如:正在运行、已停止(解除分配))等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多