[英]NoteProperty in PSObject is not getting populated in Foreach Loop | NSG details export to CSV
我正在創建一個Azure PS腳本,它將獲取所有NSG,然后查找它是否已連接到子網或NIC。
當我運行以下命令時,它給出的輸出沒有“連接到子網”列。 但是,當我使用-ResourceGroupName屬性運行相同的cmdlet時,它會提供具有所需的“附加到子網”和“附加到Nic”的NoteProperty輸出。
我無法調試為什么它不使用Get-AzureRmNetworkSecurityGroup
添加“附加到子網”列
$NSGdetails = @()
Get-AzureRmNetworkSecurityGroup | ForEach-Object {
$D2 = New-Object PSObject
Write-Host $_.Name
$subnet = $_.Subnets.Id
$nic = $_.NetworkInterfaces.id
$D2 | Add-Member -MemberType NoteProperty -Name "NSG Name" -Value $_.Name -Force
if ($subnet -ne $null) {
$subnetdetail = $subnet.Split('/')[-1]
$D2 | Add-Member -MemberType NoteProperty -Name "Attached To Subnet" -Value $subnetdetail -Force
}
if ($nic -ne $null) {
$nicdetail = $nic.Split('/')[-1]
$D2 | Add-Member -MemberType NoteProperty -Name "Attached To NIC" -Value $nicdetail -Force
}
$NSGdetails += $D2
}
$NSGdetails | Export-Csv -Path "C:\temp\allnicdetails.csv" -NoTypeInformation -Force
以下是帶有Get-AzureRmNetworkSecurityGroup -ResourceGroupName RAH-AQ
的輸出
PS C:\Users\021176\Desktop> $NSGdetails
NSG Name Attached To Subnet Attached To NIC
-------- ------------------ ---------------
linuxvm-nsg default linuxvm15
redhat-nsg redhat396
Get-AzureRmNetworkSecurityGroup
與Get-AzureRmNetworkSecurityGroup
輸出
PS C:\Users\021176\Desktop> $NSGdetails
NSG Name Attached To NIC
-------- ---------------
demolinux-nsg demolinux76
devnsg devnic
mastesta1-nsg mastesta1275
TutorialVM1 TutorialVM1
filenetapp-nsg filenetapp828
testvm1NSG
nehatest-nsg nehatest995
RHEL-nsg rhel858
linuxvm-nsg linuxvm15
linuxvm-nsg linuxvm15
redhat-nsg redhat396
SQLBackup-nsg sqlbackup454
opnvpntest-nsg opnvpntest764
“ Attached To Subnet
屬性並未最終出現在CSV中,因為只有一些對象具有該屬性,而Export-Csv
根據第一個輸入對象來決定要解析和寫入的屬性。 更改您的代碼以始終添加該屬性,而不管該屬性是否有值:
if ($subnet -ne $null) {
$subnetdetail = $subnet.Split('/')[-1]
} else {
$subnetdetail = $null
}
$D2 | Add-Member -MemberType NoteProperty -Name "Attached To Subnet" -Value $subnetdetail -Force
if ($nic -ne $null) {
$nicdetail = $nic.Split('/')[-1]
} else {
$nicdetail = $null
}
$D2 | Add-Member -MemberType NoteProperty -Name "Attached To NIC" -Value $nicdetail -Force
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.