Powercli批量修改分布式交换机端口组
背景
需求:
- 批量修改虚拟机的分布式端口组
解决方式一:
- 三条命令解决:先获取目标虚拟机、获取目标端口组、修改虚拟机端口组、检查虚拟机状态。
$vm = Get-VM -Name <虚拟机名称>
$portGroup = Get-VirtualPortGroup -Name <端口组名称>
Get-NetworkAdapter -VM $vm | Set-NetworkAdapter -NetworkName $portGroup
Get-NetworkAdapter -VM $vm
解决方式二:
- 使用管道符连接多条命令:获得具体某个数据中心的名叫10.42.40.x的虚拟机、获取这些虚拟机的网卡、修改这些网卡为新的配置。
Get-VM -Location Datacenter-xxx-xxx -name 10.42.40.*|Get-NetworkAdapter|Set-NetworkAdapter -NetworkName "DPortGroup-xxxxxx-10.42.40.x (1)"|ft -au
实际操作流程(方式一)
实操环境
因为调整物理机资源,部分esxi主机加入到新的vcenter中,导入分布式交换机后出现一些问题,需要调整部分虚拟机网络:
三台名叫10.43.10.78-K8SConsul-Czm01的虚拟机需要修改分布式交换机端口组,
修改前:DPortGroup-xxxx-10.43.10.x dvportgroup-285
修改后:DPortGroup-xxxx-10.43.10.x (1) dvportgroup-15232
1.获取目标虚拟机
获取目标虚拟机,设为变量$vm
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> get-vm -name *K8ScONSUL*|Get-NetworkAdapterName Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ---------
Network adapter 1 Vmxnet3 dvportgroup-285 00:50:56:b6:xx:ee True
Network adapter 1 Vmxnet3 dvportgroup-285 00:50:56:b6:xx:76 True
Network adapter 1 Vmxnet3 dvportgroup-285 00:50:56:b6:xx:ba True
Network adapter 1 Vmxnet3 dvportgroup-285 00:50:56:b6:xx:3f TruePS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $vm = Get-VM -Name *k8sconsul-c*
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $vmName PowerState Num CPUs MemoryGB
---- ---------- -------- --------
10.43.10.79-K8SCo... PoweredOn 4 8.000
10.43.10.78-K8SCo... PoweredOn 4 8.000
10.43.10.80-K8SCo... PoweredOn 4 8.000
2.获取目标端口组
获取目标端口组,设为变量$portGroup
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-VirtualPortGroup|ft -auName Key VLanId PortBinding NumPorts
---- --- ------ ----------- --------DPortGroup-xxxx-10.43.10.x (1) dvportgroup-15232 Static 48
DPortGroup-xxxx-10.43.10.x dvportgroup-285 Static 48PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $portGroup = Get-VirtualPortGroup -name "DPortGroup-xxxx-10.43.10.x (1)"
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $portGroupName Key VLanId PortBinding NumPorts
---- --- ------ ----------- --------
DPortGroup-xxxx... dvportgroup-15232 Static 48
3.修改虚拟机配置:
以先前两个变量($vm和$portGroup)为命令操作对象,将目标虚拟机网络适配器,修改改为使用目标端口组。
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $vm Name PowerState Num CPUs MemoryGB ---- ---------- -------- -------- 10.43.10.79-K8SCo... PoweredOn 4 8.000 10.43.10.78-K8SCo... PoweredOn 4 8.000 10.43.10.80-K8SCo... PoweredOn 4 8.000
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> $portGroupName Key VLanId PortBinding NumPorts
---- --- ------ ----------- --------
DPortGroup-xxxx... dvportgroup-15232 Static 48
执行以下命令修改虚拟机的配置,修改端口组。
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-NetworkAdapter -VM $vm | Set-NetworkAdapter -NetworkName $portGroup确认
是否确实要执行此操作?
正在目标“Network adapter 1”上执行操作“Setting NetworkName: DPortGroup-VID_310-TEST.测试区-10.43.10.x (1)”。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“Y”): a
警告: Specifying a distributed port group name as network name is no longer supported. Use the -Portgroup parameter.Name Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ---------
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:ee True
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:3f True
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:76 True
4.检查虚拟机状态
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-NetworkAdapter -VM $vmName Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ---------
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:ee True
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:3f True
Network adapter 1 Vmxnet3 DPortGroup-x... 00:50:56:b6:xx:76 TruePS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-NetworkAdapter -VM $vm|ft -auName Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ----------------
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.43.10.x (1) 00:50:56:b6:xx:ee True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.43.10.x (1) 00:50:56:b6:xx:3f True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.43.10.x (1) 00:50:56:b6:xx:76 True
分布式端口组修改成功。
参考截图



