I recently started reinstalling all my ESX hosts, so I wrote up a short script that is reconfiguring all hosts and sets the NTP configuration according to my wish:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
param( [string] $vcenter, [string] $ntpserver1, [string] $ntpserver2 )

# Add the VI-Snapin if it isn't loaded already
if ( (Get-PSSnapin -Name "VMware.VimAutomation.Core" -ErrorAction SilentlyContinue) -eq $null )
{
	Add-PSSnapin -Name "VMware.VimAutomation.Core"
}

If ( !($vcenter) -or !($ntpserver1) -or !($ntpserver2) )
{
	Write-Host `n "vcenter-ntp-reconfigure: <vcenter-server> <ntpserver1> <ntpserver2>" `n
	Write-Host "This script clears the NTP servers currently configured and" `n
	Write-Hsot "adds the ones supplied on the command line." `n
	Write-Host "   <vcenter-server>  - DNS name of your vCenter server." `n
	Write-Host "   <ntpserver1>      - NTP server #1" `n
	Write-Host "   <ntpserver2>      - NTP server #2" `n
	exit 1
}

Connect-VIServer -Server $vcenter

foreach ($esxhost in Get-VMHost)
{
	Get-VMHost $esxhost | Remove-VMHostNtpServer -Confirm:$false -NtpServer (Get-VMHost $esxhost | `
                Get-VMHostNtpServer)
	Get-VMHost $esxhost | Add-VMHostNtpServer -NtpServer $ntpserver1
	Get-VMHost $esxhost | Add-VMHostNtpServer -NtpServer $ntpserver2
}

Disconnect-VIServer -server $vcenter -Confirm:$false

As you can see, the script takes the vCenter hostname and two NTP servers and basically applies it to each host in your vCenter environment.