- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想导出一些内容,例如 VNET 中存在的子网 View (如门户中显示的那样)。不幸的是,没有选项可以将其导出为 CSV。我在网上找到了可以导出子网路由表和关联子网的 powershell 脚本。我还找到了用于导出 vnet 子网详细信息的 powershell 脚本。但是我还没有找到结合两者的脚本
Script for Route tables by Aman Sharma
忽略我认为他从以前的脚本中留下的概要和描述
因此,我尝试反转逻辑,即获取子网详细信息并添加每个子网的路由表(如果存在)。但我不确定此时我在做什么!脚本出错:
Line |
47 | … $routeTables = Get-AzRouteTable -Name $routeTableName -Resour …
| ~~~~~~~~~~~~~~~
| Cannot validate argument on parameter 'Name'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
脚本结束,CSV 包含除路由表详细信息之外的所有内容。因此,如果您能帮助菜鸟,我将非常感激,这就是我所拥有的:
$PathToOutputCSVReport = "/path/output.csv"
$subs = Get-AzSubscription
#Checking if the subscriptions are found or not
if(($subs -ne $null) -or ($subs.Count -gt 0))
{
#Creating Output Object
$results = @()
#Iterating over various subscriptions
foreach($sub in $subs)
{
$SubscriptionId = $sub.SubscriptionId
Write-Output $SubscriptionName
#Selecting the Azure Subscription
Select-AzSubscription -SubscriptionName $SubscriptionId
#Getting all Azure Route Tables
$vnets = Get-AzVirtualNetwork
foreach($vnet in $vnets)
{
$vnetName = $vnet.Name
$vnetResourceGroup = $vnet.ResourceGroupName
Write-Output $vnetName
#Fetch Route Subnets
$vnetSubnets = $vnet.Subnets
foreach($vnetSubnet in $vnetSubnets)
{
$subnetName = $vnetSubnet.Name
Write-Output $subnetName
$subnetId = $vnetSubnet.Id
###Getting information
$splitarray = $subnetId.Split('/')
$subscriptionId = $splitarray[2]
$vNetResourceGroupName = $splitarray[4]
$virtualNetworkName = $splitarray[8]
$subnetName = $splitarray[10]
#Fetch the route table details
$routeTables = Get-AzRouteTable -Name $routeTableName -ResourceGroupName $routeResourceGroup
#Fetching the vNet and Subnet details
#$vnet = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet
$subnetAddressPrefix = $subnet.AddressPrefix[0]
$details = @{
virtualNetworkName=$virtualNetworkName
subnetAddressPrefix=$subnetAddressPrefix
subnetName=$subnetName
routeTableName=$routeTableName
routeResourceGroup=$routeResourceGroup
subscriptionId=$subscriptionId
vNetResourceGroupName=$vNetResourceGroupName
}
$results += New-Object PSObject -Property $details
}
}
}
$results | export-csv -Path $PathToOutputCSVReport -NoTypeInformation
}
else
{
Write-Host -ForegroundColor Red "No Subscription Found"
}
最佳答案
您收到的此错误清楚地表明变量 routeTableName
对于 cmdlet Get-AzRouteTable
的 -Name
参数来说是无效值>.
查看您的脚本,该变量似乎没有在任何地方定义,这解释了为什么它是空的,因此无法与 cmdlet 一起使用。
要使用与子网关联的路由表名称定义变量,您可以使用以下命令:
$routeTableName = $subnet.RouteTable.Id.Split('/')[8]
您似乎根本没有使用以下内容,可以将其删除:
$routeTables = Get-AzRouteTable -Name $routeTableName -ResourceGroupName $routeResourceGroup
整个代码如下所示:
$PathToOutputCSVReport = "/path/output.csv"
$subs = Get-AzSubscription
#Checking if the subscriptions are found or not
if(($subs -ne $null) -or ($subs.Count -gt 0))
{
#Creating Output Object
$results = @()
#Iterating over various subscriptions
foreach($sub in $subs)
{
$SubscriptionId = $sub.SubscriptionId
Write-Output $SubscriptionName
#Selecting the Azure Subscription
Select-AzSubscription -SubscriptionName $SubscriptionId
#Getting all Azure Route Tables
$vnets = Get-AzVirtualNetwork
foreach($vnet in $vnets)
{
$vnetName = $vnet.Name
$vnetResourceGroup = $vnet.ResourceGroupName
Write-Output $vnetName
#Fetch Route Subnets
$vnetSubnets = $vnet.Subnets
foreach($vnetSubnet in $vnetSubnets)
{
$subnetName = $vnetSubnet.Name
Write-Output $subnetName
$subnetId = $vnetSubnet.Id
###Getting information
$splitarray = $subnetId.Split('/')
$subscriptionId = $splitarray[2]
$vNetResourceGroupName = $splitarray[4]
$virtualNetworkName = $splitarray[8]
$subnetName = $splitarray[10]
#Fetch the route table details
#$routeTables = Get-AzRouteTable -Name $routeTableName -ResourceGroupName $routeResourceGroup
#Fetching the vNet and Subnet details
#$vnet = Get-AzVirtualNetwork -Name $virtualNetworkName -ResourceGroupName $vNetResourceGroupName
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $subnetName -VirtualNetwork $vnet
$routeTableName = $subnet.RouteTable.Id.Split('/')[8]
$subnetAddressPrefix = $subnet.AddressPrefix[0]
$details = @{
virtualNetworkName=$virtualNetworkName
subnetAddressPrefix=$subnetAddressPrefix
subnetName=$subnetName
routeTableName=$routeTableName
routeResourceGroup=$routeResourceGroup
subscriptionId=$subscriptionId
vNetResourceGroupName=$vNetResourceGroupName
}
$results += New-Object PSObject -Property $details
}
}
}
$results | export-csv -Path $PathToOutputCSVReport -NoTypeInformation
}
else
{
Write-Host -ForegroundColor Red "No Subscription Found"
}
关于azure - 导出互联网络 |子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72020042/
因此,AWS 中私有(private)子网的目的是使其实例无法从外部世界直接访问。然而,在某些情况下(成功地抵制了“实例”双关语),实例访问互联网很有用。例如,一种这样的用例可能是下载软件更新。 实现
我已经退出虚拟机,我需要更改该虚拟机的虚拟网络/子网。我没有找到任何可以更改的选项,请帮助我。谢谢..! 最佳答案 据我所知,当在 VNet 中创建 NIC 时,它就无法再移动到另一个 VNet。因此
我想导出一些内容,例如 VNET 中存在的子网 View (如门户中显示的那样)。不幸的是,没有选项可以将其导出为 CSV。我在网上找到了可以导出子网路由表和关联子网的 powershell 脚本。我
我的虚拟网络具有以下子网 10.0.0.0/24,我想添加另一个子网,但每次尝试时都会得到:“您的子网不包含在该虚拟网络的同一地址空间内” 如何添加另一个子网? 最佳答案 您可以在虚拟网络中添加子网,
我有 ip 地址列表作为字符串,但该列表中也有一些子网。例如: ...127.0.0.1(这是ip)127.0.0.1/24(这是子网)... 我想检查哪个是ip,哪个是子网。到目前为止我可以过滤 i
我正在尝试使用 ARM 模板部署 Azure 防火墙。该模板在首次部署期间工作正常,并在现有虚拟网络中创建一个子网(根据需要命名为 AzureFirewallSubnet)以及具有公共(public)
我正在尝试使用 ARM 模板部署 Azure 防火墙。该模板在首次部署期间工作正常,并在现有虚拟网络中创建一个子网(根据需要命名为 AzureFirewallSubnet)以及具有公共(public)
我正在尝试编写一个脚本,将大于(不大于/16)大于/24 的子网分解为/24 子网。例如:10.10.10.0/23 应该给我 10.10.10.0/24 和 10.10.11.0/24 我的逻辑是首
我在 Azure VNet 中有两台虚拟机(IP 地址 10.1.0.4 和 10.1.0.5),以及一台通过 VPN 网关连接到 VNet 的计算机(IP 10.3.0.2)。是否可以在内部负载均衡
错误消息 执行terraform apply时收到以下错误消息: 错误:创建/更新虚拟网络“CTI-NETWORK”(资源组“CTI-RESOURCES”)时出错:network.VirtualNet
我无法从不再使用的 VNet 中删除“默认”子网。错误是:“子网默认值由/subscriptions/{guid}/resourceGroups/mpi-prod-westeurope-rg/prov
我在使用 docker-compose 时遇到问题。目前,我的容器堆栈是在它们自己定制的、基于桥接的隔离网络中创建的。 例如当运行 docker-compose -p client1 up -d 时,
我无法从不再使用的 VNet 中删除“默认”子网。错误是:“子网默认值由/subscriptions/{guid}/resourceGroups/mpi-prod-westeurope-rg/prov
如果文件的一个版本在特定子网中具有接口(interface),我想将其复制到服务器,或者如果在该子网中没有接口(interface),则将文件的一个版本复制到服务器。下面是一个工作,但我认为不是最佳解
我是 terraform 新手,想要更改网络上的子网,但遇到了一个奇怪的错误。谷歌什么也没得到。这是我要输入的内容(更改 main.tf 和运行计划后) terraform apply -replac
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我们有 dbs, basion ..等,总共 10 个东西需要分开。 如果我们将它们中的每一个都放入一个单独的子网中,我们总共有 10 个子网,再加上 1 个用于第二个区域以实现高可用性。因此,我们总
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我们有 dbs, basion ..等,总共 10 个东西需要分开。 如果我们将它们中的每一个都放入一个单独的子网中,我们总共有 10 个子网,再加上 1 个用于第二个区域以实现高可用性。因此,我们总
在 IP 为 145.74.217.109 的机器 A 上运行 ServerSocket 时然后尝试使用 IP 为 145.74.219.103 的机器 B 连接到机器 A,但无法连接。但是当使用 I
我是一名优秀的程序员,十分优秀!