我一直在尝试创建/修改Powershell脚本,该脚本允许我自动在多于1GB的多台服务器上查找所有文件,但不包括.ldf和mdf。
我找到了一个脚本,但是它只查找当前的C驱动器,尽管我一直在尝试修改它,但是我没有成功。
我不确定如何修改它以适合查找多个服务器。
gci -r|sort -descending -property length | select -first 10 name, @{Name="Gigabytes";Expression={[Math]::round($_.length / 1GB, 2)}}
请帮助。
答案 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