Azure Powershell脚本参数

问题描述 投票:1回答:1

美好的一天

我的任务是收集不同订阅中所有VM的列表,我有一个收集的脚本:Mode,Name,ResourceGroupName,location,VMSize和Status。有两个空列:订阅和可用性集。

有点背景故事,我签约雇用供应商来部署资源的公司,现在他们不知道供应商是否按照他们的想法行事。

我想弄清楚的是:

  1. 如何列出资源所在的ASG
  2. 资源所在的NSG
  3. vCPU和RAM
  4. 存储帐户

我一直在谷歌搜索找到我需要定义的PSObjects。任何帮助将不胜感激

azure powershell
1个回答
0
投票

1.如何列出资源所在的ASG

如果要列出VM中的所有ASG,您需要通过所有NIC列出它们,您可以参考下面的命令,$asgnames是所有ASG的列表,请注意,如果不同的NIC具有相同的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

如果要在VM中获取NSG,则需要通过所有NIC和VNET子网获取NSG。

获得NIC的NSG,$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]

那么VM的NSG将是sum$nsgnic$nsgsub

3.vCPU和RAM

尝试下面的命令,NumberOfCoresvCPUsMemoryInMBRAM,注意结果中的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

© www.soinside.com 2019 - 2024. All rights reserved.