Testing Timestamps of Files Across a Slow Network

I’m not sure if this is because of network lag, or the fact that my lab is on a different AD domain (and different NTP clock) than my local computer.  All I know is:

(Get-Item local\path\to\OriginalFile.txt).LastWriteTime –eq (Get-Item remote\path\to\CopyOfFile.txt).LastWriteTime

Does not work reliably.  My solution is to arbitrarily rule that if the timestamps are within 5 seconds, they’re good enough.  (Given that these files are manually updated, and I want to know if the files were recently updated or not, 5 seconds is fine.)

function Test-DateTimeWithinInterval 



     Test if two timestamps are within the specified interval


    Because file LastWriteTime DateTime values are stored to the millisecond, a copy of a file may not have the same value as the original.  This allows for a "plus-or-minus" range, default of 5 seconds.

     .PARAMETER ReferenceObject

     First Datetime

     .PARAMETER DifferenceObject

     Second Datetime

     .PARAMETER Interval

     Timespan (measured in seconds) the two DateTime parameters must be within, absolute value, to return true.


    param (



         [Int]$Interval = 5


    [Math]::Abs(($ReferenceObject - $DifferenceObject).TotalSeconds) -le $Interval;

 # function Test-DateTimeWithinInterval

This is more of an exercise in using [Math]::Abs() than anything else.

Comments (0)

Skip to main content