|Today, the first time for a long while, I am again in the need to make a scheduled shutdown of a physical ESXi server. Strangely it seems that this function disappeared out of the vSphere Client. I'm pretty sure, it worked with one of the first VirtualCenter versions.
But after a bit of research I found some hints about the vSphere CLI SDK. After a bit of testing I figured out how it works and it works just great.
Now I'm able to schedule a cronjob, launching the reboot or shutdown command fully automated. To be able to shutdown or reboot, you have to enter maintenance mode. The command looks like this:
/usr/lib/vmware-vcli/apps/host/hostops.pl --server VCENTER_SERVER --target_host NAME_OF_ESX_HOST --operation enter_maintenance --username VCENTER_USER --password VCENTER_PASSWORD
Note, that for the --target_host you mustn't use the IP-address of the ESX/i server but the name used in the VirtualCenter configuration (as you see it in your vSphere Client).
Now we make the same for the shutdown command:
/usr/lib/vmware-vcli/apps/host/hostops.pl --server VCENTER_SERVER --target_host NAME_OF_ESX_HOST --operation shutdown --username VCENTER_USER --password VCENTER_PASSWORD