如何修改PowerShell脚本筛选SharePoint中后缀为.aspx的文件
以下是完成后的完整脚本,补充了.aspx文件的筛选逻辑,并优化了内存管理和输出信息:
$AllSites = Get-SPWebApplication https://contoso.de | Get-SPSite -Limit All | Get-SPWeb -Limit All Foreach ($Site in $AllSites) { $Lists = $Site.Lists Foreach ($List in $Lists) { # 筛选后缀为.aspx的文件并输出路径 $List.Items | Where-Object { $_.Name -like "*.aspx" } | ForEach-Object { Write-Host "文件位置: $($Site.Url)/$($_.Url)" # 可按需添加其他属性输出,例如: # Write-Host "标题: $($_.Title) | 创建时间: $($_.Created.ToString('yyyy-MM-dd HH:mm:ss'))" } } # 释放SPWeb对象,防止内存泄漏 $Site.Dispose() }
关键说明
- 筛选逻辑:
Where-Object { $_.Name -like "*.aspx" }是核心补充部分,通过匹配列表项的Name属性,仅保留后缀为.aspx的文件。 - 路径输出:结合站点的
Url和文件项的Url属性,输出完整的文件访问路径,便于直接定位。 - 内存优化:遍历每个站点后调用
$Site.Dispose(),释放SharePoint对象资源,避免长时间运行导致的内存占用过高问题。
可选优化
如果需要排除系统列表或隐藏列表,可在遍历列表时增加筛选:
$Lists = $Site.Lists | Where-Object { !$_.Hidden -and !$_.IsSystemList }
内容的提问来源于stack exchange,提问作者RJ96
相关产品推荐
相关产品推荐

