Ordner überwachen und Datei löschen, falls vorhanden/erstellt

Ordner überwachen und Datei löschen, falls vorhanden/erstellt

Ich möchte einen Ordner überwachen und jedes Mal, wenn eine Datei mit einem bestimmten Namen erstellt wird oder einfach existiert, möchte ich sie löschen. Ich möchte alles so lassen, wie es Windows 7 ursprünglich war, um die Installation anderer Software/Pakete zu vermeiden. Ich glaube, Powershell und FileSystemWatcher könnten das, aber ich habe mit keinem von beiden Erfahrung.

Die konkrete Anwendung besteht darin, dass mein Arbeitgeber regelmäßig (~90 Min.) den Ordner „C:\Windows\System32\oobe\info\backgrounds“ auf meinem Büro-PC anpingt und „backgroundDefault.jpg“ mit etwas Werbung hinzufügt. Ich möchte diese Datei löschen, um die generische Windows-Standarddatei beizubehalten. Ich habe versucht, eine Datei mit dem Namen „background1920x1080.jpg“ zu erstellen, da ich weiß, dass Windows bevorzugt Dateien mit einer Auflösung im Namen lädt, aber 1920x1080 scheint keine dieser erkannten Auflösungen zu sein.

Jede Hilfe wird sehr geschätzt.

Antwort1

Mit dem File System Watcher können Sie Dateien und Ordner überwachen und entsprechende Maßnahmen ergreifen. Das ist eine gängige Funktion und wird in den Hilfedateien sowie in vielen Beispielen und vorgefertigten Skripts im gesamten Web gezeigt ...

Suche nach: „PowerShell Filesystem Watcher“

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

Nachverfolgen von Änderungen an einem Ordner mit 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

Verwenden eines FileSystemWatcher aus PowerShell http://www.mobzystems.com/code/using-a-filesystemwatcher-from-powershell

… sogar Videos zum Thema…

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

... sowie bereits in der MS TechNet und MS PowerShell Gallery …

Powershell FileSystemWatcher

Dieses Skript verwendet die .net FileSystemWatcher-Klasse, um die Ereignisse „Erstellen“, „Ändern“ und „Löschen“ für Dateien oder Ordner im NTFS-Dateisystem zu abonnieren. Es kann zum Überwachen eines oder mehrerer Ordner verwendet und so geändert werden, dass beim Auslösen dieser Ereignisse beliebige Aktionen ausgeführt werden.

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

... aber ich stimme dem zu, was Senor CMasMas gesagt hat. Treffen Sie solche Entscheidungen nicht einfach willkürlich und ohne Plan und Benachrichtigung.

Dies bedeutet auch, dass Sie mit PowerShell im Allgemeinen noch nicht vertraut sind.

Sie müssen sich also unbedingt erst einmal damit vertraut machen, YouTube ist dafür Ihr Freund. Führen Sie niemals destruktive Aktionen mit einem Ansatz aus, den Sie nicht vollständig verstehen. Führen Sie niemals willkürlich den Code einer anderen Person aus, egal, wer ihn Ihnen gibt oder woher Sie ihn haben, es sei denn, Sie verstehen die Auswirkungen seiner Verwendung vollständig. Sie können Ihr System und/oder Ihre Umgebung zerstören, wenn Sie nicht vorsichtig sind.

verwandte Informationen