一、安装PowerCLI 模块
在线安装
优点:简单
缺点:太慢
启动PowerShell命令行,执行行如下命令
Install-Module -Name VMware.PowerCLI
输出
需要使用 NuGet 提供程序来继续操作
PowerShellGet 需要使用 NuGet 提供程序“2.8.5.201”或更高版本来与基于 NuGet 的存储库交互。必须在“C:\Program
Files\PackageManagement\ProviderAssemblies”或“C:\Users\libit\AppData\Local\PackageManagement\ProviderAssemblies”中提
供 NuGet 提供程序。也可以通过运行 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装 NuGet
提供程序。是否要让 PowerShellGet 立即安装并导入 NuGet 提供程序?
[Y] 是(Y) [N] 否(N) [S] 暂停(S) [?] 帮助 (默认值为“Y”): y
不受信任的存储库
你正在从不受信任的存储库安装模块。如果你信任该存储库,请通过运行 Set-PSRepository cmdlet 更改其 InstallationPolicy
值。是否确实要从“PSGallery”安装模块?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y
二、离线安装
先到VMware官网下载离线包,然后分几个步骤安装
https://developer.vmware.com/powercli/installation-guide
https://vdc-repo.vmware.com/vmwb-repository/dcr-public/2142f98d-f49c-4972-8f73-c2697aa744cd/37af7f1b-e6d5-47ac-9daf-7eecf86358f1/VMware-PowerCLI-13.1.0-21624340.zip
1、启动PowerShell命令行,执行行如下命令
$env:PSModulePath
将会列出几个目录
C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1
.0\Modules
找一个合适的目录,通常第一个即可,执行如下指令
c:
md C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules
start C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules
2、释放压缩包
将下载好的VMware-PowerCLI-13.1.0-21624340.zip解压出来,放到C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules目录下。
注意:释放后,Modules文件夹中会有很多目录(不是一个目录)。
3、解锁文件
cd C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules
Get-ChildItem * -Recurse | Unblock-File
三、检查PowerCLI
4、检查VMware的模块
Get-Module -Name VMware.PowerCLI -ListAvailable
如果显示如下类似结果,则表明安装正确。
目录: C:\Users\Zmrbak\Documents\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 13.1.0.... VMware.PowerCLI
5、设置本机环境
设置ps策略
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
导入VMware模块
Import-Module VMware.VimAutomation.Core
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
允许无效的https
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
三、远程设置ESXi主机
1、连接到ESXI主机
$ServerIP="192.168.251.54"
$Username="root"
$Password="MyPassword"
$Server=Connect-VIServer -Server $ServerIP -Protocol https -User $Username -Password $Password
虚拟交换机
Get-VirtualSwitch
#添加上行链路(网络)
Set-VirtualSwitch -VirtualSwitch vSwitch0 -NIC vmnic4,vmnic5
#添加虚拟交换机(数据)
New-VirtualSwitch -Name vSwitch1
#Remove-VirtualSwitch -VirtualSwitch vSwitch1 -Confirm:$false
#添加上行链路(数据)
Set-VirtualSwitch -VirtualSwitch vSwitch1 -NIC vmnic2,vmnic3
网络
#物理网卡
Get-VMHostNetworkAdapter -Physical
#VMKernel网卡
Get-VMHostNetworkAdapter -VMKernel
#主机网络
Get-VMHostNetwork
#主机网络栈
Get-VMHostNetworkStack
# 添加VMKernel网卡和端口组
New-VMHostNetworkAdapter -IP 192.168.100.54 -PortGroup IPSAN -SubnetMask 255.255.255.0 -VirtualSwitch vSwitch1
# 列出端口组
Get-VirtualPortgroup
# 列出VMKernel网卡
Get-VMHostNetworkAdapter -VMKernel
# 设置vmk1启用VMotion
Get-VMHostNetworkAdapter -VMKernel |?{$_.Name -match "vmk1"} | Set-VMHostNetworkAdapter -VMotionEnabled $true -Confirm:$false
# 设置vmk1启用Provisioning
Get-VMHostNetworkAdapter -VMKernel |where {$_.Name -eq "vmk1"} | Set-VMHostNetworkAdapter -ProvisioningEnabled:$true -Confirm:$false
# 设置vmk1禁用IPv6
Get-VMHostNetworkAdapter -VMKernel |where {$_.Name -eq "vmk1"} | Set-VMHostNetworkAdapter -IPv6Enabled:$false -Confirm:$false
端口组
Get-VirtualPortgroup
#创建端口组(IPSAN )
#New-VirtualPortGroup -Name IPSAN -VirtualSwitch vSwitch1
2、NTP设置
Get-VMHostNtpServer
Add-VMHostNtpServer -NtpServer 192.168.250.11
Get-VMHostService | ?{$_.Key -match "ntpd"} | Set-VMHostService -Policy Automatic -Confirm:$false
Get-VMHostService | ?{$_.Key -match "ntpd"} | Start-VMHostService
Get-VMHostService | ?{$_.Key -match "ptpd"} | Set-VMHostService -Policy Automatic -Confirm:$false
Get-VMHostService | ?{$_.Key -match "ptpd"} | Start-VMHostService
iSCSI适配器
$ISCSITarget="192.168.100.24"
Get-VMHostHba
Get-VMHostHba | where {$_.Type -eq "IScsi"}
#New-IScsiHbaTarget -Address $ISCSITarget -IScsiHba "vmhba64"
Get-VMHostHba | where {$_.Type -eq "IScsi"}| New-IScsiHbaTarget -Address $ISCSITarget
关闭连接
Disconnect-VIServer -Server * -Force