实际操作流程(方式二)
若觉得设置变量太麻烦,也可直接通过管道符操作,将多条命令连续执行进行操作。
此处不需要以变量为对象进行操作。
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-VM -Location Datacenter-xxx-xxx -name 10.42.40.*|Get-NetworkAdapter|ft -au
执行结果参考如下:
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-VM -Location Datacenter-xxx-xxx -name 10.42.40.*|Get-NetworkAdapter|ft -auName Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ----------------
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:1c True
Network adapter 2 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:2b True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:60:76 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:80 True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:d5:67 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:22 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:6e True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:c3:4f True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:ae True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:d2:4e True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:7a True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:a4:e3 True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:95:f5 True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:2b:fc True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:18:39 True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:3c:09 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:89 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:b6:xx:a3 True
Network adapter 1 Vmxnet3 dvportgroup-269 00:50:56:b6:68:91 True
Network adapter 1 Vmxnet3 DPortGroup-xxxx-10.42.40.x (1) 00:50:56:8a:xx:59 True
PS C:\Users\Czm\AppData\Local\Microsoft\WindowsApps> Get-VM -Location Datacenter-xxx-xxx -name 10.42.40.*|Get-NetworkAdapter|Set-NetworkAdapter -NetworkName "DPortGroup-xxxxxx-10.42.40.x (1)"|ft -au
确认
是否确实要执行此操作?
正在目标“Network adapter 1”上执行操作“Setting NetworkName: DPortGroup-xxxxx-10.42.40.x (1)”。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“Y”): aName Type NetworkName MacAddress WakeOnLanEnabled
---- ---- ----------- ---------- ----------------
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:1c True
Network adapter 2 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:2b True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:76 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:80 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:67 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:22 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:6e True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:4f True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:ae True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:4e True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:7a True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:e3 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:f5 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:fc True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:39 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:09 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:89 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:a3 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:b6:xx:91 True
Network adapter 1 Vmxnet3 DPortGroup-xxxxx-10.42.40.x (1) 00:50:56:8a:xx:59 True
完成
相关文章:
Powercli批量修改分布式交换机端口组
背景 需求: 批量修改虚拟机的分布式端口组 解决方式一: 三条命令解决:先获取目标虚拟机、获取目标端口组、修改虚拟机端口组、检查虚拟机状态。 $vm Get-VM -Name <虚拟机名称> $portGroup Get-VirtualPortGroup -Name <端口…...
ZKP10.2 Efficient Recursion via Statement Folding (Nova)
ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 10: Recursive SNARKs, Aggregation and Accumulation (Dan Boneh) 10.3 Efficient Recursion via Statement Folding: Nova, Supernova, and generalizations The difficulty with full recursion Prover P needs to build a…...
高浓度cod废水怎么处理
高浓度COD废水的处理方法主要有物理法、生物法和化学法。 物理法:一般通过加入絮凝剂,利用絮凝剂的吸附、电中和等作用将水中的颗粒物结团沉降下去,从而达到去除部分来自颗粒物的COD。此方法基本上只对浓度上万、上千的COD起作用,…...
Docker学习——②
文章目录 1、Docker是什么1.1 Docker本质1.2 Docker的引擎迭代1.3 Docker和虚拟机的区别1.4 Docker 为什么比虚拟机资源利用率高,启动快?1.5 Docker 和 JVM 虚拟化的区别? 2、Docker架构3、Docker生态3.1 新时代软件诉求3.2 Docker 解决方案 …...
VSCode 设置平滑光标
1.点击左下角的设置按钮,再点击设置 2.点击文本编辑器,点击光标,勾选控制是否启用平滑插入动画。 3.随便打开一个文件,上下左右移动光标时,会发现非常的流畅。 原创作者:吴小糖 创作时间:2023…...
Spring、SpringMVC、Mybatis
一.Spring基础 1.Spring 框架是什么 Spring 是一款开源的轻量级 Java 开发框架,我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,例如,Spring core、Spring JDBC、Spring MVC 等,使用这些模块可…...
Kubernetes 架构
Kubernetes 架构 Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理 / 虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提…...
python---数据类型(列表)
组织列表 使用sort()方法对列表永久性排序 按照字母顺序排序: motorcycles [chunlan, yamaha, dayun, jianshe]motorcycles.sort()print(motorcycles) 字母倒序: motorcycles [chunlan, yamaha, dayun, jianshe]motorcycles.sort(reverseTrue)pri…...
CentOS 7升级gcc/G++版本
Centos 7默认gcc版本为4.8,有时需要更高版本,只需要执行几条命令,无需下载源码编译编译。 安装centos-release-scl sudo yum install centos-release-scl 安装devtoolset sudo yum install devtoolset-8-gcc* 注意,如果想安装…...
uni-app开发微信公众号 H5打开扫一扫功能
<!--引入微信sdk--> <script src"http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>let url location.href.split(#)[0];newApi.getSignature({ url }).then(res > {if (res.code 0) {this.sdk.config({beta: true, // 必须这么写&a…...
k8s-服务网格实战-入门Istio
istio-01.png 背景 终于进入大家都比较感兴趣的服务网格系列了,在前面已经讲解了: 如何部署应用到 kubernetes服务之间如何调用如何通过域名访问我们的服务如何使用 kubernetes 自带的配置 ConfigMap 基本上已经够我们开发一般规模的 web 应用了…...
金属压铸件自动化3D全尺寸测量设备自动外观检测三维检测-CASAIM
铸造作为现代装备制造工业的基础共性技术之一,铸件产品既是工业制造产品,也是大型机械的重要组成部分,被广泛运用在航空航天、工业船舶、机械电子和交通运输等行业。 铸件形状复杂,一般的三坐标或者卡尺圆规等工具难以获取多特征…...
Android笔记(十):结合Navigation组件实现Compose界面的导航
在Android笔记(七)搭建Android JetPack Compose组件中Scaffold脚手架 一文中通过定义一个导航的函数来实现不同界面的切换。如果没有传递任何参数,这样的导航处理也是可以接受的,处理方式也非常简单。但是,如果考虑到不…...
linux内核tcp配置--断网后连接卡住
通过隐藏通信应用程序中的临时网络中断,TCP 可以在偶尔不可靠的网络上提供可靠的通信。在通知发件人任何问题之前,您的操作系统将多次重发丢失的消息。大多数 Linux 发行版默认将任何丢失的数据包重传 15 次。重新传输以指数方式回退,因此这 …...
Apache Pulsar 在腾讯云上的最佳实践
导语 由 StreamNative 主办的 Pulsar Meetup Beijing 2023 在2023年10月14日完美落幕,本次活动大咖云集,来自腾讯、滴滴、华为、智联招聘、RisingWave 和 StreamNative 的行业专家们一起,深入探讨 Pulsar 在生产环境中的最佳应用实践&#x…...
VMware 虚拟机安装 CentOS 7
CentOS 7 1. 下载CentOS 7 iso镜像 Index of /centos/7.9.2009/isos/x86_64/ 2. Vmware安装CentOS 7 安装教程: 超详细VMware CentOS7(最小安装)安装教程_虚拟机最小化安装-CSDN博客 【精选】VMware 安装 Centos7 详细过程_vm虚拟机安装centos7_expectation Fu…...
UnityAI——个体AI角色的操控行为脚本
注:本文用到了前文所用的基类UnityAI——操控行为编程的主要基类-CSDN博客 在一些游戏中,可能会遇到想让AI角色追逐或者避开玩家的情况。 如在飞机模拟游戏中,让导弹跟踪和进攻玩家或玩家的飞行器。这种情况下,可以运用本节介绍…...
ssh登录界面变成vim提示,进不去系统
是ubuntu系统 使用远程连接root,进去后发现界面变成vim编辑器的介绍界面了 使用普通用户登录 查询用户的登录shell是不是有问题 sudo vim /etc/passwd 发现用户shell变成了vim编辑器 修改为/bin/bash就可以正常登录了 重新登录测试就正常了...
虹科示波器 | 汽车免拆检修 | 2012 款上汽大众帕萨特车 发动机偶尔无法起动
一、故障现象 一辆2012款上汽大众帕萨特车,搭载CFB发动机,累计行驶里程约为12万km。车主反映,将点火开关置于起动挡,偶尔只能听到“咔哒”一声,起动机没有反应,类似蓄电池亏电时起动发动机的现象。为此&…...
UE5.0.3版本 像素流送 Pixel Streaming
目录 0 引言1 准备工作1.1 下载Node.js1.2 下载 PixelStreaming(非必须) 2 快速入门2.1 打包工程2.2 启动信令服务器2.3 启动工程2.4 打开网页 3 总结 🙋♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏&#x…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...
spring boot使用HttpServletResponse实现sse后端流式输出消息
1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...
Spring事务传播机制有哪些?
导语: Spring事务传播机制是后端面试中的必考知识点,特别容易出现在“项目细节挖掘”阶段。面试官通过它来判断你是否真正理解事务控制的本质与异常传播机制。本文将从实战与源码角度出发,全面剖析Spring事务传播机制,帮助你答得有…...
Vue.js教学第二十一章:vue实战项目二,个人博客搭建
基于 Vue 的个人博客网站搭建 摘要: 随着前端技术的不断发展,Vue 作为一种轻量级、高效的前端框架,为个人博客网站的搭建提供了极大的便利。本文详细介绍了基于 Vue 搭建个人博客网站的全过程,包括项目背景、技术选型、项目架构设计、功能模块实现、性能优化与测试等方面。…...
