LastLogon probably isn’t formatted as a proper DateTime, so when you pipe it to Get-Date, Get-Date doesn’t quite know what to do with it. That’d be my guess.
Yeah, the lastLogon property isn’t a .NET DateTime value, but instead a ‘FileTime’ type. When Get-Date tries to parse the string into one, it’s failing a little bit on the year and hours. It looks like a byte-order/Endian sort of thing.
But thankfully, the .NET framework is prepared for this, and the DateTime class has a static FromFileTime method to parse the string correctly. Try this instead: