gpt4 book ai didi

Azure Powershell 脚本参数

转载 作者:行者123 更新时间:2023-12-03 04:15:52 24 4
gpt4 key购买 nike

美好的一天

我的任务是收集不同订阅中所有虚拟机的列表,并且我有一个脚本可以收集:模式、名称、资源组名称、位置、VMSize 和状态。有两个空列:订阅和可用性集。

有点背景故事,我签约的公司雇用了一家供应商来部署资源,现在他们不知道该供应商是否做了他们应该做的事情。

我想弄清楚的是:

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

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

最佳答案

1.How to list the ASG the resource is in

如果你想列出虚拟机中的所有ASG,则需要通过所有网卡列出它们,可以引用下面的命令,$asgnames是所有ASG的列表, 注意如果不同的网卡有相同的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.The NSG the resource is in

如果要在虚拟机中获取 NSG,则需要通过所有 NIC 和 VNET 子网获取它们。

获取网卡的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]

那么虚拟机的NSG将是$nsgnic$nsgsub总和

3.The vCPUs and RAM

尝试以下命令,NumberOfCoresvCPUsMemoryInMB RAM注意结果中的 RAM 单位为 MB,如有需要,您可以将其转换为 GB

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

enter image description here

4.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

关于Azure Powershell 脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com