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