by Harold Preyers | Mar 3, 2017 | PowerCLI, VMware, vSphere
Start the ssh service on all hosts:
| Get-VMHost | Foreach { Start-VMHostService -HostService ($_ | Get-VMHostService | Where {$_.Key -eq "TSM-SSH"}) } |
If you want to start the ssh service on a single host, change ESXiHostName to your ESXi FQDN:
| Get-VMHost -Name ESXiHostName | Foreach { Start-VMHostService -HostService ($_ | Get-VMHostService | Where {$_.Key -eq "TSM-SSH"}) } |
If you want to stop the ssh service on all hosts:
| Get-VMHost | Foreach { Stop-VMHostService -HostService ($_ | Get-VMHostService | Where {$_.Key -eq "TSM-SSH"}) } |
If you have multiple cluster in vCenter, are connected to multiple vCenters, be sure to launch the command only to the necessary hosts:
- Get-Cluster -Name ClusterName will filter to the specified Cluster
- Get-VMHost -Name ESXiHostName will filter to the specified ESXi
- Get-VMHost -Server vCenterServerName will filter to the specified vCenter server
| Get-Cluster -Name ClusterName | Get-VMHost -Name ESXiHostName -Server vCenterServerName | Foreach { Stop-VMHostService -HostService ($_ | Get-VMHostService | Where { $_.Key -eq "TSM-SSH"} ) } |
These are other services I frequently use:
- DCUI (Direct Console UI)
- lwsmd (Active Directory Service)
- ntpd (NTP Daemon)
- sfcbd-watchdog (CIM Server)
- snmpd (SNMP Server)
- TSM (ESXi Shell)
- TSM-SSH (SSH)
- vmsyslogd (Syslog Server)
- vmware-fdm (vSphere High Availability Agent)
- vpxa (VMware vCenter Agent)
- xorg (X.Org Server)
There are other services available but I have never used them in this context (yet):
- lbtd (Load-Based Teaming Daemon)
- pcscd (PC/SC Smart Card Daemon)
- vprobed (VProbe Daemon)
Change the startup policy for a service:
- Automatic: Start automatically if any ports are open, and stop when all ports are closed
- On: Start and stop with host
- Off: Start and stop manually
| Get-VMHost | Foreach { Set-VMHostService -HostService ($_ | Get-VMHostService | Where {$_.key -eq "TSM-SSH"}) -policy On } |
by Harold Preyers | Apr 12, 2016 | PowerCLI, VMware
These are powercli goodies I use on a regular base. I have collected them here to find them easily. Some I wrote myself, some are copied from other sites. If I didn’t reference the source, I don’t know anymore where I found it.
Change portgroup on a lot of vm’s
Testing with one vm
| get-vm my_vm_name | Get-NetworkAdapter |where {$_.networkname -eq "current_network_label"} | set-networkadapter -portgroup "new_network_label" -confirm:$false |
Reconfigure all vm’s with the string “vdi” in the name
| get-vm *vdi* | Get-NetworkAdapter |where {$_.networkname -eq "current_network_label"} | set-networkadapter -portgroup "new_network_label" -confirm:$false |
Find all vm’s with more than 8 CPUs
| (get-view -viewtype virtualmachine).summary.config | where {$_.numcpu -gt 8} |
Reload Syslog via esxcli
While executing the NetApp MetroCluster testplan, the syslog service stops logging to the presented syslog datastore. To restart the logging reload the syslog service on all impacted hosts. The following command will reload the syslog service on all hosts in the connected vCenters. Check the $global:defaultviservers to know which vCenters are connected.
| $server_list = Get-VMhost Foreach ($srv in $server_list) { $esxcli = Get-EsxCli -VMhost $srv $esxcli.system.syslog.reload() } |
Speed-up the initialization of PowerCLI
This needs to be done for each registered version of PowerCLI. This one worked for me on Windows Server 2012 R2
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe install “VimService55.XmlSerializers, Version=5.5.0.0, Culture=neutral, PublicKeyToken=10980b081e887e9f” /ExeConfig:c:\windows\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe
Change the Power Management Policy for each host in cluster
| #get connected esxi hosts $vmhostlist = get-vmhost |sort|select name #for each host show the power management policy setting foreach ($entry in $vmhostlist) { #list power management policy on all connected esxi hosts get-vmhost |sort|select name, @{ N="CurrentPolicy"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.ShortName}},@{N="CurrenPolicyKey"; E={$_.ExtensionData.config.PowerSystemInfo.CurrentPolicy.Key}},@{N="AvailablePolicies";E={$_.ExtensionData.config.PowerSystemCapability.AvailablePolicy.ShortName} } #for each host change the power management policy to high performance foreach ($entry in $vmhostlist) { $view= |