如何将当前PowerShell脚本的执行结果导出为CSV文件
问题原因
你直接在脚本末尾通过管道追加Export-Csv不生效,是因为PowerShell的标准foreach循环的输出不会自动流入外层管道,循环内部Get-NetAdapter返回的网卡信息没有被统一捕获。
解决方案
你可以提前定义一个空数组来收集所有查询结果,最后统一导出为CSV,修改后的脚本如下:
# 定义空数组存储查询结果 $wifiDriverInfo = @() foreach($ADMachineInOU in $(Get-ADComputer -Filter * -SearchBase "OU=Win10Modern,OU=LN,OU=Workstations,DC=cooley,DC=com" | Select -ExpandProperty Name)) { # 测试设备是否在线 if(Test-Connection -ComputerName $ADMachineInOU -Count 1 -ErrorAction SilentlyContinue) { Write-Host $ADMachineInOU -ForegroundColor Green $CimSession = New-CimSession -ComputerName $ADMachineInOU # 把查询到的网卡信息追加到数组里 $wifiDriverInfo += Get-NetAdapter -CimSession $CimSession -Name "Wi-Fi" | select PSComputerName,DriverVersion Remove-CimSession -CimSession $CimSession } else { Write-Host $ADMachineInOU -ForegroundColor Gray } Remove-Variable CimSession,ADMachineInOU -ErrorAction SilentlyContinue } # 所有设备查询完成后统一导出为CSV $wifiDriverInfo | Export-Csv -Path "C:\WiFiDriverVersions.csv" -NoTypeInformation -Encoding UTF8
补充说明
- 你可以自行修改
Export-Csv的-Path参数为你需要的CSV保存路径 -NoTypeInformation参数会去掉CSV开头多余的类型说明行,-Encoding UTF8保证中文设备名不会乱码
内容的提问来源于stack exchange,提问作者Khalifa96
相关产品推荐
相关产品推荐

