[PowerShell] / Remove-Item-Secure.ps1 Repository:
ViewVC logotype

Annotation of /Remove-Item-Secure.ps1

Parent Directory Parent Directory | Revision Log Revision Log


Revision 29 - (view) (download)

1 : ian 29 <#
2 :    
3 :     .NOTES
4 :     Written by Ian Cammarata http://ian.cammarata.us
5 :     Remove-Item-Secure
6 :    
7 :     To Do:
8 :     -Lots of stuff
9 :    
10 :     .SYNOPSIS
11 :     Secure erase files.
12 :    
13 :    
14 :     .EXAMPLE
15 :     PS>
16 :    
17 :     #>
18 :    
19 :     <#
20 :     mkdir secure-erase-test
21 :     mkdir secure-erase-test/test
22 :     Set-Content "secure-erase-test/ing.txt" "asdf"
23 :     Set-Content "secure-erase-test/test/ing.txt" "asdf"
24 :     Copy-Item tmp/*.jpg secure-erase-test/test/
25 :     explorer.exe (Join-Path (pwd) "secure-erase-test/test/")
26 :     #>
27 :    
28 :     [cmdletbinding( SupportsShouldProcess = $True )]
29 :     param(
30 :     #File system object to secure erase.
31 :     [Parameter( Mandatory = $True, Position = 0, ValueFromPipeline= $True )]
32 :     [Alias( "Files" )]
33 :     [String[]]
34 :     $Path
35 :     )
36 :    
37 :    
38 :     #BEGIN {
39 :     #}
40 :    
41 :     PROCESS {
42 :     Foreach ( $item in $Path ) {
43 :     $branches = Get-ChildItem $item -Recurse | ? { $_.PSIsContainer }
44 :     $leaves = Get-ChildItem $item -Recurse | ? { $_.PSIsContainer -eq $False }
45 :    
46 :     "Burning leaves..."
47 :     Foreach ( $leaf in $leaves ) {
48 :     if ( $psCmdlet.ShouldProcess( $leaf, "Secure Erase" ) ) {
49 :     Set-Content $leaf ("0" * $tmp[1].Length)
50 :     $leaf.MoveTo( ( Join-Path $leaf.Directory ( Get-Random ) ) )
51 :     $leaf.Delete()
52 :     }
53 :     }
54 :    
55 :     "Chopping branches..."
56 :     Foreach ( $branch in $branches ) {
57 :     $branch.MoveTo( ( ( Join-Path $branch.PSParentPath ( Get-Random ) ) -split "::" )[1] )
58 :     }
59 :     Remove-Item $Path -Recurse -Force
60 :     }
61 :     }

Contact
ViewVC Help
Powered by ViewVC 1.0.4