微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于报告多个共享上的旧文件夹的 Powershell 脚本

如何解决用于报告多个共享上的旧文件夹的 Powershell 脚本

我希望得到一些指导。我需要分析 6 个月内未修改文件夹的多个共享。对于每个共享,我定义了需要检查的特定路径。应该为每个共享生成一个 csv。 powershell 脚本可以很好地检查单个共享,但我无法使其对多个共享正常工作。这是脚本示例。

$age = (Get-Date).AddMonths(-6)

# Export path
$outputPath = "D:\Scripting\xPowershell_Results\"

# Export file name
$FilePath1 = "OldMediaPath1.csv"
$FilePath2 = "OldMediaPath2.csv"

# Paths to scan
$CheckPath1 = @(
"\\servername\share1\Projects"
"\\servername\share1\Restored"
 )

 $CheckPath2 = @(
"\\servername\share2\Graphics"
 )


$folders = dir $CheckPath1 | where {$_.PSiscontainer -eq $true} | Where-Object {($_.LastWriteTime -lt $age)} 
$results = foreach ($folder in $folders) {
    $bytecount = (dir $folder.fullname -recurse | Measure-Object -property length -sum).sum
    switch ($bytecount)
    {
        {$_ -lt 1KB} { $size = "{0:N0} Bytes" -f $_; break }
        {$_ -lt 1MB} { $size = "{0:N2} KB" -f ($_ / 1KB); break }
        {$_ -lt 1GB} { $size = "{0:N2} MB" -f ($_ / 1MB); break }
        {$_ -lt 1TB} { $size = "{0:N2} GB" -f ($_ / 1GB); break } 
        {$_ -lt 1PB} { $size = "{0:N2} TB" -f ($_ / 1TB); break } 
        default { $size = "{0:N2} PB" -f ($_ / 1PB) }
 
    }
    [PSCustomObject]@{
        Name = $folder.fullname
        Size = $size
        LastWriteTime = $folder.LastWriteTime 
    }
}
$results | Export-Csv $outputPath$FilePath1 -NoTypeinformation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。