showing posts tagged with 'powercli'
by lunarg on December 14th 2017, at 14:03

Sometimes, you need to temporarily start a service (such as SSH) to perform some maintenance task. PowerCLI can help you with this:

To start the SSH server on each host of a vCenter:

Get-VMHost | Get-VMHostService | ? {$_.Key -eq "TSM-SSH"} | Start-VMHostService

To stop the SSH server:

Get-VMHost | Get-VMHostService | ? {$_.Key -eq "TSM-SSH"} | Stop-VMHostService -Confirm:$false

As always, you can make adjustments to the oneliner to select another service to start/stop, or further limit the selection of hosts to a cluster or a group of hosts (e.g. filtered by name).

by lunarg on December 14th 2017, at 14:00
If you're making changes to the datastore, setting up a new cluster and have a lot of hosts, and wish to set up system logging, you can do so very quickly using PowerCLI.

First, add all the hosts to the vCenter like you normally would. Then, connect to the vCenter server and run this cmdlet:

Get-VMHost | % { $vm = $_ $vm | Get-AdvancedSetting "" | Set-AdvancedSetting -Value "True" -Confirm:$false $vm | Get-AdvancedSetting "" | Set-AdvancedSetting -Value "[DataStore01] ESXiLogs" -Confirm:$false}

The cmdlet above will set the system log location to a folder on DataStore01 and enables unique log di  ...
by lunarg on December 12th 2017, at 12:35
When performing large storage migrations, it may be useful to get a list of VMs and the datastore and/or folder they are located in. PowerCLI can provide this very quickly:

Get-VM | Select Name,@{N="Datastore";E={[string]::Join(',',(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}},@{N="Folder";E={$_.Folder.Name}}

You can further pipe this to other cmdlets (such as Where-Object to filter even more), or export it to a CSV.

You can also go into more detail and determine the location of each virtual disk (VMDK) of each VM:

Get-VM | Get-View | % { $name = $_.Name $_.Layout.Disk | % { New-Object PSObject -Property @{ Nam  ...
by lunarg on May 8th 2017, at 14:32
A very common practice when setting up SAN storage on a VMWare cluster is to configure the storage path policy to be set to "Round Robin" to properly benefit from MPIO in addition to standard failover. However, if the cluster consists of many nodes or there are many volumes, this can take up quite a lot of time if you configure this using the (Web)GUI. A better way to adjust the setting for the entire cluster is through PowerCLI.

The one-liner:

Get-VMHost <Cluster-or-Host> | Get-ScsiLun -LunType "disk" | Where {$_.MultipathPolicy -ne "RoundRobin"} | Set-ScsiLun -MultipathPolicy RoundRobin

The cmdlet selects a cluster or host, gets all LUNs which are of   ...
by lunarg on April 11th 2017, at 14:03

I wrote a script to list virtual disk information for a specified VM, including VMDK path, SCSI IDs and more. It is loosely based on this script but excludes all WMI info.

Download here.

by lunarg on January 19th 2017, at 16:49

With PowerCLI, you can generate all sorts of lists. To retrieve the configured and reported OS version of your VMs, try running this one-liner:

Get-VM | Sort | 
   Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName", "Guest.IpAddress") | 
   Select -Property Name, 
       @{N="Configured OS";E={$_.Config.GuestFullName}},
       @{N="Running OS";E={$_.Guest.GuestFullName}},
       @{N="IP Address";E={@($_.Guest.IpAddress)}} | 
   Export-CSV -Delimiter ";" -Path "vms.csv"
by lunarg on December 5th 2015, at 13:19

You can quickly get a list of VMs, the datastores they are using and the logical folder they are in through PowerCLI:

Get-VM | Select Name,@{N="Datastore";E={[string]::Join(',',(Get-Datastore -Id $_.DatastoreIdList | Select -ExpandProperty Name))}},@{N="Folder";E={$_.Folder.Name}}

Combine it with Export-CSV to export the results to a CSV file.

showing posts tagged with 'powercli'
« December 2017»
« I needed a password with eight characters so I picked Snow White and the Seven Dwarves. »