向 Internet 公开的 Azure NSG 规则
Azure NSG rules exposed to internet
我正在创建一个 PS 脚本来获取 Azure NSG 中允许上网的所有端口,这里的问题是我想在下面的脚本中通过端口号获取我只能获取一个端口但是如何获取多个端口。
目前我正在取443,同时想取80和8443,我可以写逻辑吗
-eq 以下脚本的条件
$subscriptions = 'xxxxxxx'
foreach ($azsub in $subscriptions)
{
set-AzContext -subscription $azsub
$aznsgs = Get-AzNetworksecuritygroup
foreach ($aznsg in $aznsgs)
{
Get-Aznetworksecurityruleconfig -networksecuritygroup $aznsg | Where-Object { $_.DestinationPortRange -eq "443" | Select-object `
@{label = 'NSG name' ; expression = {$aznsg.name}}, `
@{label = 'Rulename' ; expression = {$_.name}} , `
@{label = 'Port Range' ; expression = {$_.destinationportrange}} , 'access' , 'priority' , 'direction', `
@{label = 'RG name' ; expression = {$aznsg.resourcegroupname}`
} | Export-Csv -path "C:\Users\xxxx\Documents\NSG.CSV" -NoTypeInformation -Append
}
}
你可以在where中做多个条件。
这是一个类似的 post
Where-object $_ matches multiple criterias
示例来自 post
data | Where-Object{
$_.Name -eq "$serverName.chrobinson.com" -and (
$_.Description1 -match "bnx2x" -or
$_.Description1 -match "be2net"
)
} | Select-Object -expand version
只需更新您的 where 子句以包含所有这些。
Where-Object { ($_.DestinationPortRange -eq "443" -or $_.DestinationPortRange -eq "80" -or $_.DestinationPortRange -eq "8443")
我正在创建一个 PS 脚本来获取 Azure NSG 中允许上网的所有端口,这里的问题是我想在下面的脚本中通过端口号获取我只能获取一个端口但是如何获取多个端口。
目前我正在取443,同时想取80和8443,我可以写逻辑吗 -eq 以下脚本的条件
$subscriptions = 'xxxxxxx'
foreach ($azsub in $subscriptions)
{
set-AzContext -subscription $azsub
$aznsgs = Get-AzNetworksecuritygroup
foreach ($aznsg in $aznsgs)
{
Get-Aznetworksecurityruleconfig -networksecuritygroup $aznsg | Where-Object { $_.DestinationPortRange -eq "443" | Select-object `
@{label = 'NSG name' ; expression = {$aznsg.name}}, `
@{label = 'Rulename' ; expression = {$_.name}} , `
@{label = 'Port Range' ; expression = {$_.destinationportrange}} , 'access' , 'priority' , 'direction', `
@{label = 'RG name' ; expression = {$aznsg.resourcegroupname}`
} | Export-Csv -path "C:\Users\xxxx\Documents\NSG.CSV" -NoTypeInformation -Append
}
}
你可以在where中做多个条件。
这是一个类似的 post
Where-object $_ matches multiple criterias
示例来自 post
data | Where-Object{
$_.Name -eq "$serverName.chrobinson.com" -and (
$_.Description1 -match "bnx2x" -or
$_.Description1 -match "be2net"
)
} | Select-Object -expand version
只需更新您的 where 子句以包含所有这些。
Where-Object { ($_.DestinationPortRange -eq "443" -or $_.DestinationPortRange -eq "80" -or $_.DestinationPortRange -eq "8443")