Fileshare-Server bereinigen

Fileshare-Server bereinigen

Ich habe versucht, ein PowerShell-Skript zu erstellen, das alle Dateien und Ordner, ihr Erstellungsdatum und das Datum des letzten Zugriffs, die Größe in MB und, wenn möglich, die letzte Person, die darauf zugegriffen hat, auflistet und einen Export in eine CSV-Datei ermöglicht.

Ich habe einige Skripte getestet und sogar Hilfe von dem anderen Beitrag bekommen, aber es werden nicht alle Dateien abgerufen.

Dies ist das Skript, das ich derzeit ausführe:

 Get-ChildItem c:\Users\iceledon -Recurse -ErrorAction SilentlyContinue |  Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-365)} |
Export-Csv "C:\Users\iceledon\Desktop\files.csv" -NoTypeInformation

Antwort1

Das ist alles, was Sie aus den Dateieigenschaften erfahren können. der ersten ausgewählten Datei

# This is all you can get from file properties. of the first file selected
(Get-ChildItem 'd:\temp\*.txt')[0] | Select-Object -Property *

# Results

PSPath            : Microsoft.PowerShell.Core\FileSystem::D:\temp\1 passwordchangelog.txt
PSParentPath      : Microsoft.PowerShell.Core\FileSystem::D:\temp
PSChildName       : 1 passwordchangelog.txt
PSDrive           : D
PSProvider        : Microsoft.PowerShell.Core\FileSystem
PSIsContainer     : False
Mode              : -a----
VersionInfo       : File:             D:\temp\1 passwordchangelog.txt
                    InternalName:     
                    OriginalFilename: 
                    FileVersion:      
                    FileDescription:  
                    Product:          
                    ProductVersion:   
                    Debug:            False
                    Patched:          False
                    PreRelease:       False
                    PrivateBuild:     False
                    SpecialBuild:     False
                    Language:         

BaseName          : 1 passwordchangelog
Target            : {}
LinkType          : 
Name              : 1 passwordchangelog.txt
Length            : 24
DirectoryName     : D:\temp
Directory         : D:\temp
IsReadOnly        : False
Exists            : True
FullName          : D:\temp\1 passwordchangelog.txt
Extension         : .txt
CreationTime      : 10-Jul-18 16:30:22
CreationTimeUtc   : 10-Jul-18 23:30:22
LastAccessTime    : 10-Jul-18 16:30:22
LastAccessTimeUtc : 10-Jul-18 23:30:22
LastWriteTime     : 06-Jul-18 22:16:24
LastWriteTimeUtc  : 07-Jul-18 05:16:24
Attributes        : Archive

Wie Sie den obigen Eigenschaften des Dateiobjekts entnehmen können, gibt es keine Informationen darüber, wer zuletzt darauf zugegriffen hat. Zuletzt müssen Sie die Länge in KB, MB usw. umrechnen.

Sie tun also Folgendes ... (verwenden Sie einfach nicht die Formattabelle für die Ausgabe. Dies ist nur für den Bildschirm gedacht.)

Get-ChildItem 'd:\temp' -Recurse -ErrorAction SilentlyContinue `
| Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-365)} `
| Select FullName,CreationTime,LastAccessTime,
    @{Name='Size(kb)';Expression={“{0:F2}” -f ($_.length/1KB)}},
    @{Name='Size(mb)';Expression={“{0:F2}” -f ($_.length/1MB)}} `
| Sort-Object -Property LastAccessTime `
| Format-Table -AutoSize

FullName                                       CreationTime       LastAccessTime     Size(kb) Size(mb)
--------                                       ------------       --------------     -------- --------
D:\temp\4 passwordchangelog.txt                05-Jul-18 13:15:04 05-Jul-18 13:15:04 0.02     0.00    
D:\temp\1 passwordchangelog.txt                10-Jul-18 16:30:22 10-Jul-18 16:30:22 0.02     0.00    
D:\temp\10 passwordchangelog.txt               10-Jul-18 16:30:26 10-Jul-18 16:30:26 0.02     0.00 
...

Was meinst du mit...

Es werden jedoch nicht alle Dateien abgerufen.

GCI ruft alle Dateien ab, die Sie anfordern, sofern Sie die entsprechenden Berechtigungen haben. Wenn Sie trotzdem filtern, wird nur das zurückgegeben.

Tage hinzufügen(-365)

Das bedeutet, dass Sie mir nur Dateien geben, die älter sind als. Alles, was nicht älter ist als, erhalten Sie absichtlich nicht.

verwandte Informationen