stefanmuc
Goto Top

Powershell Get-ChildItem,Where-Object: Wie Exclude-Ordner,Notlike definieren?

Hallo,

ich hätte gerne eine Liste aller Dateien, die ab dem 8.11.24 in Laufwerk c:\ geschrieben wurden, jedoch NICHT in den Ordnern (und darunter) der Pfade "c:\Windows\*" sowie "C:\Program Files (x86)\*":

Die Exclude-Option bei Get-ChildItem wird leider nicht berücksichtigt:
Get-ChildItem -Path C:\ -Recurse -Exclude ('C:\Windows\*','C:\Program Files (x86)\*') -File | Where-Object { $_.LastWriteTime -gt '2024-11-07' }  

Auch der Ausschluss im Where-Object-Bereich klappt nicht:
Get-ChildItem -Path C:\ -Recurse -File | Where-Object { $_.LastWriteTime -gt '2024-11-07' } | Where-Object { $_.Fullname -notlike ('C:\Windows\*','C:\Program Files (x86)\*') } | Foreach-Object { $_.Fullname }  

Was mache ich falsch?

Content-ID: 669727

Url: https://administrator.de/contentid/669727

Ausgedruckt am: 24.11.2024 um 14:11 Uhr

OskarPS
Lösung OskarPS 24.11.2024 aktualisiert um 12:45:04 Uhr
Goto Top
$d = get-date '2024-11-08'  
Get-ChildItem -Path C:\ -Recurse -File -EA SilentlyContinue | ?{$_.LastWriteTime -ge $d -and $_.Fullname -notmatch '^C:\\(Windows|Program Files \(x86\))\\'} | % Fullname  

Oder andere Methode
$d = get-date '2024-11-08'  
Get-ChildItem -Path C:\ -Directory -Exclude "Windows","Program Files (x86)" | Get-ChildItem -Recurse -File -EA SilentlyContinue | ?{ $_.LastWriteTime -ge $d} | % Fullname  
StefanMUC
StefanMUC 24.11.2024 um 14:02:28 Uhr
Goto Top
So klappt es, danke!