Gibt es eine Möglichkeit, eine Datei mit integrierten Tools zu sperren, damit sie nicht gelöscht oder überschrieben werden kann?
Zum Testen von Kopierskripten muss ich lock files temporarily
die Fehlerbehandlung in den Skripten überprüfen. Bis XP habe ich eine Datei in debug.exe geladen, um sie zu sperren.
Gibt es eine Möglichkeit in Windows 7 (und höher)?
Edit
Ich weiß, dass es Programme gibt, die das tun. Meine Frage ist, ob es in Windows einen eingebauten Mechanismus gibt. Manchmal muss ich ein Skript auf einem PC überprüfen und möchte dafür keine neuen Programme installieren.
Edit2
Hier sind auch gute Vorschläge: Wie kann man gezielt eine Datei exklusiv sperren? , die jedoch Tools von Drittanbietern benötigen oder die zu sperrende Datei ändern.
quelle
Antworten:
Ich denke, PowerShell ist wahrscheinlich der beste Weg, dies zu erreichen. So etwas wie das folgende:
Während der Pause führt das obige Skript zu der folgenden Aufforderung, wenn versucht wird, "myfile.txt" zu öffnen:
quelle
File::Open
Methode , die Parameter des Aufrufs Detaillierung (genauer gesagt, das letzte Argument,'None'
, lehnt die Aufteilung der Datei mit anderen Threads / Prozesse - nur und ebenso existieren Vorschriften über die Datei zum Lesen / Schreiben sperren oder eine Kombination davon).$host.UI.RawUI.ReadKey(...)
, dass dies in PowerShell ISE fehlschlägt, da ReadKey für die ISE nicht implementiert ist. Die Problemumgehung ist[void](Read-Host 'Press Enter to continue')
. Nicht genau so, wie der Benutzer die Eingabetaste drücken muss, sondern eine beliebige Taste. Für die meisten Zwecke jedoch gut genug. Die Problemumgehung kam von diesem Blog-Beitrag: jeffwouters.nl/index.php/2016/06/…Da ich keine Software installieren möchte, die ich nicht wirklich verwende, habe ich dieses Juwel eines VBScript gefunden:
Das gesamte Guthaben geht an Torgeir Bakken. Den vollständigen Beitrag finden Sie hier: http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/
quelle
Können Sie es nicht als schreibgeschützt markieren? Dies würde die Datei effektiv "sperren", indem sie nicht geändert oder gelöscht werden kann.
Der Befehl attrib.exe ist in der Befehlszeile verfügbar und ermöglicht es Ihnen, eine Datei oder ein Verzeichnis als schreibgeschützt festzulegen. Weitere Informationen zu diesem Befehl finden Sie hier
Umgekehrt können Sie dasselbe über die Benutzeroberfläche tun, indem Sie mit der rechten Maustaste auf die Datei oder das Verzeichnis klicken, die bzw. das Sie als schreibgeschützt markieren möchten, Eigenschaften auswählen und das Kontrollkästchen Schreibgeschützt aktivieren. Wenn Sie auf Übernehmen / Ok klicken, wird die neue Einstellung auf die Datei oder das Verzeichnis angewendet.
quelle
Ist es nicht möglich, den Zugriff auf die Datei über die Registerkarte "Sicherheit" einzuschränken, wenn Sie mit der rechten Maustaste klicken und zu "Eigenschaften" für die Datei oder den Ordner wechseln?
Wenn der Benutzer über Administratorzugriff auf den PC verfügt, kann er dann nicht alle anderen Funktionen entfernen, die mit der Datei / dem Ordner zu tun haben?
Ich muss während der Eingabe zugeben, dass mein Arbeits-PC immer noch unter WinXP Pro läuft. Daher ist das, was ich oben angegeben habe, möglicherweise nicht mehr verfügbar. Ich fühle mich mit meiner neuen Win 8.1 Pro-Box zuhause immer noch nicht so wohl wie mit der Jahre der Arbeit mit Win XP
quelle
In einigen Szenarien erledigt das Erstellen eines neuen Ordners mit dem Namen der Datei möglicherweise die Aufgabe. (Beim Versuch, die Datei zu öffnen, tritt ein Fehler auf.)
quelle