Skip to content

PowerShell script for shredding files.

License

Notifications You must be signed in to change notification settings

ivan-sincek/file-shredder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

File Shredder

PowerShell script for shredding files.

If you have more than enough free disk space, your files will most likely still be recoverable - even after shredding.

Tested with PowerShell v5.1.18362.752 on Windows 10 Enterprise OS (64-bit).

Made for educational purposes. I hope it will help!

How to Run

Open the PowerShell from \src\ and run the commands shown below.

Set the execution policy:

Set-ExecutionPolicy Unrestricted

Run the script:

.\file_shredder.ps1 .\somefile.txt

Or, run the following command from either PowerShell or Command Prompt:

PowerShell -ExecutionPolicy Unrestricted -File .\file_shredder.ps1 .\somefile.txt

To run the PowerShell encoded command, run the following command from either PowerShell or Command Prompt:

PowerShell -ExecutionPolicy Unrestricted -EncodedCommand JABwACAAPQAgACQAKABSAGUAYQBkAC0ASABvAHMAdAAgAC0AUAByAG8AbQBwAHQAIAAiAEUAbgB0AGUAcgAgAGYAaQBsAGUAIABwAGEAdABoACIAKQAuAFQAcgBpAG0AKAApADsAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAIgAiADsAIABpAGYAIAAoACQAcAAuAEwAZQBuAGcAdABoACAALQBsAHQAIAAxACkAIAB7ACAAVwByAGkAdABlAC0ASABvAHMAdAAgACIARgBpAGwAZQAgAGkAcwAgAHIAZQBxAHUAaQByAGUAZAAiADsAIAB9ACAAZQBsAHMAZQAgAHsAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAIgAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAYABuACMAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIwBgAG4AIwAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAARgBpAGwAZQAgAFMAaAByAGUAZABkAGUAcgAgADEALgAzACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAjAGAAbgAjACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABiAHkAIABJAHYAYQBuACAAUwBpAG4AYwBlAGsAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACMAYABuACMAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIwBgAG4AIwAgAEcAaQB0AEgAdQBiACAAcgBlAHAAbwBzAGkAdABvAHIAeQAgAGEAdAAgAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBpAHYAYQBuAC0AcwBpAG4AYwBlAGsALwBmAGkAbABlAC0AcwBoAHIAZQBkAGQAZQByAC4AIAAgACAAIAAgACAAIAAgACAAIAAjAGAAbgAjACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACMAYABuACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAiADsAIAAkAHMAegAgAD0AIAAyADAANAA4ADsAIAAkAGIAIAA9ACAAJABuAHUAbABsADsAIAAkAHIAbgBnACAAPQAgACQAbgB1AGwAbAA7ACAAJABzACAAPQAgACQAbgB1AGwAbAA7ACAAJABmACAAPQAgACQAbgB1AGwAbAA7ACAAdAByAHkAIAB7ACAAJABmACAAPQAgAEcAZQB0AC0ASQB0AGUAbQAgACQAcAAgAC0ARQByAHIAbwByAEEAYwB0AGkAbwBuACAAUwBpAGwAZQBuAHQAbAB5AEMAbwBuAHQAaQBuAHUAZQA7ACAAaQBmACAAKAAkAGYAIAAtAGUAcQAgACQAbgB1AGwAbAApACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFAAYQB0AGgAIABkAG8AZQBzACAAbgBvAHQAIABlAHgAaQBzAHQAcwAiADsAIAB9ACAAZQBsAHMAZQBpAGYAIAAoACQAZgAgAC0AaQBzAG4AbwB0ACAAWwBJAE8ALgBGAGkAbABlAEkAbgBmAG8AXQApACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFAAYQB0AGgAIABzAHAAZQBjAGkAZgBpAGUAZAAgAGkAcwAgAG4AbwB0ACAAYQAgAGYAaQBsAGUAIgA7ACAAfQAgAGUAbABzAGUAIAB7ACAAJABmAC4AQQB0AHQAcgBpAGIAdQB0AGUAcwAgAD0AIAAiAE4AbwByAG0AYQBsACIAOwAgACQAcwBlAGMAIAA9ACAAWwBNAGEAdABoAF0AOgA6AEMAZQBpAGwAaQBuAGcAKAAkAGYALgBMAGUAbgBnAHQAaAAgAC8AIAAkAHMAegApADsAIAAkAGIAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAEIAeQB0AGUAWwBdACAAJABzAHoAOwAgACQAcgBuAGcAIAA9ACAAWwBTAGUAYwB1AHIAaQB0AHkALgBDAHIAeQBwAHQAbwBnAHIAYQBwAGgAeQAuAFIAYQBuAGQAbwBtAE4AdQBtAGIAZQByAEcAZQBuAGUAcgBhAHQAbwByAF0AOgA6AEMAcgBlAGEAdABlACgAKQA7ACAAJABzACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBGAGkAbABlAFMAdAByAGUAYQBtACgAJABmAC4ARgB1AGwAbABOAGEAbQBlACwAIABbAEkATwAuAEYAaQBsAGUAQQBjAGMAZQBzAHMAXQA6ADoAVwByAGkAdABlACkAOwAgAGYAbwByACAAKAAkAGkAIAA9ACAAMAA7ACAAJABpACAALQBsAHQAIAA3ADsAIAAkAGkAKwArACkAIAB7ACAAJABzAC4AUABvAHMAaQB0AGkAbwBuACAAPQAgADAAOwAgAGYAbwByACAAKAAkAGoAIAA9ACAAMAA7ACAAJABqACAALQBsAHQAIAAkAHMAZQBjADsAIAAkAGoAKwArACkAIAB7ACAAJAByAG4AZwAuAEcAZQB0AEIAeQB0AGUAcwAoACQAYgApADsAIAAkAHMALgBXAHIAaQB0AGUAKAAkAGIALAAgADAALAAgACQAYgAuAEwAZQBuAGcAdABoACkAOwAgAH0AIAB9ACAAJABzAC4AUwBlAHQATABlAG4AZwB0AGgAKAAwACkAOwAgACQAcwAuAEMAbABvAHMAZQAoACkAOwAgACQAZgAuAEMAcgBlAGEAdABpAG8AbgBUAGkAbQBlACAAPQAgACIAMAA5AC8AMAA2AC8AMgAwADYAOQAgADAANAA6ADIAMAA6ADAAMAAgAEEATQAiADsAIAAkAGYALgBMAGEAcwB0AFcAcgBpAHQAZQBUAGkAbQBlACAAPQAgACIAMAA5AC8AMAA2AC8AMgAwADYAOQAgADAANAA6ADIAMAA6ADAAMAAgAEEATQAiADsAIAAkAGYALgBMAGEAcwB0AEEAYwBjAGUAcwBzAFQAaQBtAGUAIAA9ACAAIgAwADkALwAwADYALwAyADAANgA5ACAAMAA0ADoAMgAwADoAMAAwACAAQQBNACIAOwAgACQAZgAuAEQAZQBsAGUAdABlACgAKQA7ACAAVwByAGkAdABlAC0ASABvAHMAdAAgACIARgBpAGwAZQAgAGgAYQBzACAAYgBlAGUAbgAgAHMAaAByAGUAZABkAGUAZAAgAHMAdQBjAGMAZQBzAHMAZgB1AGwAbAB5ACIAOwAgAH0AIAB9ACAAYwBhAHQAYwBoACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAkAF8ALgBFAHgAYwBlAHAAdABpAG8AbgAuAEkAbgBuAGUAcgBFAHgAYwBlAHAAdABpAG8AbgAuAE0AZQBzAHMAYQBnAGUAOwAgAH0AIABmAGkAbgBhAGwAbAB5ACAAewAgAGkAZgAgACgAJABiACAALQBuAGUAIAAkAG4AdQBsAGwAKQAgAHsAIAAkAGIALgBDAGwAZQBhAHIAKAApADsAIAB9ACAAaQBmACAAKAAkAHIAbgBnACAALQBuAGUAIAAkAG4AdQBsAGwAKQAgAHsAIAAkAHIAbgBnAC4ARABpAHMAcABvAHMAZQAoACkAOwAgAH0AIABpAGYAIAAoACQAcwAgAC0AbgBlACAAJABuAHUAbABsACkAIAB7ACAAJABzAC4AQwBsAG8AcwBlACgAKQA7ACAAJABzAC4ARABpAHMAcABvAHMAZQAoACkAOwAgAH0AIABpAGYAIAAoACQAZgAgAC0AbgBlACAAJABuAHUAbABsACkAIAB7ACAAQwBsAGUAYQByAC0AVgBhAHIAaQBhAGIAbABlACAALQBOAGEAbQBlACAAIgBmACIAOwAgAH0AIAB9ACAAfQANAAoA

