我正在尝试创建一份报告,以查找所有存储帐户及其关联的vNet详细信息。
& {
foreach ($storageAccount in Get-AzStorageAccount) {
$storageAccountName = $storageAccount.StorageAccountName
$resourceGroupName = $storageAccount.ResourceGroupName
$context = (Get-AzStorageAccount -StorageAccountName $storageAccountName -ResourceGroupName $resourceGroupName).NetworkRuleSet.VirtualNetworkRules.VirtualNetworkResourceId
$splitarray = $context.Split('/')
$vnetid = $splitarray[8]
$subscriptionid = $splitarray[2]
New-Object psobject -Property @{
Name = $storageAccountName;
Context = $vnetid;
ResourceGroupName = $resourceGroupName
Subscriptionid = $subscriptionid
}
}
} | Format-Table Name, Context, subscriptionid, ResourceGroupName
我目前得到以下输出:storage account vnet report
正如您从输出中看到的,没有为存储帐户正确获取vNet名称。
存储帐户testfnapp2oct16连接了vNet Testfnvnet,这是正确的。存储帐户unz2versvaultea、cs1f7b27d61e31e、win10guestDiag954未连接任何vNet,但会重复‘testfnvnet’,直到不同存储帐户的值更改。
存储帐户testfnapp9eb7有两个vnet,但只显示了testvnet1,并且为下一个存储帐户重复了值‘testvnet1’。
任何帮助都是非常感激的。
1条答案
按热度按时间vjhs03f71#
我已经创建了样本存储帐户获取与vNet和没有附加与vNet时,我尝试,您的代码我得到相同的错误如下。
要解决此问题,请使用我在以下代码中更改的条件来正确执行此问题的解决方案。
现在,无论哪个vnet没有进入我的存储帐户,它都会显示为空,如下所示。