Powershell – View/Find all compressed files on the server

attributescompressionpowershellwindows-server-2003-r2

I need to find all compressed files/folders regardless of file format on a Windows Server 2003 machine.
Search options do not provide this capability.

Is there a way to list/view all compressed files?

Perhaps, this can be done by PowerShell using file/folder attributes and put into a txt file with file location.

UPD:

Under compressed files/folders – I mean files which appear in blue color in Explorer after changing file/folder attribute.

enter image description here

Best Answer

The compressed indicator is stored in the "attributes" property. This Powershell will report compressed files.

gci -r C:\search\path | where {$_.attributes -match "compressed"} | foreach { $_.fullname }

-- Begin Edit

The file size is stored in the length property, which is in bytes. You can use whats called a "calculated property" to display the size in kb,mb,gb, etc.

$col1 = @{label="Size";Expression={$_.length/1mb};FormatString="0.0";alignment="right"}
$col2 = @{label="Fullname";Expression={$_.fullname};alignment="left"}
gci -r | where {$_.attributes -match "compressed"} | ft $col1,$col2 -autosize

If you want only larger files, say greater than 1MB

gci -r | where {$_.attributes -match "compressed" -AND $_.length -gt 1mb} | ft $col1,$col2 -autosize

Folder size is also possible, a slightly different beast. Just try google'ing "powershell folder size" lots of posts on how to do that. There are also many free tools (windirstat) to report folder sizes.