虚拟交换机怎么使用 PowerShell 批量管理虚拟交换机配置

阿丽同学_6035

阿丽同学_6035

2026-10-22

644人浏览

原创

powershell批量管理虚拟交换机需用new-vmswitch、get-vmswitch、set-vmswitch和remove-vmswitch四命令,以管理员身份运行,禁止直接删改正在使用的交换机。

powershell 批量管理虚拟交换机配置,核心是用 new-vmswitch、get-vmswitch、set-vmswitch 和 remove-vmswitch 这四个命令统一操作,适用于创建、查询、修改和清理多个交换机。所有操作必须以管理员身份运行,且不支持对正在被虚拟机使用的交换机直接删除或重命名。

批量创建虚拟交换机

适合首次部署或标准化环境初始化。可一次定义多个交换机类型(External、Internal、Private),并自动处理网卡绑定与共享选项:

  • 创建外部交换机并允许主机共享: New-VMSwitch -Name "Prod-External" -NetAdapterName "Ethernet" -AllowManagementOS $true -SwitchType External
  • 批量建多个内部交换机(如按业务线): $switches = @("Dev-Internal", "Test-Internal", "CI-Internal"); $switches | ForEach-Object { New-VMSwitch -Name $_ -SwitchType Internal }
  • 注意:-AllowManagementOS $true 会临时中断主机网络,建议在维护窗口执行;若省略该参数,主机将无法通过此交换机通信。

批量查询与筛选交换机信息

用于资产盘点、合规检查或为后续配置提供输入。可按类型、名称模式或是否启用管理共享进行过滤:

Windows-Android_SSH_Remote_Control
Windows-Android_SSH_Remote_Control

通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。

下载
  • 列出所有外部交换机及其网卡绑定状态: Get-VMSwitch | Where-Object {$_.SwitchType -eq 'External'} | Select-Object Name, NetAdapterInterfaceDescription, AllowManagementOS
  • 导出全部交换机基础信息到 CSV: Get-VMSwitch | Select-Object Name, SwitchType, AllowManagementOS, IovEnabled | Export-Csv "C:\switch-report.csv" -NoTypeInformation
  • 检查是否存在未被任何 VM 使用的闲置交换机(需配合 Get-VMNetworkAdapter 关联分析): $usedSwitches = Get-VM | Get-VMNetworkAdapter | Select-Object -ExpandProperty SwitchName -Unique; Get-VMSwitch | Where-Object {$_.Name -notin $usedSwitches}

批量修改交换机属性

目前 PowerShell 支持批量调整的配置项有限,主要集中在 SR-IOV 和 IOV 相关设置。其他如名称、类型、绑定网卡等不可更改,需删后重建:

  • 为所有外部交换机启用 SR-IOV(需硬件支持): Get-VMSwitch | Where-Object {$_.SwitchType -eq 'External'} | Set-VMSwitch -IovEnabled $true
  • 禁用某类交换机的嵌套虚拟化转发(仅第2代VM有效): Get-VMSwitch -Name "*Test*" | Set-VMSwitch -EnableEmbeddedTeaming $false
  • 注意:Set-VMSwitch 不支持修改 -NetAdapterName 或 -AllowManagementOS,若需调整,应先 Remove-VMSwitch 再重建。

批量清理未使用交换机

避免配置冗余和安全风险。关键逻辑是确认无 VM 正在使用,再执行删除:

  • 安全删除名称含 “Temp” 且未被任何 VM 引用的交换机: $tempSwitches = Get-VMSwitch -Name "*Temp*"; foreach ($s in $tempSwitches) { if (-not (Get-VM | Get-VMNetworkAdapter | Where-Object {$_.SwitchName -eq $s.Name})) { Remove-VMSwitch -Name $s.Name -Force } }
  • 删除前建议先导出待删列表验证: Get-VMSwitch -Name "*Old*" | Select-Object Name, SwitchType, @{n='UsedByVM';e={@($(Get-VM | Get-VMNetworkAdapter | Where-Object {$_.SwitchName -eq $_.Name})).Count}} | Where-Object {$_.UsedByVM -eq 0}
  • 删除操作不可逆,-Force 参数跳过确认提示,生产环境务必先人工核对。

相关专题

更多
虚拟化软件介绍
虚拟化软件介绍

虚拟化软件有VMware、VirtualBox、Hyper-V、Parallels Desktop、Oracle VirtualBox等。想了解更多虚拟化的相关内容,可以阅读本专题下面的文章。

2023.12.20

9179

8

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

剧云故事大纲与分场规划教程
剧云故事大纲与分场规划教程

本专题讲解剧云梗概与多级大纲功能,覆盖全局、分集、分场结构生成,以及主线冲突、剧情节点和场次顺序调整。

2026.10.22

0

15

VibeKnow PPT讲解视频教程汇总
VibeKnow PPT讲解视频教程汇总

本专题介绍VibeKnow PPT讲解模式的素材准备、旁白生成、页面节奏、画面呈现与导出设置,适合课程和培训场景。

2026.10.22

0

16

VibeKnow PDF转视频教程合集
VibeKnow PDF转视频教程合集

本专题围绕VibeKnow的PDF转视频功能,讲解文件准备、内容解析、脚本生成、重点可视化及配音字幕检查方法。

2026.10.22

0

12

二狗PPT模板与视觉设计
二狗PPT模板与视觉设计

本专题介绍二狗PPT的职场模板、主题风格与页面版式,覆盖模板切换、色彩选择、内容匹配和正式汇报场景下的视觉优化方法。

2026.10.22

0

13

php漏洞修复方法
php漏洞修复方法

PHP漏洞聚合专题,持续整理PHP最新高危漏洞、CVE安全预警、受影响版本、自查命令及修复方案,覆盖PHP-FPM、Docker、Ubuntu与Linux服务器环境,帮助开发者快速完成漏洞排查、版本升级和安全加固。

2026.10.22

20

31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习