Параметры сценариев Azure Powershell - PullRequest
0 голосов
/ 30 октября 2018

Добрый день

Мне было поручено собрать список всех виртуальных машин в наших разных подписках, и у меня есть скрипт, который собирает: Mode, Name, ResourceGroupName, location, VMSize и Status. Есть два пустых столбца: подписка и доступность.

Немного предыстории: компания, с которой я заключил контракт, наняла поставщика для развертывания ресурсов, и теперь они не знают, сделал ли поставщик то, что предполагалось.

Что я пытаюсь выяснить:

  1. Как перечислить ASG, в котором находится ресурс
  2. ГЯП, в которой находится ресурс
  3. ЦП и ОЗУ
  4. Учетная запись хранения

Я искал в Google, чтобы найти объекты PSO, которые мне нужно определить. Любая помощь будет принята с благодарностью

1 Ответ

0 голосов
/ 31 октября 2018

1.Как перечислить ASG, в котором находится ресурс

Если вы хотите перечислить все ASG в ВМ, вам нужно перечислить их через все NIC, вы можете обратиться к приведенной ниже команде, $asgnames - это список всех ASG, note если разные сетевые адаптеры имеют одинаковую ASG, она выдаст несколько раз.

$nics = (Get-AzureRmVM -ResourceGroupName "<ResourceGroupName>" -Name "<VM Name>").NetworkProfile.NetworkInterfaces
$nicnames = @()
$asgnames = @()
foreach($nic in $nics){
    $a = $nic.Id -split"/"
    $nicname = $a[8]
    $nicnames += $nicname
    $ipconfig = Get-AzureRmResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Network/networkInterfaces/ipConfigurations -ResourceName "$nicname/ipconfig1" -ApiVersion 2018-07-01
    $asgids = $ipconfig.Properties.applicationSecurityGroups.id 

    foreach ($asgid in $asgids){
        $a = $asgid -split"/"
        $asganme = $a[8]
        $asgnames += $asganme
    }
}

enter image description here

2. NSG ресурс в

Если вы хотите получить NSG в ВМ, вам нужно получить их через все сетевые карты и подсеть VNET.

Получить NSG NIC, $nsgnic это NSG:

$nic = Get-AzureRmResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Network/networkInterfaces -ResourceName "<NIC name>" -ApiVersion 2018-07-01
$a = $nic.properties.networkSecurityGroup.id -split"/"
$nsgnic = $a[8]

Получите NSG подсети, $nsgsub - это NSG:

$subnet = Get-AzureRmResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Network/virtualNetworks/subnets -ResourceName "<Vnet name>/<Subnet name>" -ApiVersion 2018-07-01
$b = $subnet.properties.networkSecurityGroup.id -split"/"
$nsgsub = $a[8]

Тогда NSG с виртуальной машины будет sum из $nsgnic и $nsgsub.

3.Процессоры и оперативная память

Попробуйте команду ниже, NumberOfCores это vCPUs, MemoryInMB это RAM, примечание RAM в результате в MB вы можете преобразовать его в GB при необходимости.

Get-AzureRmVMSize -ResourceGroupName "<ResourceGroupName>" -VMName "<VMName>" 

enter image description here

4.Счет хранения

Если я не понимаю, учетная запись хранения здесь вы имеете в виду Diagnostics storage account, попробуйте команду ниже, $storage - это учетная запись хранения URI.

$a = Get-AzureRmResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Compute/virtualMachines -ResourceName "<VM Name>" -ApiVersion 2018-06-01
$storage = $a.properties.diagnosticsProfile.bootDiagnostics.storageUri

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...