Welcome to the blog of Andreas Dieckmann
Das Datum einer Datei kann beliebig per PowerShell gesetzt beziehungsweise manipuliert werden. Im Screenshot sind beispielhaft ein paar beliebig gesetzte Werte zu sehen. Die Vorgehensweise ist getestet mit Windows PowerShell 5.1.
Per Get-Member
kann man sich die Zeit-Attribute einer Datei anzeigen lassen.
Get-Item beispiel.txt | Get-Member *time*
Interessant sind hier die Attribute:
Wie hinten am {get;set;}
zu erkennen ist, kann man die Attribute auch nicht nur auslesen, sondern auch setzen.
Im Folgenden zeige ich ein paar Beispiele, wie das Änderungsdatum, der Zeitpunkt des letzten Zugriffs und des Erstellzeitpunkts von einzelnen Dateien oder auch allen Dateien in einem Ordner geändert werden kann.
Ich generiere das Datum am liebsten im folgendem Format: 2020-09-13T13:37:37
(siehe auch ISO 8601), alternativ vereinfacht auf 2020-09-13 13:37
. Dieses standardisierte Format funktioniert unabhängig von OS-Lokalisierungen.
Mit gci
(Abkürzung/Alias für Get-ChildItem
) lesen wir alle Elemente (Ordner und Dateien) im aktuellen Ordner aus. Mit %
(Alias für ForEach-Object
) gehen wir durch alle Elemente eingegebenen Elemente durch.
Beispiele zum Erstelldatum (“Erstellt”) ändern:
# Erstelldatum aller Elemente im aktuellen Ordner auf 1991-11-06 12:03 setzen
gci | %{$_.CreationTime=(Get-Date "1991-11-06 12:03")}
# Erstelldatum einer bestimmten Datei auf 1991-11-06 12:03 setzen
Get-Item "Beispiel.txt" | %{$_.CreationTime=(Get-Date "1991-11-06 12:03")}
Beispiele zum Änderungsdatum (“Geändert”) ändern:
# Änderungsdatum aller Elemente im aktuellen Ordner auf 2021-05-01 17:01 setzen
gci | %{$_.LastWriteTime=Get-Date "2021-05-01 17:01"}
# Änderungsdatum einer bestimmten Datei im aktuellen Ordner auf 2021-05-01 17:01 setzen
Get-Item "Beispiel.txt" | %{$_.LastWriteTime=Get-Date "2021-05-01 17:01"}
Beispiele zum Zugriffszeitpunkt (“Letzter Zugriff”) ändern:
# Zugriffsdatum aller Elemente im aktuellen Ordner auf 2019-01-06 08:03 setzen
gci | %{$_.LastAccessTime=(Get-Date "2019-01-06 08:03")}
# Zugriffsdatum eines bestimmten Elements im aktuellen Ordner auf 2019-01-06 08:03 setzen
Get-Item "Beispiel.txt" | %{$_.LastAccessTime=(Get-Date "2019-01-06 08:03")}
Da die Zeit-Attribute von Dateien beliebig manipuliert werden können, sollte ihnen nicht getraut werden. Sie können bestenfalls als Anhaltspunkt für eine Aktion in einem System genutzt werden. Ein Beweis sind sie jedoch definitiv nicht.
Diecknet ist der IT-Blog von Andreas Dieckmann.
#exchangeonline (2) #trial (1) #azureadconnect (2) #selfservice (1) #diecknet (1) #microsoft365 (5) #hybrididentity (2) #exchange (5) #hybrid (2) #powershell (4) #ntfs (2) #exchange2013 (3) #licensing (2) #office365 (7) #acl (1) #exchange2010 (1) #azuread (3) #exchangehybrid (1) #windowsvirtualdesktop (1) #ios (1) #fslogix (1) #windowsserver (1) #oauth (1) #iphone (1) #activedirectory (2) #accessrights (1) #apple (1) #powershellsnips (1) #about (1)