VMWare vSphere 7.0.3环境通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置

news2024/9/20 18:30:42

为避免网络IP冲突,虚拟机模板的网卡设置是连接中断、开机连接中断的,在通过PowerCLI批量发布虚拟机后,本文尝试PowerCLI通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置。

一、PowerCLI环境搭建

详见前文

VMWare vSphere 7.0.3环境通过PowerCLI批量发布openeuler22.03LTS系统虚拟机

二、 用文本编辑器编写batcon-vms.csv文件

如下示例文件:

Name
GZGL_192.168.122.6_euler
GZGL_192.168.122.7_euler
GZGL_192.168.122.8_euler
GZGL_192.168.122.9_euler
GZGL_192.168.122.10_euler
GZGL_192.168.122.17_euler
GZGL_192.168.122.18_euler
GZGL_192.168.122.19_euler
GZGL_192.168.122.20_euler
GZGL_192.168.122.26_euler
GZGL_192.168.122.27_euler
GZGL_192.168.122.28_euler

三、编写 batcon-vms.ps1文件

#filename:batcon-vms.ps1
##__author__='daigjianbing'

$vcenterip = "your vCenter Ip"
$vcenteruser = "administrator@vsphere.local"
#获取密码,避免明文保存
$vcenterpw  = Read-Host "Please enter your password of the vcenter: $vcenterip  username:  $vcenteruser"

#连接服务器
Write-Host "Connect-VIServer -Protocol https -User $vcenteruser -Password $vcenterpw -Server $vcenterip"
#测试下句前面加#,实作时去掉
Connect-VIServer -Protocol https -User $vcenteruser -Password $vcenterpw -Server $vcenterip

#虚拟机清单文件为脚本同目录下的“batcon-vms.csv”文件
$vms_listfile = ".\batcon-vms.csv"
$vms = import-csv $vms_listfile
foreach ($vm in $vms)
    {
    #读取配置文件中的相关配置
    $vmname = $vm.Name
    
    # 设置网络适配器的期望连接状态,$true表示连接,$false表示断开
    $desiredState = $true
    
    # 设置网络适配器的期望开机连接状态,$true表示开机连接,$false表示开机不连接
    $desiredStartState = $true
    
    # 获取当前虚拟机对象
    $vm = Get-VM -Name $vmname
    
    # 获取当前虚拟机的所有网络适配器
    #Get-NetworkAdapter -VM $vm 
    
    # 获取当前虚拟机的'Network adapter 1'网络适配器对象
    $networkAdapter = Get-NetworkAdapter -VM $vm | Where-Object { $_.Name -eq 'Network adapter 1' }
    Write-Host "The Network adapter 1:$networkAdapter"
    
    # 设置网络适配器的连接状态和开机连接状态
    Set-NetworkAdapter -NetworkAdapter $networkAdapter -Connected:$true -StartConnected:$true -Confirm:$false

    
    # 获取当前虚拟机的所有网络适配器
    Get-NetworkAdapter -VM $vm 
    
    }
#断开vCenter连接
Disconnect-VIServer -Server $vcenterip -Confirm:$false

 四、实际测试

在powershell中执行.\batcon-vms.ps1

PS D:\vmware\批量创建虚拟机脚本> .\batcon-vms.ps1
Please enter your password of the vcenter: 192.168.188.82  username:  administrat
or@vsphere.local: mypasswd
Connect-VIServer -Protocol https -User administrator@vsphere.local -Password mypasswd -Server 192.168.188.82

Name                           Port  User
----                           ----  ----
192.168.188.82                 443   VSPHERE.LOCAL\Administrator

MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : NotConnected, GuestControl, NoStartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1

The Network adapter 1:Network adapter 1

MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : Connected, GuestControl, StartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1


MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : Connected, GuestControl, StartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1
....

可以看到相应虚拟机的网卡连接状态已由“NotConnected, GuestControl, NoStartConnected”设置为“Connected, GuestControl, StartConnected”,即当前连接,开机连接。

登录vCenter进行验证:

 确实OK了。

附:以“Set-NetworkAdapter”指令为例,PowerCLI通过Get-Help获取指令帮助及获取指令样例的方法

PS D:\vmware\批量创建虚拟机脚本> Get-Help Set-NetworkAdapter

名称
    Set-NetworkAdapter

摘要
    This cmdlet modifies the configuration of the virtual network adapter.


