Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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
{
<#
.SYNOPSIS
Test if two timestamps are within the specified interval
.DESCRIPTION
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 (
[DateTime]$ReferenceObject,
[DateTime]$DifferenceObject,
[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.