Powershell Unblock All Files In Directory May 2026

Get-ChildItem -Path "C:\YourDirectory" -Recurse -File | ForEach-Object Remove-Item -Path $_.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue

Get-ChildItem -Path "C:\YourDirectory" -Recurse -File | Where-Object (Get-Item $_.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue) -ne $null

Get-ChildItem -Path "C:\YourDirectory" | Unblock-File Or using the alias: powershell unblock all files in directory

Overview When you download files from the internet or receive them from external sources, Windows automatically adds an "alternate data stream" (ADS) called the Zone Identifier. This marks files as potentially unsafe, causing PowerShell scripts, executables, and other files to be blocked. The Unblock-File cmdlet in PowerShell removes this restriction. The Basic Command To unblock all files within a specific directory:

# Check current execution policy Get-ExecutionPolicy powershell -ExecutionPolicy Bypass -Command "Get-ChildItem -Recurse | Unblock-File" Alternative Method Using Streams For older PowerShell versions (prior to 3.0) or more granular control: The Basic Command To unblock all files within

ls "C:\YourDirectory" | Unblock-File 1. Recursively Unblock All Files in Subdirectories Get-ChildItem -Path "C:\YourDirectory" -Recurse | Unblock-File 2. Unblock Only Specific File Types # Unblock only PowerShell scripts Get-ChildItem -Path "C:\YourDirectory" -Filter *.ps1 -Recurse | Unblock-File Unblock multiple file types Get-ChildItem -Path "C:\YourDirectory" -Include *.ps1, *.exe, *.dll -Recurse | Unblock-File 3. With Error Handling Get-ChildItem -Path "C:\YourDirectory" -Recurse -File | ForEach-Object try Unblock-File -Path $_.FullName -ErrorAction Stop Write-Host "Unblocked: $($_.FullName)" -ForegroundColor Green catch Write-Host "Failed to unblock: $($_.FullName) - $_" -ForegroundColor Red

The Unblock-File cmdlet provides a simple, powerful way to remove Windows zone identifiers from files. While convenient for developers and power users working with trusted downloaded content, always exercise caution and verify file sources before unblocking. The recursive option ( -Recurse ) is particularly useful for cleaning entire project directories or script collections at once. *.dll -Recurse | Unblock-File 3.

# Unblock all downloaded scripts in a project folder $projectPath = "C:\Users\$env:USERNAME\Downloads\ProjectFiles" if (Test-Path $projectPath) Write-Host "Unblocking files in: $projectPath" -ForegroundColor Cyan $count = (Get-ChildItem $projectPath -Recurse -File else Write-Host "Directory not found" -ForegroundColor Red