大家,早安,
我仍在學習 powershell,并且有一個我公司運行的腳本。我稍微調整了一下,效果很好。然而...
概述 腳本提取一個 CSV 檔案,然后對于 CSV 上的每個設備,它登錄并獲取所有 VIP 資訊,然后將其輸出到一個帶有設備名稱的日期和標題的 CSV。
問
我想調整腳本,以便我可以擁有一個帶有額外列的單個 CSV 檔案,而不是 50 多個 CSV 檔案,該列想要所有 VIPS 所在的設備名稱。我怎么做?
當前腳本
$user = "user"
$pass1 = Read-Host "Enter Netscaler Password"
$Devicelist = Import-Csv'C:\Users\user\Documents\20221110\20221109_Citrix_inventory_Master1.csv'
foreach ($device in ($Devicelist | ? { $_.fqdn -match "nsr" -and $_.State -match "Primary" -and $_.Configuration_viewable_with_Techops_login -match "Yes" })) {
Write-Host "Attempting to connect to $($device.fqdn)"
$SecurePassword = ConvertTo-SecureString $pass1 -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($user, $SecurePassword)
$session = Connect-NetScaler -Hostname $device."IP address" -Credential $Credential -PassThru
$nsVIPs = Get-NSLBVirtualServer | select name, ipv46, port, curstate
$nsVIPs | Out-File C:\Users\user\Documents\20221110\VIPS\$(get-date -f yyyyMMdd)"_"$($device.fqdn)-"vips.csv"
}
當前 CSV 輸入檔案格式

當前輸出檔案格式

我想輸出的檔案格式是什么

**
我試過什么
**
目前除了研究之外什么都沒有,我猜我需要將資訊保存在一個陣列中,然后在最后輸出。我只是不知道該怎么做。
感謝您的尋找和幫助
尼爾
uj5u.com熱心網友回復:
您可以將代碼更改為首先將所有資料收集到一個變數中$result,然后在回圈之后將所有資料寫入一個 CSV 檔案。
要撰寫 csv,您需要使用Export-Csv, not Out-File,它旨在撰寫簡單的文本,而不是物件。
$user = "user"
$pass1 = Read-Host "Enter Netscaler Password"
$SecurePassword = ConvertTo-SecureString $pass1 -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($user, $SecurePassword)
$today = '{0:yyyyMMdd}' -f (Get-Date)
$Devicelist = Import-Csv -Path 'C:\Users\user\Documents\20221110\20221109_Citrix_inventory_Master1.csv' |
Where-Object { $_.fqdn -match "nsr" -and
$_.State -match "Primary" -and
$_.Configuration_viewable_with_Techops_login -match "Yes" }
$result = foreach ($device in $Devicelist) {
Write-Host "Attempting to connect to $($device.fqdn)"
$session = Connect-NetScaler -Hostname $device.'IP address' -Credential $Credential -PassThru
Get-NSLBVirtualServer |
Select-Object name, ipv46, port, curstate, @{Name = 'Device Name'; Expression = {$device.fqdn}}
}
# now write out the csv file just once
$result | Export-Csv -Path "C:\Users\user\Documents\20221110\VIPS\$($today)_vips.csv" -NoTypeInformation
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532935.html
標籤:电源外壳
