如何在PowerShell的Get-NetAdapter输出中添加主机名至文件?
实现远程Wi-Fi记录添加主机名的方向
完全可行,以下是具体实现思路和代码示例:
核心思路
PowerShell通过CIM远程操作返回的对象自带PSComputerName属性,该属性自动记录了远程主机的名称,直接将其加入输出字段即可,无需手动匹配对照表。
代码实现
处理多PC名称并生成结构化CSV报告
# 将逗号分隔的PC名称字符串拆分为数组 $computerNames = "PC-Name1,PC-Name2,PC-Name3" -split ',' # 获取远程Wi-Fi适配器信息,包含主机名并导出为CSV Get-NetAdapter -Name "Wi-Fi" -CimSession $computerNames -ErrorAction SilentlyContinue | Select-Object PSComputerName, Name, InterfaceDescription, ifIndex, Status, MacAddress, LinkSpeed | Export-Csv -Path "C:\WIFI\WIFI_VERIFICATION.csv" -NoTypeInformation -Force
关键细节说明
-split ',':把你的逗号分隔PC列表转换成PowerShell可识别的计算机名称数组,一次性传给-CimSession参数批量处理。PSComputerName:远程CIM命令返回对象的内置属性,自动对应当前记录的来源主机名,直接选择该字段就能在报告中显示主机信息。Export-Csv:替代Out-File生成标准CSV文件,结构化存储数据,打开后每列对应一个字段(主机名、网卡状态等),比纯文本输出更适合报告需求。-ErrorAction SilentlyContinue:避免因单个PC无法连接(离线、权限不足等)导致脚本中断,自动跳过异常主机继续处理其他设备。
如果需要自定义主机名字段的显示名称(比如把PSComputerName改成HostName),可以用计算属性调整:
Get-NetAdapter -Name "Wi-Fi" -CimSession $computerNames -ErrorAction SilentlyContinue | Select-Object @{Name='HostName'; Expression={$_.PSComputerName}}, Name, InterfaceDescription, ifIndex, Status, MacAddress, LinkSpeed | Export-Csv -Path "C:\WIFI\WIFI_VERIFICATION.csv" -NoTypeInformation -Force
内容的提问来源于stack exchange,提问作者Ken O
相关产品推荐
相关产品推荐

