0

我对 Azure 和 Powershell 非常陌生。我需要根据私有 IP 地址找到我的网络接口。我找到了“Get-AzNetworkInterface”cmdlet,我希望它只返回包含 IP 的条目。我注意到 IP 仅存在于“IpConfigurationsText”中,但不存在于仅包含对象名称的“IpConfigurations”中。我不知道这是否正常。返回的“IpConfigurationText”是一个列表(基于我有限的 python 经验),其中包含这样的字典键值对

[
 {
   "Name": "xxxx",
   "Id": "xxxx",
   "PrivateIpAddress": "10.1.2.3",
   ...
 }
]

我想我想根据其内容进行过滤。我尝试了以下但没有成功...

Get-AzNetworkInterface | Where-Object { $_.IpConfigurationsText["PrivateIpAddress"] -contains "10.1.2.3" }
Get-AzNetworkInterface | Where-Object { $_.IpConfigurationsText[0]["PrivateIpAddress"] -eq "10.1.2.3" }

我也尝试在输出中只显示 IP 而不是字典键值对,但也没有成功

Get-AzNetworkInterface | select Name,IpConfigurationsText["PrivateIpAddress"]

让我知道我错过了什么。

顺便说一句,我还发现我可以使用“Out-GridView”来查看和过滤结果,但是当它很大时它不会显示整个输出。它被截断了。我似乎也无法对其进行复制/粘贴...对此也有任何建议吗?

谢谢!地番

4

1 回答 1

1

尝试这个:

$IP = (Get-AzureRmNetworkInterface -Name $VMName -ResourceGroupName $RGName).IpConfigurations.PrivateIpAddress

如果您没有需要安装的模块我:

Login-AzureRmAccount
Install-Module AzureRm

更多信息

于 2022-01-20T17:12:00.657 回答