Solução rápida: Execute Get-ChildItem -Path C:\Downloads -Recurse | Unblock-File em um PowerShell elevado para remover o flag “baixado da Internet” (stream Zone.Identifier) de todos os arquivos em uma pasta de uma só vez. Isso elimina o aviso “Este arquivo veio de outro computador” sem desabilitar o SmartScreen.
O Windows 11 marca todo arquivo baixado pelo navegador, cliente de email ou gerenciador de downloads com um fluxo de dados alternativo (ADS) chamado Zone.Identifier. Ao tentar abrir um desses arquivos, o Windows verifica o fluxo e exibe um aviso de segurança ou, pior, simplesmente se recusa a executar scripts. Para um único arquivo, a caixa de seleção Propriedades → Desbloquear no menu de contexto é suficiente. Para uma pasta com centenas de arquivos (um arquivo de scripts, um repositório de código recente de um colega), é necessário desbloqueá-los em lote.
Afeta: Windows 11 com comportamento padrão do SmartScreen / Marca da Web.
Tempo de correção: 2 minutos.
O que o fluxo Zone.Identifier faz
Quando um navegador salva um arquivo da Internet, ele escreve um fluxo de dados alternativo chamado Zone.Identifier junto com o arquivo principal. O fluxo contém algumas linhas: ZoneId (geralmente 3 para “Internet”), a URL de origem e a URL de referência. O Windows lê isso sempre que um arquivo é aberto e decide se deve exibir o aviso de segurança, se o PowerShell deve ignorar a política de execução ou se as macros devem ser desabilitadas. O mecanismo é chamado de Marca da Web (MotW).
Remover o fluxo remove o flag “veio de outro computador” para esse arquivo. O arquivo em si permanece inalterado. Outras verificações de segurança (SmartScreen, antivírus, assinatura de código) ainda se aplicam.
Método 1: Unblock-File para uma pasta inteira
- Abra o PowerShell (não é necessário administrador para arquivos no seu próprio perfil).
- Navegue até a pasta pai. Por exemplo,
cd C:\Downloads\projetofoo. - Execute:
Get-ChildItem -Recurse | Unblock-File - O comando remove silenciosamente o fluxo Zone.Identifier de todos os arquivos na pasta atual. Nenhuma saída significa sucesso.
- Para arquivos fora do seu perfil, execute o PowerShell como Administrador e use o caminho absoluto:
Get-ChildItem -Path D:\repos\ferramenta-cliente -Recurse | Unblock-File.
Este é o caminho mais limpo. Unblock-File é um cmdlet de primeira classe, presente em toda instalação do Windows, e mexe apenas no ADS — não modifica nenhum outro metadado do arquivo.
Método 2: Remover o fluxo manualmente com a sintaxe de dois pontos
Para scripts em torno do Unblock-File, ou para inspecionar o que realmente está armazenado, use a sintaxe de fluxo alternativo diretamente.
- Para listar fluxos em um arquivo:
Get-Item C:\Downloads\teste.zip -Stream * - Para visualizar o conteúdo do fluxo Zone.Identifier:
Get-Content C:\Downloads\teste.zip -Stream Zone.Identifier - Para excluir apenas o fluxo Zone.Identifier:
Remove-Item C:\Downloads\teste.zip -Stream Zone.Identifier - Para lote:
Get-ChildItem C:\Downloads -Recurse -File | ForEach-Object { Remove-Item $_.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue }
Isso oferece um controle mais refinado do que o Unblock-File e é útil se você quiser registrar quais arquivos tinham o fluxo antes de removê-los.
Método 3: Bloquear MotW para uma pasta confiável via GPO
Se você baixa regularmente para a mesma pasta de uma fonte confiável e não quer ficar desbloqueando arquivos, adicione a pasta à zona de Intranet Local — o Windows então não aplicará MotW a nada que chegar lá.
- Abra
inetcpl.cpl. Vá para a guia Segurança. - Clique em Intranet local → Sites → Avançado.
- Adicione
file://localhost/C:/Downloads/fonte-confiavel(ajuste o caminho). Clique em Adicionar, depois Fechar. - Isso não afeta novos downloads (os navegadores ainda os marcam), mas instrui o Windows a tratar arquivos nesse caminho como zona de Intranet Local — restrições menores.
- Para uma abordagem mais drástica, defina o valor do registro
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments\SaveZoneInformationcomo1. Isso instrui o Windows a não escrever fluxos Zone.Identifier. (Não faça isso em um PC compartilhado; enfraquece a proteção MotW globalmente.)
O método 3 é mais útil para servidores de build, runners de CI/CD e máquinas similares onde todo arquivo baixado é confiável e os avisos de segurança só atrapalham.
Como verificar se a correção funcionou
- Clique com o botão direito em um arquivo anteriormente bloqueado e escolha Propriedades. A caixa de seleção Desbloquear na parte inferior da guia Geral desapareceu — o arquivo não está mais marcado.
- Tente abri-lo. Nenhum diálogo “Este arquivo veio de outro computador” aparece.
- Para scripts PowerShell, execute-os — eles rodam sem o banner “a execução de scripts está desabilitada” causado pelo MotW (supondo que sua ExecutionPolicy já os permita).
- Execute
Get-Item arquivo.ext -Stream Zone.Identifier— retorna um erro porque o fluxo não existe mais.
Se nada disso funcionar
Se os arquivos continuarem bloqueados após o Unblock-File, seu navegador ou uma ferramenta de sincronização está reaplicando o MotW a cada salvamento. Verifique as configurações da ferramenta de download — alguns clientes VPN e navegadores gerenciados por empresas reescrevem o fluxo com valores de ZoneId mais restritivos. Para arquivos em pastas do OneDrive ou Dropbox que rebloqueiam após a sincronização, o cliente de nuvem está preservando o ADS durante o ciclo; desbloqueie localmente após a sincronização, não antes. Como último recurso, copie os arquivos para um local confiável, execute Unblock-File lá e deixe os originais de lado — o Windows trata a cópia como recém-criada, sem MotW.
Conclusão: Get-ChildItem -Recurse | Unblock-File resolve 99% das necessidades de desbloqueio em lote em uma linha. Use a sintaxe manual de fluxo quando precisar registrar ou inspecionar; use a abordagem GPO/zona para pastas na lista de permissões.