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.)
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.
Timespan (measured in seconds) the two DateTime parameters must be within, absolute value, to return true.
[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.