求可获取600个SharePoint 2013站点所有者与URL的PowerShell脚本
可以使用以下PowerShell脚本批量获取指定SharePoint 2013站点的URL及对应所有者信息,脚本支持处理批量URL列表并导出结果:
脚本说明
- 需在SharePoint服务器上运行(或通过远程PowerShell连接),执行账号需具备站点管理员或农场管理员权限
- 先准备一个文本文件(如
SiteURLs.txt),每行写入一个站点URL
完整脚本
# 加载SharePoint PowerShell模块 Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue # 读取站点URL列表文件,替换为你的实际文件路径 $siteURLs = Get-Content "C:\Your\Path\SiteURLs.txt" # 初始化结果集合 $siteOwnerResults = @() foreach ($url in $siteURLs) { try { # 获取目标站点对象 $targetSite = Get-SPSite -Identity $url -ErrorAction Stop # 获取站点管理员(即站点所有者),多个管理员用分号分隔 $siteAdmins = $targetSite.RootWeb.SiteAdministrators | Select-Object -ExpandProperty LoginName # 封装结果 $siteOwnerResults += [PSCustomObject]@{ 站点URL = $url 所有者 = $siteAdmins -join "; " } # 释放站点资源,避免内存泄漏 $targetSite.Dispose() } catch { # 记录获取失败的站点及错误信息 $siteOwnerResults += [PSCustomObject]@{ 站点URL = $url 所有者 = "获取失败:$($_.Exception.Message)" } } } # 在控制台输出结果 $siteOwnerResults | Format-Table -AutoSize # 可选:将结果导出为CSV文件,替换为你的导出路径 $siteOwnerResults | Export-Csv -Path "C:\Your\Path\SiteOwners.csv" -NoTypeInformation -Encoding UTF8
使用注意事项
- 替换脚本中的文件路径为你实际的URL列表路径和CSV导出路径
- 如果站点存在多个管理员,脚本会将所有管理员的登录名用分号拼接
- 脚本会自动捕获无法访问的站点,并在结果中标记错误原因
内容的提问来源于stack exchange,提问作者niranjan Goud
相关产品推荐
相关产品推荐

