Como posso fazer o Windows pensar que um arquivo “veio de outro computador”?

6

As respostas em "Este arquivo veio de outro computador ..." - como desbloquear todos os arquivos em uma pasta sem ter para desbloqueá-los individualmente? explique como "Desbloquear" um arquivo que veio de uma fonte remota. Para fins de teste, gostaria de realizar o inverso. Como defino o identificador de zona de um arquivo para que o Windows o "bloqueie"?

Eu sou parcial a uma solução do PowerShell, mas outros mecanismos são aceitáveis.

    
por jpmc26 24.07.2018 / 21:54

1 resposta

10

Quando um arquivo é baixado, você pode perceber que na caixa de diálogo de propriedades do arquivo há uma seção Security adicional com uma caixa de seleção Unblock :

Essesdadosadicionaissobreoarquivosãoarmazenadosem Fluxo de Dados Alternativos (ADS) . Os fluxos de dados alternativos podem ser visualizados de várias maneiras, com ferramentas como Fluxos , mas agora mais convenientemente com o PowerShell.

Por exemplo, para exibir todos os fluxos de um arquivo, o seguinte comando do PowerShell pode ser usado:

Get-Item -Path Autologon.exe -Stream *

A saída é a seguinte:

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\ads\Autologon.exe::$DATA
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\ads
PSChildName   : Autologon.exe::$DATA
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\ads\Autologon.exe
Stream        : :$DATA
Length        : 138920

PSPath        : Microsoft.PowerShell.Core\FileSystem::C:\ads\Autologon.exe:Zone.Identifier
PSParentPath  : Microsoft.PowerShell.Core\FileSystem::C:\ads
PSChildName   : Autologon.exe:Zone.Identifier
PSDrive       : C
PSProvider    : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName      : C:\ads\Autologon.exe
Stream        : Zone.Identifier
Length        : 26

Para os propósitos desta pergunta, é o fluxo Zone.Identifier em que estamos interessados.

Para adicionar ou atualizar manualmente um fluxo% Zone.Identifier e definir o valor do fluxo, podemos executar o seguinte comando do PowerShell:

Set-Content -Path .\file.exe -Stream Zone.Identifier -Value '[ZoneTransfer]','ZoneId=3'

Onde o ZoneId especificado pode ser um dos seguintes valores:

0 = "Local machine"
1 = "Local intranet"
2 = "Trusted sites"
3 = "Internet"
4 = "Restricted sites"

Observação : para remover um fluxo ZoneTransfer de um arquivo e, portanto, executar a mesma operação que desbloqueia o arquivo do diálogo de propriedades do arquivo, você pode executar o seguinte comando: Remove-Item -Path .\file.exe -Stream Zone.Identifier

    
por 24.07.2018 / 23:25