Powerstate Azure VM через powershell - PullRequest
0 голосов
/ 04 января 2019

Фрагмент моего сценария выглядит так:

# Collection of data
$VMs = Get-AzureRmVM
$vmOutput = $VMs | ForEach-Object { 
    [PSCustomObject]@{
        "VM Name" = $_.Name
        "VM Type" = $_.StorageProfile.osDisk.osType
        "VM Profile" = $_.HardwareProfile.VmSize
        "Environment" = $_.Tags.Environment
        "Application" = $_.Tags.Application
        "Decommission Date" = $_.Tags.Decomission
        "OS Disk Size" = $_.StorageProfile.OsDisk.DiskSizeGB
        "Data Disks Total Size" = ($_.StorageProfile.DataDisks.DiskSizeGB | Measure -Sum).Sum
        "Data Disks Amount" = ($_.StorageProfile.DataDisks.DiskSizeGB | Measure ).Count
        "Powerstate" = $_.Statuses[1].DisplayStatus
    }
}

$vmOutput | sort "Environment", "VM Type", "VM Profile", "Application" | export-csv VMReport.csv -delimiter ";" -force -notypeinformation 

Я хочу добавить столбец состояния питания в отчет, но он не включен в свойства Get-AzureRMVM . Я должен добавить -status в конце команды, чтобы показать мне эти данные, но, как я заметил, он работает только тогда, когда включены определенные имя группы ресурсов и имя vm.

Как изменить скрипт, чтобы он включал состояние питания в качестве последнего столбца в отчете, не выбрасывая этот скрипт и не создавая новый с нуля?

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Представление экземпляра - это состояние уровня экземпляра виртуальной машины. Укажите параметр Status, чтобы получить только представление экземпляра виртуальная машина.

Подробнее здесь . Так что вам просто нужно изменить некоторые команды, подобные этим:

$VMs = Get-AzureRmVM -Status

и

"Powerstate" = $_.PowerState

Тогда все будет хорошо. Надеюсь, это поможет вам.

0 голосов
/ 04 января 2019

ничего с этим не поделаешь, лучше всего делать что-то вроде этого:

$vms = $vms | foreach-object { $_ | Get-AzRmVm -status }

поэтому перебираем переменную vms для получения каждого отдельного статуса vm

...