vSphere–VMware PowerCLI

1.概览

VMware PowerCLI是基于Windows PowerShell构建的命令行和脚本编制工具,提供600多个cmdlet,用于管理和自动化vSphere,vCloud,vRealize Operations Manager,vSAN,NSX-T,AWS上的VMware Cloud和VMware Horizon环境。

2.安装

2.1在线安装(网络环境好可以用)

打开PowerShell,输入

查找模块
Find-Module -Name VMware.PowerCLI

安装模块
Install-Module -Name VMware.PowerCLI -Scope CurrentUser

如果您希望它可供计算机的所有用户使用,则您的PowerShell会话必须以管理员身份运行,并且将通过将Scope参数更改为AllUsers,为所有用户自动安装PowerCLI。

2.2离线安装

  1. 下载离线zip:https://code.vmware.com/web/tool/12.2.0/vmware-powercli
  2. win+R运行,输入powershell,输入以下命令显示powercli模块可以提取的路径
    $env:PSModulePath
  3. 将压缩包解压到ps模块目录下
    C:\Windows\System32\WindowsPowerShell\v1.0\Modules
  4. 导入模块
    Get-ChildItem -Path ‘C:\Program Files\WindowsPowerShell\Modules’ -Recurse | Unblock-File
    Import-Module VMware.PowerCLI
  5. 确认是否安装成功
    Get-Module VMware* -ListAvailable


注:

导入报错:Import-Module : 无法加载文件 C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\VMware.VimAutomation.Sdk\VMware.VimAutomation.Sdk.psm1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:
/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

可能是Win10新版本中PowerShell的Execution Policies为Undefined,较严格,修改一下就好。

执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 修改后,再次 Import-Module VMware.PowerCLI 导入即可。

3.使用

3.1预操作

以下两条执行一次以后就不用了,不然老出提示。

关闭CEIP( Customer Experience Improvement Program 客户体验改进计划)

Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false

忽略证书验证

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore

3.2操作

功能

命令

连接VC

Connect-VIServer -Protocol https -User ‘administrator@vsphere.local’ -Password ‘yourpass’ -Server 192.168.x.x

获取主机

Get-VMHost

获取虚拟机

Get-VM

启用主机ssh服务

Get-VMHost ‘主机名’ | Get-VMHostService | Where { $_.Key -eq “TSM-SSH” } | Start-VMHostService

停止主机服务

Get-VMHost ‘主机名’ | Get-VMHostService | Where { $_.Key -eq “vpxa” } | Stop-VMHostService

获取资源池中所有虚拟机的电源状态

$respool = Get-ResourcePool ResourcePool

Get-VM -Location $respool | Select-Object Name, PowerState

开启虚拟机

Get-VM VM | Start-VM

Start-VM VM

关闭操作系统

Stop-VMGuest VM

关闭虚拟机电源

Stop-VM VM

在宿主机间移动虚拟机

Get-VM -Name VM -Location Host01 | Move-VM –Destination Host02

将独立的宿主机加入vCenter

Get-VMHost

Add-VMHost -Name Host -Location (Get-Datacenter DC) -User root -Password pass

4.附录

模块名

功能

VMware.PowerCLI

其他模块的基础模块,确保安装、升级、卸载PowerCLI时将所有模块作为一个整体。

VMware.VimAutomation.Core

最常用的模块,提供自动化管理vSphere环境的命令行。如创建删除VM、快照等。

VMware.VimAutomation.Common

此模块没有任何命令,只为其他模块提供通用功能

VMware.VimAutomation.Sdk

此模块没有任何命令,只为其他模块提供通用功能

VMware.VimAutomation.Vds

提供管理分布式交换机和端口组的命令。

VMware.VimAutomation.Cis.Core

提供管理Automation SDK server的命令。

VMware.VimAutomation.Storage

提供管理存储的命令行

VMware.VimAutomation.StorageUtility

提供管理存储的脚本工具。

VMware.VimAutomation.License

Get-LicenseDataManager 管理License组件

VMware.ImageBuilder

管理Esx软件仓库depots, image profiles,VIBs的模块

VMware.DeployAutomation

针对物理host主机的VMware Auto Deploy的管理接口。

VMware.VimAutomation.Cloud

vCloud Director相关的命令行。

VMware.VumAutomation

vSphere Update Manager的相关命令行。

VMware.VimAutomation.vROps

vRealize Operations Manager的相关命令行。

VMware.VimAutomation.Srm

VMware Site Recovery Manager的管理命令行。

VMware.VimAutomation.HorizonView

VMware Horizon 命令行

VMware.VimAutomation.Nsxt

提供管理NSX-T servers的命令行。

VMware.VimAutomation.Vmc

管理VMware Cloud on AWS的命令行。