Как определить время автоматического выключения виртуальной машины Azure с помощью PowerShell? - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно собрать время автоматического выключения виртуальной машины Azure с помощью PowerShell, но я не знаю, как получить необходимое свойство ресурса, чтобы отразилось время автоматического выключения.

Я получаю следующеевывод:

ID:  /subscriptions/12345/resourceGroups/W12RG/providers/Microsoft.Compute/virtualMachines/W12

Name                   ResourceGroupName ResourceType                   Location
----                   ----------------- ------------                   --------
shutdown-computevm-W12 W12RG             Microsoft.DevTestLab/schedules eastus1
# Retrieve the resource group information
[array]$ResourceGroupArray = Get-AzureRMVm | Select-Object -Property ResourceGroupName, Name, VmId

foreach ($resourceGroup in $ResourceGroupArray){
    $targetResourceId = (Get-AzureRmVM -ResourceGroupName $resourcegroup.ResourceGroupName -Name $resourceGroup.Name).Id
    $shutdownInformation = Get-AzureRmResource -ResourceGroupName $resourcegroup.ResourceGroupName -ResourceType Microsoft.DevTestLab/schedules |  ft
    Write-Host "ID: " $targetResourceId
    $shutdownInformation
}

Мне нужно собрать время автоматического выключения для виртуальной машины Azure

1 Ответ

0 голосов
/ 24 мая 2019

Вам необходимо добавить переключатель -Expandproperties в Get-AzureRMResource, чтобы получить доступ к свойствам, которые содержат необходимые вам данные.Это позволит вам получить доступ к .Properties, который вернет объект с различными другими свойствами (.dailyRecurrence дает время выключения).Время выключения выглядит как строковое значение из 4 чисел, причем первые два числа представляют час, а последние два - минуты.Таким образом, 6:30:45 будет 06:30, а 23:45:55 будет 2345.

[array]$ResourceGroupArray = Get-AzureRMVm | Select-Object -Property ResourceGroupName, Name, VmId

foreach ($resourceGroup in $ResourceGroupArray){
    $targetResourceId = (Get-AzureRmVM -ResourceGroupName $resourcegroup.ResourceGroupName -Name $resourceGroup.Name).Id
    $shutdownInformation = (Get-AzureRmResource -ResourceGroupName $resourcegroup.ResourceGroupName -ResourceType Microsoft.DevTestLab/schedules -Expandproperties).Properties
    Write-Host "ID: " $targetResourceId
    $shutdownInformation
}

Я удалил ваш | ft, поскольку, как правило, не рекомендуется отправлять данные через формировательперед сохранением значения.Это изменит ваш объект и, следовательно, изменит свойства.Тогда вы не сможете ссылаться на эти свойства, как ожидается позже.Если вы хотите отображать данные таким образом, вы можете просто добавить их к вашей единственной строке $shutdownInformation.Другими словами, отправляйте данные через формат таблицы в то время, когда вы хотите вывести.

...