75 lines
2.5 KiB
PowerShell
75 lines
2.5 KiB
PowerShell
#1. Configure PDC Emulator of the root domain to use external time sources
|
|
|
|
ping 1.north-america.pool.ntp.org
|
|
ping 2.north-america.pool.ntp.org
|
|
|
|
$currentdomain = (Get-ADDomain).DNSRoot
|
|
$pcdEmulator = (Get-ADDomain).PDCEmulator
|
|
$hostname = $env:computername + "." + $currentdomain
|
|
$path="HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters"
|
|
$externalNTPServers = "1.north-america.pool.ntp.org,0x8 2.north-america.pool.ntp.org,0x8" #0x08 - send request as Client mode
|
|
|
|
if(($hostname -eq $pcdEmulator)){
|
|
Set-ItemProperty $path -Name "Type" -Value "NTP"
|
|
Set-ItemProperty $path -Name "NtpServer" -Value $externalNTPServers
|
|
Write-Host $hostname "has been configured to sync time with" $externalNTPServers
|
|
|
|
}
|
|
else{
|
|
Set-ItemProperty $path -Name "Type" -Value "NT5DS"
|
|
Write-Host $hostname "has been configured to sync time with a domain controller"
|
|
}
|
|
|
|
#Update change and query peers and current time sources
|
|
hostname
|
|
net stop w32time
|
|
net start w32time
|
|
w32tm /resync /rediscover
|
|
w32tm /query /peers
|
|
w32tm /query /source
|
|
|
|
|
|
#2. Configure PDC Emulator of the child domain to use external time sources
|
|
ipconfig /flushdns
|
|
ping 1.north-america.pool.ntp.org
|
|
ping 2.north-america.pool.ntp.org
|
|
|
|
|
|
$currentdomain = (Get-ADDomain).ChildDomains[0]
|
|
$pcdEmulator = (Get-ADDomain -Identity $currentdomain).PDCEmulator
|
|
$hostname = $env:computername + "." + $currentdomain
|
|
$path="HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters"
|
|
$externalNTPServers = "1.north-america.pool.ntp.org,0x8 2.north-america.pool.ntp.org,0x8" #0x08 - send request as Client mode
|
|
|
|
if(($hostname -eq $pcdEmulator)){
|
|
Set-ItemProperty $path -Name "Type" -Value "NTP"
|
|
Set-ItemProperty $path -Name "NtpServer" -Value $externalNTPServers
|
|
Write-Host $hostname "has been configured to sync time with" $externalNTPServers
|
|
|
|
}
|
|
else{
|
|
Set-ItemProperty $path -Name "Type" -Value "NT5DS"
|
|
Write-Host $hostname "has been configured to sync time with a domain controller"
|
|
}
|
|
|
|
#Update change and query peers and current time sources
|
|
hostname
|
|
net stop w32time
|
|
net start w32time
|
|
w32tm /resync /rediscover
|
|
w32tm /query /peers
|
|
w32tm /query /source
|
|
|
|
|
|
#3. Configure on all domain controllers in the child domain to use the PDC Emulator of the child domain as their time source.
|
|
hostname
|
|
$currentdomain = (Get-ADDomain).ChildDomains[0]
|
|
$pcdEmulator = (Get-ADDomain -Identity $currentdomain).PDCEmulator
|
|
|
|
w32tm /config /syncfromflags:manual /manualpeerlist:$pcdEmulator
|
|
|
|
net stop w32time
|
|
net start w32time
|
|
w32tm /resync /rediscover
|
|
|
|
w32tm /query /source |