Get-childitem -recurse -file | Unblock-file 2021 ❲iPad❳
if ($Confirm -and $blockedFiles.Count -gt 0) $response = Read-Host "Unblock these $($blockedFiles.Count) files? (Y/N)" if ($response -ne 'Y') return
.\Unblock-Tree.ps1 -Path "C:\MyFolder" -WhatIf # Preview only .\Unblock-Tree.ps1 -Path "C:\MyFolder" -Confirm # With confirmation The command Get-ChildItem -Recurse -File | Unblock-File is powerful but should be used carefully. Always preview blocked files first, understand where they came from, and only unblock files you completely trust. For daily use with your own scripts or trusted projects, it's a safe time-saver that eliminates the need to manually unblock hundreds of files.
[Parameter(Mandatory=$false)] [switch]$Confirm ) get-childitem -recurse -file | unblock-file
Usage:
param( [Parameter(Mandatory=$false)] [string]$Path = ".", [Parameter(Mandatory=$false)] [switch]$WhatIf, if ($Confirm -and $blockedFiles
foreach ($file in $files) $hasZone = Get-Item $file.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue if ($hasZone) $blockedFiles += $file
$files = Get-ChildItem -Path $Path -Recurse -File $blockedFiles = @() For daily use with your own scripts or
$blockedFiles | Unblock-File Write-Host "Unblocked $($blockedFiles.Count) files" -ForegroundColor Green