Monitore a pasta e exclua o arquivo se existir/criado

Monitore a pasta e exclua o arquivo se existir/criado

Gostaria de monitorar uma pasta e toda vez que um arquivo com um nome específico for criado, ou se simplesmente existir, gostaria de excluí-lo. Eu gostaria de manter as coisas nativas do Windows 7 para evitar a instalação de outros softwares/pacotes. Acredito que o Powershell junto com o FileSystemWatcher seriam capazes de fazer isso, mas não tenho experiência com nenhum deles.

A aplicação específica é que meu empregador regularmente (~ 90 minutos) faz ping na pasta 'C:\Windows\System32\oobe\info\backgrounds' no meu PC do escritório e adiciona 'backgroundDefault.jpg', com alguns anúncios. Eu gostaria de excluir este arquivo para manter o padrão genérico do Windows. Tentei criar um arquivo chamado 'background1920x1080.jpg', pois entendo que o Windows carregará preferencialmente um arquivo com uma resolução no nome, mas parece que 1920x1080 não é uma dessas resoluções reconhecidas.

Qualquer ajuda é muito apreciada.

Responder1

Você pode usar o File System Watcher para monitorar e executar ações em arquivos e pastas, é algo comum e mostrado nos arquivos de ajuda e em muitos exemplos e scripts pré-construídos em toda a web ...

Pesquisar por: 'observador do sistema de arquivos powershell'

FileSystemWatcherClass https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

Rastreando alterações em uma pasta usando PowerShell

$FileSystemWatcher = New-Object System.IO.FileSystemWatcher
$FileSystemWatcher | Get-Member -Type Properties, Event 

$FileSystemWatcher.Path = "C:\Users\proxb\Desktop\DropBox"

Register-ObjectEvent -InputObject $FileSystemWatcher  -EventName Created  -Action {

    $Object = "{0} was  {1} at {2}" -f $Event.SourceEventArgs.FullPath,
    $Event.SourceEventArgs.ChangeType,
    $Event.TimeGenerated

    $WriteHostParams = @{
        ForegroundColor = 'Green'
        BackgroundColor = 'Black'
        Object          = $Object
    }
    Write-Host @WriteHostParams
} 

https://mcpmag.com/articles/2015/09/24/changes-to-a-folder-using-powershell.aspx

Usando um FileSystemWatcher do PowerShell http://www.mobzystems.com/code/using-a-filesystemwatcher-from-powershell

… até vídeos sobre o assunto…

https://www.youtube.com/results?search_query=powershell+file+system+watcher

... bem como já na Galeria MS TechNet e MS PowerShell…

Powershell FileSystemWatcher

Este script usa a classe .net FileSystemWatcher para assinar eventos 'criar', 'alterar' e 'excluir' em arquivos ou pastas no sistema de arquivos NTFS. Ele pode ser usado para monitorar uma pasta ou pastas e pode ser modificado para executar qualquer ação após o desencadeamento desses eventos.

https://gallery.technet.microsoft.com/scriptcenter/Powershell-FileSystemWatche-dfd7084b/file/42206/1/FileSystemWatcher.ps1

... mas idem ao que o Senor CMasMas disse. Não tome esses tipos de decisões aleatoriamente, sem um plano e notificação.

Além disso, isso também indica que você é novo no PowerShell em geral

Então, você realmente precisa acelerar isso primeiro, o you tube é seu amigo para isso. Nunca, jamais, faça ações destrutivas com uma abordagem que você não entende totalmente. Nunca execute aleatoriamente o código de alguém, não importa quem o forneceu ou de onde você o obteve, a menos que você compreenda completamente as ramificações de usá-lo. Você pode destruir seu sistema e/ou ambiente se não tomar cuidado.

informação relacionada