User Tools

Site Tools


vmware:esx_powercli

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vmware:esx_powercli [2021/11/18 17:41]
manu [Get IPs for VMotion interfaces]
vmware:esx_powercli [2022/09/20 22:40] (current)
manu
Line 1: Line 1:
 ====== Powercli / Vsphere Perl SDK ====== ====== Powercli / Vsphere Perl SDK ======
 +
 +https://​github.com/​voletri/​PowerCLI-1
  
 http://​www.virtu-al.net/​script-list/​ http://​www.virtu-al.net/​script-list/​
Line 264: Line 266:
 Send-MailMessage -From report@domain.com -To me@domain.com -SmtpServer mail@domain.com -Subject "​Removed $($moreThan1Month.Count) VM" -Body ($vmNames | Out-String) Send-MailMessage -From report@domain.com -To me@domain.com -SmtpServer mail@domain.com -Subject "​Removed $($moreThan1Month.Count) VM" -Body ($vmNames | Out-String)
 </​cli>​ </​cli>​
 +
 +==== List VM with RAW disks ====
 +
 +<cli prompt='>'>​
 +PS1> Get-VM | Get-HardDisk -DiskType "​RawPhysical","​RawVirtual"​ | Select Parent,​Name,​DiskType,​ScsiCanonicalName,​DeviceName | fl | Out-File –FilePath RDM-list.txt
 +</​cli>​
 +
 +===== Commands =====
 +
 +Collecting information about virtual machine hardware
 + 
 +To get a list of all the virtual machines in the inventory and their name, power state, number of CPUs, and configured memory, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-VM
 +Name PowerState Num CPUs Memory (MB)
 +---- ---------- -------- -----------
 +NW PoweredOff 1 512
 +PowerCLI PoweredOn 1 1024
 +</​cli>​
 +
 +Note: This command provides information about the version, virtual hardware attached (virtual disk, network, CD-ROM), datastore, host, High Availability restart, and isolation properties:
 +<cli prompt='>'>​
 +PS1> Get-VM windows-dc | Format-List *
 +</​cli>​
 + 
 +Collecting information about the virtual machine guest operating system
 + 
 +vSphere PowerCLI provides cmdlets to retrieve the details about the virtual machine guest operating system. These cmdlets are independent of the guest operating system installed in the virtual machine.
 +<cli prompt='>'>​
 +PS1> Get-VMGuest -VM windows-dc | Format-List *
 +
 +OSFullName : Microsoft Windows Server 2003, Enterprise Edition (64-bit)
 +IPAddress : {IP_Address}
 +State : Running
 +HostName : windows-dc.vcd.com
 +Nics : {}
 +ScreenDimensions : {Width=1024,​ Height=768}
 +</​cli>​
 +
 +Note: When retrieving the details about the guest operating system, you are prompted for the user name and password for the ESX/ESXi host and guest operating system. You can provide the authentication details in the command by using the -HostUser root -HostPassword pass1 -GuestUser administrator -GuestPassword vmware123 parameters.
 + 
 +Using PowerCLI, you can also query, start, or stop a service within the guest operating system. You can use Start-Service,​ Stop-Service,​ and Restart-Service cmdlets to modify the status of the service. If no virtual machine is specified in the command the change is be made on all the Windows virtual machines in the inventory.
 + 
 +Note: To use this command ensure that the latest version of VMware Tools are installed on the virtual machine and this cmdlet is applicable only for Windows guest.
 +<cli prompt='>'>​
 +PS1> Get-VM windows-dc | Invoke-VMScript "​Get-Service app*"
 + 
 +Status Name DisplayName
 +------ --- -----------
 +Stopped AppMgmt Application Management
 +</​cli>​
 +
 +vSphere PowerCLI also provides cmdlets to provide the network configuration information from within the guest operating system:
 +<cli prompt='>'>​
 +PS1> Get-VMGuestNetworkInterface -VM windows-dc -HostUser root -HostPassword vmware123 -GuestUser administrator -GuestPassword vmware123
 +
 +VMId : VirtualMachine-vm-33
 +VM : windows-dc
 +NetworkAdapter : Network adapter 1
 +SubnetMask : 255.255.255.0
 +NicId : VirtualMachine-vm-33/​4000
 +Name : Local Area Connection
 +IPPolicy : Static
 +Ip : IP_Address
 +Dns : {IP_Address}
 +DefaultGateway : 192.168.0.2
 +Description : Intel(R) PRO/1000 MT Network Connection
 +Mac : MAC_Address
 +RouteInterfaceId : 0x10003
 +Uid : /​VIServer=@xx.xx.xx.xx:​443/​VMGuestNetworkInterface=00-11-22
 +-aa-bb-cc/
 +DnsPolicy : Static
 +WinsPolicy : Static
 +Wins :
 +</​cli>​
 +
 +To retrieve the routing configuration of the specified virtual machine, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-VMGuestroute -VM windows-dc -HostUser root -HostPassword vmware123 -GuestUser administrator -GuestPassword vmware123
 +
 +Destination : 0.0.0.0
 +Gateway : 192.168.0.2
 +Interface : IP_Address
 +Netmask : 255.255.255.0
 +VMId : VirtualMachine-vm-33
 +VM : windows-dc
 +</​cli>​
 +
 +Configuring a virtual machine using PowerCLI
 + 
 +This section discusses the cmdlets that you can use to configure/​reconfigure the virtual machines.
 + 
 +To create new virtual machines, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> New-VM -VMHost xx.xx.xx.xx -Name TestCli -MemoryMB 1024 -DiskMB 8024
 + 
 +Name PowerState Num CPUs Memory (MB)
 +---- ---------- -------- - ----------
 +TestCli PoweredOff 1 1024
 +</​cli>​
 +
 +To migrate a virtual machine using vMotion, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-VMHost xx.xx.xx.xx | Get-VM "​windows-cli"​ | Move-VM -Destination xx.xx.xx.xx
 + 
 +Name PowerState Num CPUs Memory (MB)
 +---- ---------- -------- -----------
 +windows-cli PoweredOn 1 1024
 +</​cli>​
 + 
 +To migrate a virtual machine using Storage vMotion, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-VM windows-rhel5 | Move-VM -Datastore vCloud-1
 + 
 +Name PowerState Num CPUs Memory (MB)
 +---- ---------- -------- -----------
 +windows-rhel5 PoweredOn 1 3072
 +</​cli>​
 +
 +All of the virtual machines in the in the inventory can be configured with or without the CD-ROM drive using this command:
 + 
 +Note: To disable CD-ROM, use the $false option. To enable CD-ROM, use the $true option.
 +[<cli prompt='>'>​
 +PS1> Get-VM | Get-CDDrive | Set-CDDrive -Connected:​$false
 + 
 +Confirm
 +Are you sure you want to perform this action?
 +Performing operation "​Setting Connected: False, NoMedia: False."​ on Target "​CD/​DVD Drive 1".
 +[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "​Y"​):​Y
 +</​cli>​
 +
 +If you would like to remove confirmation option, then add this at the end of commandlet "​-Confirm:​$false",​ this is an example:
 +<cli prompt='>'>​
 +PS1> Get-VM | Get-CDDrive | Set-CDDrive -Connected:​$false -confirm:​$false
 +</​cli>​
 +
 +Working with virtual machine snapshots
 + 
 +vSphere PowerCLI provides cmdlets to create/​remove snapshots for all of the virtual machines in the inventory. However, you may further customize the command to specify virtual machines from a specific ESX/ESXi host, cluster, or datacenter.
 + 
 +To take a new snapshot for all virtual machines in a cluster, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-Cluster "​vCloud"​ | Get-VM | New-Snapshot -Name Automate
 + 
 +Name Description PowerState
 +---- ----------- ----------
 +Automate PoweredOff
 +Automate PoweredOff
 +</​cli>​
 + 
 +To remove a snapshot from all of the virtual machine in the inventory, run the cmdlet:
 +<cli prompt='>'>​
 +PS1> Get-VM | Get-Snapshot | Remove-Snapshot
 + 
 +Confirm
 +Are you sure you want to perform this action?
 +Performing operation "​Removing snapshot."​ on Target
 +"​VirtualMachineSnapshot-snapshot-174"​.
 +[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
 +(default is "​Y"​):​A
 +</​cli>​
 + 
 +To remove a confirmation option, add this at the end of commandlet:
 +<​code>​
 +  -Confirm:​$false
 +</​code>​
 +
 +For example:
 +<cli prompt='>'>​
 +PS1> Get-VM | Get-Snapshot | Remove-Snapshot -Confirm:​$false
 +</​cli>​
 + 
 +Note: Use these commands with caution as the changes made are applicable for all virtual machines.
 + 
 +Updating VMware Tools
 + 
 +Update-Tools cmdlets can be used to update the VMware Tools on a single or multiple virtual machines. This command reboots the virtual machine after updating the VMware Tools. You can use the -NoReboot option to update the VMware Tools without rebooting the virtual machine.
 + 
 +In this example, the VMware Tools for all of the virtual machines in Resource Pool vCloud are updated without rebooting the virtual machine:
 +<cli prompt='>'>​
 +PS1> Get-ResourcePool vcloud | Get-VM | Update-Tools -NoReboot
 +WARNING: Automatic update of VMware tools is not fully supported for
 +non-Windows OSs. Manual intervention might be required.
 +</​cli>​
 +
 +Note: Before running the cmdlet, ensure that the VMware Tools service is running. This command is used only to upgrade VMware Tools. To do an unattended install, use msiexec.exe. For more information,​ see the Microsoft article Command ​
 +
 +
 +
 +
 +
 +
 +
vmware/esx_powercli.1637253717.txt.gz · Last modified: 2021/11/18 17:41 by manu