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…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