The encoded script will prompt for input. See the slightly altered and minified script here.

To pass parameters to PowerShell encoded command, run the following command from either PowerShell or Command Prompt:

PowerShell -Command "'.\somefile.txt'" | PowerShell -ExecutionPolicy Unrestricted -EncodedCommand JABwACAAPQAgACQAKABSAGUAYQBkAC0ASABvAHMAdAAgAC0AUAByAG8AbQBwAHQAIAAiAEUAbgB0AGUAcgAgAGYAaQBsAGUAIABwAGEAdABoACIAKQAuAFQAcgBpAG0AKAApADsAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAIgAiADsAIABpAGYAIAAoACQAcAAuAEwAZQBuAGcAdABoACAALQBsAHQAIAAxACkAIAB7ACAAVwByAGkAdABlAC0ASABvAHMAdAAgACIARgBpAGwAZQAgAGkAcwAgAHIAZQBxAHUAaQByAGUAZAAiADsAIAB9ACAAZQBsAHMAZQAgAHsAIABXAHIAaQB0AGUALQBIAG8AcwB0ACAAIgAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAYABuACMAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIwBgAG4AIwAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAARgBpAGwAZQAgAFMAaAByAGUAZABkAGUAcgAgADEALgAzACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAjAGAAbgAjACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIABiAHkAIABJAHYAYQBuACAAUwBpAG4AYwBlAGsAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACMAYABuACMAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIwBgAG4AIwAgAEcAaQB0AEgAdQBiACAAcgBlAHAAbwBzAGkAdABvAHIAeQAgAGEAdAAgAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBpAHYAYQBuAC0AcwBpAG4AYwBlAGsALwBmAGkAbABlAC0AcwBoAHIAZQBkAGQAZQByAC4AIAAgACAAIAAgACAAIAAgACAAIAAjAGAAbgAjACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACMAYABuACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAjACMAIwAiADsAIAAkAHMAegAgAD0AIAAyADAANAA4ADsAIAAkAGIAIAA9ACAAJABuAHUAbABsADsAIAAkAHIAbgBnACAAPQAgACQAbgB1AGwAbAA7ACAAJABzACAAPQAgACQAbgB1AGwAbAA7ACAAJABmACAAPQAgACQAbgB1AGwAbAA7ACAAdAByAHkAIAB7ACAAJABmACAAPQAgAEcAZQB0AC0ASQB0AGUAbQAgACQAcAAgAC0ARQByAHIAbwByAEEAYwB0AGkAbwBuACAAUwBpAGwAZQBuAHQAbAB5AEMAbwBuAHQAaQBuAHUAZQA7ACAAaQBmACAAKAAkAGYAIAAtAGUAcQAgACQAbgB1AGwAbAApACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFAAYQB0AGgAIABkAG8AZQBzACAAbgBvAHQAIABlAHgAaQBzAHQAcwAiADsAIAB9ACAAZQBsAHMAZQBpAGYAIAAoACQAZgAgAC0AaQBzAG4AbwB0ACAAWwBJAE8ALgBGAGkAbABlAEkAbgBmAG8AXQApACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAiAFAAYQB0AGgAIABzAHAAZQBjAGkAZgBpAGUAZAAgAGkAcwAgAG4AbwB0ACAAYQAgAGYAaQBsAGUAIgA7ACAAfQAgAGUAbABzAGUAIAB7ACAAJABmAC4AQQB0AHQAcgBpAGIAdQB0AGUAcwAgAD0AIAAiAE4AbwByAG0AYQBsACIAOwAgACQAcwBlAGMAIAA9ACAAWwBNAGEAdABoAF0AOgA6AEMAZQBpAGwAaQBuAGcAKAAkAGYALgBMAGUAbgBnAHQAaAAgAC8AIAAkAHMAegApADsAIAAkAGIAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAEIAeQB0AGUAWwBdACAAJABzAHoAOwAgACQAcgBuAGcAIAA9ACAAWwBTAGUAYwB1AHIAaQB0AHkALgBDAHIAeQBwAHQAbwBnAHIAYQBwAGgAeQAuAFIAYQBuAGQAbwBtAE4AdQBtAGIAZQByAEcAZQBuAGUAcgBhAHQAbwByAF0AOgA6AEMAcgBlAGEAdABlACgAKQA7ACAAJABzACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABJAE8ALgBGAGkAbABlAFMAdAByAGUAYQBtACgAJABmAC4ARgB1AGwAbABOAGEAbQBlACwAIABbAEkATwAuAEYAaQBsAGUAQQBjAGMAZQBzAHMAXQA6ADoAVwByAGkAdABlACkAOwAgAGYAbwByACAAKAAkAGkAIAA9ACAAMAA7ACAAJABpACAALQBsAHQAIAA3ADsAIAAkAGkAKwArACkAIAB7ACAAJABzAC4AUABvAHMAaQB0AGkAbwBuACAAPQAgADAAOwAgAGYAbwByACAAKAAkAGoAIAA9ACAAMAA7ACAAJABqACAALQBsAHQAIAAkAHMAZQBjADsAIAAkAGoAKwArACkAIAB7ACAAJAByAG4AZwAuAEcAZQB0AEIAeQB0AGUAcwAoACQAYgApADsAIAAkAHMALgBXAHIAaQB0AGUAKAAkAGIALAAgADAALAAgACQAYgAuAEwAZQBuAGcAdABoACkAOwAgAH0AIAB9ACAAJABzAC4AUwBlAHQATABlAG4AZwB0AGgAKAAwACkAOwAgACQAcwAuAEMAbABvAHMAZQAoACkAOwAgACQAZgAuAEMAcgBlAGEAdABpAG8AbgBUAGkAbQBlACAAPQAgACIAMAA5AC8AMAA2AC8AMgAwADYAOQAgADAANAA6ADIAMAA6ADAAMAAgAEEATQAiADsAIAAkAGYALgBMAGEAcwB0AFcAcgBpAHQAZQBUAGkAbQBlACAAPQAgACIAMAA5AC8AMAA2AC8AMgAwADYAOQAgADAANAA6ADIAMAA6ADAAMAAgAEEATQAiADsAIAAkAGYALgBMAGEAcwB0AEEAYwBjAGUAcwBzAFQAaQBtAGUAIAA9ACAAIgAwADkALwAwADYALwAyADAANgA5ACAAMAA0ADoAMgAwADoAMAAwACAAQQBNACIAOwAgACQAZgAuAEQAZQBsAGUAdABlACgAKQA7ACAAVwByAGkAdABlAC0ASABvAHMAdAAgACIARgBpAGwAZQAgAGgAYQBzACAAYgBlAGUAbgAgAHMAaAByAGUAZABkAGUAZAAgAHMAdQBjAGMAZQBzAHMAZgB1AGwAbAB5ACIAOwAgAH0AIAB9ACAAYwBhAHQAYwBoACAAewAgAFcAcgBpAHQAZQAtAEgAbwBzAHQAIAAkAF8ALgBFAHgAYwBlAHAAdABpAG8AbgAuAEkAbgBuAGUAcgBFAHgAYwBlAHAAdABpAG8AbgAuAE0AZQBzAHMAYQBnAGUAOwAgAH0AIABmAGkAbgBhAGwAbAB5ACAAewAgAGkAZgAgACgAJABiACAALQBuAGUAIAAkAG4AdQBsAGwAKQAgAHsAIAAkAGIALgBDAGwAZQBhAHIAKAApADsAIAB9ACAAaQBmACAAKAAkAHIAbgBnACAALQBuAGUAIAAkAG4AdQBsAGwAKQAgAHsAIAAkAHIAbgBnAC4ARABpAHMAcABvAHMAZQAoACkAOwAgAH0AIABpAGYAIAAoACQAcwAgAC0AbgBlACAAJABuAHUAbABsACkAIAB7ACAAJABzAC4AQwBsAG8AcwBlACgAKQA7ACAAJABzAC4ARABpAHMAcABvAHMAZQAoACkAOwAgAH0AIABpAGYAIAAoACQAZgAgAC0AbgBlACAAJABuAHUAbABsACkAIAB7ACAAQwBsAGUAYQByAC0AVgBhAHIAaQBhAGIAbABlACAALQBOAGEAbQBlACAAIgBmACIAOwAgAH0AIAB9ACAAfQANAAoA

To generate a PowerShell encoded command from a PowerShell script, run the following PowerShell command:

[Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes([IO.File]::ReadAllText($script)))

To decode a PowerShell encoded command, run the following PowerShell command:

[Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($command))