语法
    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> [-Connected <Boolea
    n>] [-MacAddress <String>] [-NetworkName <String>] [-RunAsync] [-Server <VI
    Server[]>] [-StartConnected <Boolean>] [-Type <VirtualNetworkAdapterType>]
    [-WakeOnLan <Boolean>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> [-Connected <Boolea
    n>] -DistributedSwitch <DistributedSwitch> [-MacAddress <String>] -PortId <
    String> [-RunAsync] [-Server <VIServer[]>] [-StartConnected <Boolean>] [-Ty
    pe <VirtualNetworkAdapterType>] [-WakeOnLan <Boolean>] [-Confirm] [-WhatIf]
     [<CommonParameters>]

    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> -Portgroup <Virtual
    PortGroupBase> [-RunAsync] [-Server <VIServer[]>] [-Confirm] [-WhatIf] [<Co
    mmonParameters>]


说明
    This cmdlet modifies the configuration of the virtual network adapter. You
    can change the MAC address and the network name, and to configure the Conne
    cted, StartConnected, and WakeOnLan properties of the adapter.


相关链接
    Online Version: http://developer.vmware.com/docs/powercli/latest/vmware.vim
    automation.core/commands/set-networkadapter
    Get-NetworkAdapter
    New-NetworkAdapter
    Remove-NetworkAdapter

备注
    若要查看示例,请键入: "get-help Set-NetworkAdapter -examples".
    有关详细信息,请键入: "get-help Set-NetworkAdapter -detailed".
    若要获取技术信息,请键入: "get-help Set-NetworkAdapter -full".
    有关在线帮助,请键入: "get-help Set-NetworkAdapter -online"


PS D:\vmware\批量创建虚拟机脚本> get-help Set-NetworkAdapter -examples


名称
    Set-NetworkAdapter

摘要
    This cmdlet modifies the configuration of the virtual network adapter.


    -------------------------- Example 1 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -MacAddress '00:50:56:a
    1:00:00' -WakeOnLan:$true

    Configures the  Mac address and the WakeOnLan setting of a virtual network
    adapter.
    -------------------------- Example 2 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -Type EnhancedVmxnet

    Sets the type of the virtual network adapter.
    -------------------------- Example 3 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -Connected:$true

    Sets the connection state of the virtual network adapter.
    -------------------------- Example 4 --------------------------

    $myNetworkAdapters = Get-VM | Get-NetworkAdapter -Name "Network adapter 1"
    $myVDPortGroup = Get-VDPortgroup -Name MyVDPortGroup
    Set-NetworkAdapter -NetworkAdapter $myNetworkAdapters -Portgroup $myVDPortG
    roup

    Retrieves all network adapters named "Network adapter 1" from all virtual m
    achines and connects them to the specified distributed port group.
    -------------------------- Example 5 --------------------------

    $myNetworkAdapter = Get-VM -Name MyVM | Get-NetworkAdapter -Name "Network a
    dapter 1"
    $myVDSwitch = Get-VDSwitch -Name MyVDSwitch
    Set-NetworkAdapter -NetworkAdapter $myNetworkAdapter -DistributedSwitch $My
    VDSwitch -PortId 100

    Retrieves the network adapter named "Network adapter 1" added to the specif
    ied virtual machine and connects it to the specified port on the specified
    distributed switch.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/824940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL 在CentOS下安装

yum安装 1、yum源安装 yum install mariadb-server2、启动MySQL服务 systemctl start mariadb3、查看运行状态 systemctl status mariadb4、设置初始密码 mysql -u rootuse mysql;update user set passwordpassword("root")where userroot;flush privileges;e…

AI为图像构建测谎仪

互联网上充斥着有趣的假照片——从汽车上飞驰的鲨鱼和奶牛到令人眼花缭乱的名人混搭。然而&#xff0c;卷积神经网络&#xff08;CNNs&#xff09;生成的超现实图像和视频赝品绝非笑料——事实上&#xff0c;它们可能非常危险。Deepfake色情在2018年抬头&#xff0c;世界领导人…

DataSphere Studio- 1.1.1 安装部署(自动化脚本)

DSSLinkis Ansible一键安装脚本 DSS1.1.1 & Linkis 1.3.0 Ansible 一键部署脚本 作者&#xff1a;wubolive Q Q&#xff1a;1049635685 邮箱&#xff1a;wubolivefoxmai.com Github&#xff1a;https://github.com/wubolive/dss-linkis-ansible 一、简介 为解决繁琐…

Linux - 进程概念(进程状态、优先级)

1.进程状态 操作系统中进程有多种状态模型 三态模型 进程状态分为 就绪态&#xff0c;执行态&#xff0c;阻塞态。 就绪(Ready)状态&#xff1a;指进程已处于准备好运行的状态&#xff0c;即进程已分配到除CPU以外的所有必要资源后&#xff0c;只要再获得CPU&#xff0c;便可立…

分布式服务高可用实现:复制 | 京东物流技术团队

1. 为什么需要复制 我们可以考虑如下问题&#xff1a; 当数据量、读取或写入负载已经超过了当前服务器的处理能力&#xff0c;如何实现负载均衡&#xff1f; 希望在单台服务器出现故障时仍能继续工作&#xff0c;这该如何实现&#xff1f; 当服务的用户遍布全球&#xff0c;…

迅为iTOP-RK3568开发板是怎么样的呢

迅为iTOP-RK3568开发板是怎么样的呢 CPU方面&#xff1a;iTOP-3568开发板采用瑞芯微RK3568处理器&#xff0c;内部集成了四核64位Cortex-A55处理器。主频高达2.0Ghz&#xff0c;RK809动态调频。集成了双核心架构GPU&#xff0c;ARM G52 2EE、支持OpenGLES1.1/2.0/32OpenCL 2.0…

Simulink仿真模块 - Saturation

目录 说明 实例 模块特性 Saturation将输入信号限制在饱和上界和下界值之间 在仿真库中的位置为:Simulink / 常用模块Simulink / Discontinuities模型为: 说明 Saturation 模块产生输出信号,该信号是在饱和上界和下界值之间的输入信号值。上界和下界由参数 Upper limit 和…

今年嵌入式行情怎么样?

我不了解其它行业可能描述有些片面&#xff0c;但总的来说&#xff0c;我对嵌入式是很看好的&#xff0c;因为你可以感受到你能实际的做出产品而不是类似前端和互联网只是数字数据。 并且嵌入式的学习过程充满乐趣&#xff0c;你可以接触到从沙子到开关管到逻辑门到芯片架构到…

C# Blazor 学习笔记(6):热重置问题解决

文章目录 前言热重置问题描述解决方法演示 总结 前言 我最近在使用Blazor的时候&#xff0c;使用了BootstrapBlazor&#xff08;以下简称BB&#xff09;创建模板的时候&#xff0c;发现热重置无效。经过了一上午的折腾&#xff0c;我终于解决了这个问题。 热重置 问题描述 …

【深度学习环境】安装anaconda、tensorflow、pycharm

目录 1.安装anaconda 2.安装tensorflow-gpu 3.安装pycharm 4.VNC操作 5.安装Pytorch PS: linux下常见的操作&#xff1a; 1.Linux下强制关闭程序&#xff1a; 2.导出环境 2.1.pip导出 2.2.conda导出 2.3.其他 3.windows下的环境安装 & pycharm远程配置 4.bash…

最新版本JDK安装配置及多版本JDK切换

一、JDK安装 1、先说最新的JDK版本&#xff0c;一般指的是JDK 9以及其后的版本&#xff1b; 2、JDK安装分为安装版和免安装版。免安装版必须要配置环境变量才能使用&#xff0c;环境变量配置后面介绍&#xff1b; 3、安装版&#xff1a;最新版本的JDK安装后不需要再配置环境…

SQL语句嵌套查询

嵌套查询的意思是&#xff0c;一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中&#xff0c;称为嵌套查询。其中外层查询也称为父查询&#xff0c;主查询。内层查询也称子查询&#xff0c;从查询。 嵌套查询的工作方式是&#xff1a;先处理内查…

Cpp学习——动态内存管理

目录 一&#xff0c;new 1.malloc,realloc,calloc的使用不便之处 2.new的好处 3.opreator new 二&#xff0c;delete 1.为什么要有delete? 2.为什么要匹配使用&#xff1f; 一&#xff0c;new 1.malloc,realloc,calloc的使用不便之处 在C语言中&#xff0c;为了申请堆上…

深度学习(33)——CycleGAN(2)

深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09; 完整项目在在这里&#xff1a;欢迎造访 文章目录 深度学习&#xff08;33&#xff09;——CycleGAN&#xff08;2&#xff09;1. Generator2. Discriminator3. fake pool4. loss定义5. 模型参数量6…

无涯教程-Lua - 调试语句

Lua提供了一个调试库&#xff0c;该库提供了所有原始函数供无涯教程创建自己的调试器。即使没有内置的Lua调试器&#xff0c;也有许多针对Lua的调试器&#xff0c;这些调试器由各种开发人员创建&#xff0c;其中许多开源。 下表列出了Lua调试库中可用的函数及其用法。 Sr.No.…

【Spring Boot】请求参数传json对象,后端采用(map)CRUD案例(101)

请求参数传json对象&#xff0c;后端采用&#xff08;map&#xff09;接受的前提条件&#xff1a; 1.Spring Boot 的控制层接受参数采用&#xff1a;RequestBody 2.需要一个Json工具类&#xff0c;将json数据转成Map&#xff1b; 工具类&#xff1a;Json转Map import com.bao…

【MyBatis】MyBatis把空字符串转换成0的问题处理方案(96)

先看问题: Postman入参: MyBatis采用map循环插入: // Mapper接口层void addPar(Param(value "question") Map<String, Object> paramMap);<!-- 新增&#xff1a;参数 --><insert id"addPar" parameterType"map">INSERT IGNO…

DispatcherServlet、拦截器、处理器详解(通俗易懂)

DispatcherServlet、拦截器、处理器详解(通俗易懂) 1.DispatcherServlet ​ 想象一下你去一个大型办公楼寻找特定的办公室。你到达大厅&#xff0c;遇到一个接待员&#xff08;DispatcherServlet&#xff09;。你告诉接待员你要找的办公室&#xff08;请求的URL&#xff09;&…

iOS——Block循环引用

Capturing ‘self’ strongly in this block is likely to lead to a retain cycle 典型的循环引用 self持有了blockblock持有了self(self.name) 这样就形成了self -> block -> self的循环引用 解决办法 强弱共舞 使用 中介者模式 __weak typeof(self) weakSelf sel…