Powershell脚本可列出多个服务器上的大文件

时间:2018-11-14 00:48:59

标签: powershell

我一直在尝试创建/修改Powershell脚本,该脚本允许我自动在多于1GB的多台服务器上查找所有文件,但不包括.ldf和mdf。

我找到了一个脚本,但是它只查找当前的C驱动器,尽管我一直在尝试修改它,但是我没有成功。

我不确定如何修改它以适合查找多个服务器。

gci -r|sort -descending -property length | select -first 10 name, @{Name="Gigabytes";Expression={[Math]::round($_.length / 1GB, 2)}}

请帮助。

1 个答案:

答案 0 :(得分:4)

完整脚本:

$size=1GB
$path="C:\"
$omit="*.mdf,*.ldf"
Get-ChildItem -Path $path -Exclude $omit -Recurse -OutBuffer 1000|
where {($_.Length -gt $size)}|Select Name, Directory, Length

示例输出:

Name                                Directory                Length
----                                ---------                ------
CAP2015-07-29 21-07-08-71.avi       C:\                  1216624984
CAP2015-07-29 21-08-17-48.avi       C:\Movies            1205696024

脚本说明:

用于控制搜索大小的变量。可以是KB,MB,GB

$size=1GB

可以设置要搜索的基本路径

$path="C:\"

可以设置排除的扩展名列表

$omit="*.mdf,*.ldf"

递归地搜索 $ Path 中的所有项目,并且仅返回超出 $ size 控制的设置大小的文件,并忽略 $中列出的文件省略

Get-ChildItem -Path $path -Exclude $omit -Recurse -OutBuffer 1000|
    where {($_.Length -gt $size)}|Select Name, Directory, Length

注意: -OutBuffer 参数控制在继续操作之前收集了多少个项目。正确管理此参数可以大大提高命令完成的速度。这来自一组称为“ CommonParameters”的参数。了解它们是什么以及它们如何工作是非常宝贵的。
Microsoft Docs about_CommonParameters