大家早上好,
我还在学习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输入文件格式
当前输出文件格式
我希望输出文件格式为
**
我试过什么
**
目前除了研究之外什么都没有,我猜我需要在一个数组中保存信息,然后在最后输出它。我只是不知道如何做到这一点。
谢谢你的帮忙
尼尔
1条答案
按热度按时间gudnpqoy1#
您可以更改代码,首先将所有数据收集到一个变量
$result
中,然后在循环后将所有数据写入一个CSV文件中。要编写csv,需要使用
Export-Csv
,而不是Out-File
,后者用于编写简单文本,而不是对象。