MOTW "Mark of the Web", blockierte Daten ab UNC-Netzfreigabe lokal mit Powershell normalisieren...

Problemstellung:
Ich hab mit Windoof 11 24H2 viele Dateien von einer Netzfreigabe auf meine lokale Disk kopiert. Diese müssen jetzt alle gezielt, einzeln für ok befunden werden, dass man beim öffnen ab lokalem Datenträger nicht die Meldung bekommt dies Daten stamme aus einer Netzwerkablage und könnet Schäden verursachen. Nun hätte ich gehofft ich kann diesen Umstand mit eine Powershell Script korrigieren. zB. über das ganze lokale Datenlaufwerk alle Attribute dahingehend korrigieren lassen. Lokale Adminrechte sind vorhanden.

Lösung:
Ja, ich habe eine Lösung für dich! Das Problem, das du beschreibst, kommt vom "Mark of the Web" (MOTW), der in Windows-Dateien aus unsicheren Quellen (wie Netzwerkfreigaben) gespeichert wird. Das sitzt in einem alternativen Datenstrom namens Zone.Identifier. Wenn du Dateien von einem Netzwerk kopierst, markiert Windows sie so, und du bekommst diese Warnmeldung beim Öffnen.
Du kannst das mit PowerShell beheben, indem du den Befehl Unblock-File verwendest. Das entfernt den MOTW für Dateien. Da du lokale Admin-Rechte hast, solltest du PowerShell als Administrator ausführen, um sicherzustellen, dass es überall funktioniert.

PowerShell-Skript-Vorschlag:
Öffne PowerShell als Administrator (rechtsklick auf PowerShell und "Als Administrator ausführen").
Dann führe diesen Befehl aus, um alle Dateien in einem Verzeichnis (und Unterverzeichnissen) zu "entblocken".
Ersetze C:\DeinLaufwerk durch den Pfad zu deinem lokalen Laufwerk oder Ordner (z. B. D:\ für das gesamte D-Laufwerk):

powershell
Get-ChildItem -Path C:\DeinLaufwerk -Recurse | Unblock-File

Erklärung:
  • Get-ChildItem -Path C:\DeinLaufwerk -Recurse: Holt alle Dateien (und Unterordner) rekursiv.
  • | Unblock-File: Leitet die Liste an Unblock-File weiter, das den MOTW entfernt.
Das Skript ist sicher und ändert nichts anderes an den Dateien – nur den Datenstrom. Es könnte bei großen Laufwerken etwas dauern (je nach Anzahl der Dateien), aber es läuft im Hintergrund.

Tipps:
  • Testen: Probiere es zuerst in einem kleinen Testordner aus, z. B. Get-ChildItem -Path C:\TestOrdner -Recurse | Unblock-File, um zu sehen, ob es funktioniert.
  • Fehlerbehandlung: Wenn es Dateien gibt, die du nicht ändern kannst (z. B. systemgeschützt), könnte es Fehlermeldungen geben. Du kannst -ErrorAction SilentlyContinue hinzufügen, um sie zu ignorieren:
    powershell
    Get-ChildItem -Path C:\DeinLaufwerk -Recurse -ErrorAction SilentlyContinue | Unblock-File
  • Alternative für einzelne Dateien: Für eine einzelne Datei: Unblock-File -Path C:\Pfad\Zur\Datei.exe.
  • Überprüfen: Nach dem Ausführen solltest du die Warnmeldung nicht mehr bekommen. Wenn doch, check mal mit Get-Content -Path Datei.exe -Stream Zone.Identifier (das zeigt den Stream, falls noch vorhanden).

Als Anhang eine ausgefeiltes Muster als PS1 mit Log was geändert wurde :)

Wie immer, kompetente und hilfreiche Unterstützung von Grok xAI

anhängende Datei(en)
14e_MOTW_Remover.ps1
404kb
Tags