################################################################################ # Clears all the timestamps in a file or folder. # ################################################################################ # Get all files/folders recursively. function GetFiles($path = "."){ foreach($node in Get-ChildItem $path -force){ ClearTimestamps $node.FullName if(Test-Path $node.FullName -PathType Container){ GetFiles $node.FullName } } } # Clear the timestamp of a file/folder. function ClearTimestamps($node){ Try{ if($(Get-Item $node -force).isReadOnly){ Set-ItemProperty $node -name IsReadOnly -value $false $(Get-Item $node -force).creationtime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) $(Get-Item $node -force).lastaccesstime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) $(Get-Item $node -force).lastwritetime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) Set-ItemProperty $node -name IsReadOnly -value $true }else{ $(Get-Item $node -force).creationtime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) $(Get-Item $node -force).lastaccesstime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) $(Get-Item $node -force).lastwritetime = $((Get-Date "01/01/1980 00:00 AM").ToUniversalTime()) } Write-Output "Cleared timestamp of: $($node)" }Catch{ Write-Output "Unable to clear timestamp of: $($node)" } } # Clear the timestamp of a file/folder and its children. ClearTimestamps $args[0] GetFiles $args[0]