Wow. Give, and ye shall receive.
Thank you. Kurt On Thu, Aug 4, 2011 at 05:46, Michael B. Smith <[email protected]> wrote: > Thanks for that link. I took it, sped it up, and updated it for PowerShell > v2. > > > > Param ( > > [string] $Path = (Get-Location), > > [Switch] $ShowDuplicates > > ) > > > > $script:cryptoServiceProvider = > [System.Security.Cryptography.MD5CryptoServiceProvider] > > $script:hashAlgorithm = New-Object $script:cryptoServiceProvider > > > > function Get-MD5 > > { > > Param ( > > [System.IO.FileInfo] $file = $(throw 'Usage: Get-MD5 > [System.IO.FileInfo]') > > ) > > > > # This Get-MD5 function sourced from: > > # http://blogs.msdn.com/powershell/archive/2006/04/25/583225.aspx > > # Updated for PowerShell v2.0. > > > > try > > { > > $stream = $file.OpenRead() > > $hashByteArray = $script:hashAlgorithm.ComputeHash( $stream ) > > } > > finally > > { > > if( $stream ) > > { > > $stream.Close() > > } > > } > > > > return [string]$hashByteArray > > } > > > > if( 1 ) > > { > > $directoryInfo = New-Object System.IO.DirectoryInfo( $Path ) > > > > $fileGroups = $directoryInfo.GetFiles( '*', 'AllDirectories' > ) | > > ? { $_.Length -gt 0 } | > > group Length | > > ? { $_.Count -gt 1 } > > } > > else > > { > > $fileGroups = Get-ChildItem $Path -Recurse | > > Where-Object { $_.Length -gt 0 } | > > Group-Object Length | > > Where-Object { $_.Count -gt 1 } > > } > > > > $results = @() > > > > foreach ($fileGroup in $fileGroups) > > { > > foreach ($file in $fileGroup.Group) > > { > > Add-Member NoteProperty ContentHash (Get-MD5 $file) > -InputObject $file > > } > > > > $result = $fileGroup.Group | > > Group-Object ContentHash | > > Where-Object { $_.Count -gt 1 } > > if( $result ) > > { > > $results += $result > > } > > } > > > > if( $filegroups -and $fileGroups.Count -and ( $fileGroups.Count -gt 0 ) ) > > { > > write-host "Total filegroups = $($fileGroups.Count)" > > } > > > > if( $ShowDuplicates ) > > { > > foreach( $entry in $results ) > > { > > if( $entry.Count -gt 1 ) > > { > > foreach( $item in $entry.Group ) > > { > > $item.Fullname > > > > } > > " " > > } > > } > > } > > else > > { > > $results > > } > > > > $results = $null > > $filegroups = $null > > $directoryInfo = $null > > > > $script:hashAlgorithm = $null > > $script:cryptoServiceProvider = $null > > > > > > Regards, > > > > Michael B. Smith > > Consultant and Exchange MVP > > http://TheEssentialExchange.com > > > > > > -----Original Message----- > From: Kurt Buff [mailto:[email protected]] > Sent: Wednesday, August 03, 2011 1:34 PM > To: NT System Admin Issues > Subject: Re: find duplicate files > > > > Try this, among others: > > http://blog.codeassassin.com/2007/10/13/find-duplicate-files-with-powershell/ > > > > Kurt > > > > On Wed, Aug 3, 2011 at 08:47, Bill Humphries <[email protected]> wrote: > >> Hi all, > >> > >> Any suggestions for a tool that I could use to search for duplicate files >> on > >> a 20tb Xsan? Although it primarily has Macs attached to it, I do have one > >> windows machine. > >> > >> Thanks. > >> > >> Bill > >> > >> ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ > >> ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ > >> > >> --- > >> To manage subscriptions click here: > >> http://lyris.sunbelt-software.com/read/my_forums/ > >> or send an email to [email protected] > >> with the body: unsubscribe ntsysadmin > >> > > > > ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ > > ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ > > > > --- > > To manage subscriptions click here: > http://lyris.sunbelt-software.com/read/my_forums/ > > or send an email to [email protected] > > with the body: unsubscribe ntsysadmin > > > > ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ > ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ > > --- > To manage subscriptions click here: > http://lyris.sunbelt-software.com/read/my_forums/ > or send an email to [email protected] > with the body: unsubscribe ntsysadmin ~ Finally, powerful endpoint security that ISN'T a resource hog! ~ ~ <http://www.sunbeltsoftware.com/Business/VIPRE-Enterprise/> ~ --- To manage subscriptions click here: http://lyris.sunbelt-software.com/read/my_forums/ or send an email to [email protected] with the body: unsubscribe ntsysadmin
