powershell是管理vmware、hyper-v和azure虚拟机网卡最高效的方式,支持批量定位、升级(如e1000→vmxnet3)、连接策略配置及远程信息导出,全程自动化无需手动操作。
powershell 是管理 vmware、hyper-v 和 azure 虚拟机网卡最高效的方式之一,尤其适合批量操作。核心思路是:先精准定位目标虚拟机和网卡,再统一修改类型、连接状态、网络归属或 ip 配置,全程无需手动点选界面。
批量识别并筛选待处理的网卡
无论升级网卡类型还是导出 MAC 地址,第一步都是准确识别目标适配器:
- 用 Get-NetworkAdapter -VM $vm 获取指定虚拟机所有网卡,配合 Where-Object {$_.Type -eq 'E1000'} 筛出老旧网卡
- 对 VMware 环境,可加条件 Where-Object {$_.NetworkName -like 'Prod-*'} 限定端口组范围
- 对 Windows 虚拟机(如 Hyper-V 或 Azure VM),用 Get-NetAdapter -CimSession $session 远程获取物理/虚拟网卡列表,并通过 InterfaceDescription 过滤厂商(如 Intel、VMXNET)或排除无效 MAC(00-00-00*、FF-FF-FF*)
一键批量升级网卡类型(VMware 场景)
将 E1000 批量替换为高性能 VMXNET3,必须关机操作,脚本需自动处理状态检查与重启逻辑:
- 先用 Get-VM | Where-Object {$_.PowerState -eq 'PoweredOff'} 锁定已关机虚拟机,避免中断业务
- 执行批量替换:Get-VM -Name "web-*" | Get-NetworkAdapter | Where-Object {$_.Type -eq 'E1000'} | Set-NetworkAdapter -Type VMXNET3 -Confirm:$false
- 若需保留原 MAC 地址,加上 -MacAddress $_.MacAddress 参数;若要生成回滚脚本,可在修改前用 Export-Clixml 存档原始配置
统一设置网卡连接策略
解决模板部署后网卡默认断开、IP 冲突等问题,可批量启用连接与开机连接:
- 读取 CSV 列表(如 Import-Csv .\vm-list.csv),逐台设置:Get-NetworkAdapter -VM $vm | Set-NetworkAdapter -Connected $true -StartConnected $true -Confirm:$false
- 支持按命名规则批量操作,例如只处理数据库虚拟机:Get-VM -Name "db-*" | Get-NetworkAdapter | Set-NetworkAdapter -Connected $true
- 对于 Azure VM,使用 Get-AzNetworkInterface 和 Set-AzNetworkInterface 同样可批量更新主网卡或附加 NIC 的 IP 配置和安全组关联
远程导出多台虚拟机的网卡信息
适用于资产盘点、合规审计或迁移前清点:
- 准备服务器清单文件 servers.txt,每行一个主机名或 IP
- 用 Invoke-Command 并行采集:Invoke-Command -ComputerName (Get-Content servers.txt) -ScriptBlock { Get-NetAdapter -IncludeHidden | Where-Object {$_.MacAddress} | Select Name, InterfaceDescription, MacAddress, Status } | Export-Csv nic-report.csv -NoTypeInformation
- 结果自动合并为单个 CSV,含来源主机名字段,便于追踪











