如何使用PowerShell或stsadm导出SharePoint 2007服务器场完整用户列表
以下两种方案均可实现遍历所有站点、子站点导出完整用户列表,均需要在 SharePoint 2007 服务器场的Web前端或应用服务器上执行:
方案1:PowerShell调用SharePoint对象模型导出(推荐)
该方案可自动去重,直接输出结构化的CSV文件,方便后续新旧账号匹配:
# 加载SharePoint 2007核心程序集 [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") # 自定义导出文件的保存路径 $exportPath = "C:\SP2007_Full_Users.csv" # 初始化哈希表用于按登录名去重 $uniqueUsers = @{} # 读取当前服务器场配置 $spFarm = [Microsoft.SharePoint.Administration.SPFarm]::Local # 提取场中所有Web应用程序 $allWebApps = $spFarm.Services | Where-Object { $_.GetType().FullName -eq "Microsoft.SharePoint.Administration.SPWebService" } | ForEach-Object { $_.WebApplications } # 逐层遍历Web应用、站点集、子站点 foreach ($webApp in $allWebApps) { foreach ($site in $webApp.Sites) { foreach ($web in $site.AllWebs) { foreach ($user in $web.Users) { # 仅保留未记录过的用户 if (-not $uniqueUsers.ContainsKey($user.LoginName)) { $userObj = New-Object PSObject -Property @{ 旧域登录名 = $user.LoginName 用户显示名 = $user.Name 联系邮箱 = $user.Email 所属站点地址 = $web.Url } $uniqueUsers[$user.LoginName] = $userObj } } # 释放站点资源避免内存泄漏 $web.Dispose() } $site.Dispose() } } # 导出结果到CSV文件 $uniqueUsers.Values | Export-Csv -Path $exportPath -NoTypeInformation -Encoding UTF8 Write-Host "用户列表导出完成,文件保存路径:$exportPath"
注意事项:
- 运行前必须使用 SharePoint 场管理员权限启动PowerShell,否则无法读取场配置和站点信息
- 如果需要保留每个用户在不同站点的权限记录,删除哈希表去重逻辑,直接把用户对象加入列表导出即可
- 环境需要提前安装PowerShell 2.0及以上版本(SharePoint 2007默认适配PowerShell 2.0)
方案2:stsadm结合批处理遍历导出
如果服务器环境无法使用PowerShell,可使用该方案:
- 首先导出场中所有站点的URL列表,执行stsadm命令:
stsadm -o enumallwebs -includewebparts > C:\All_Webs_List.xml - 从生成的XML文件中提取所有
<Web>节点的Url属性值,保存为每行一个URL的文本文件C:\All_Web_Urls.txt - 编写批处理脚本遍历所有站点调用enumusers导出用户:
@echo off set output=C:\SP2007_All_Users.txt if exist %output% del %output% for /f "delims=" %%i in (C:\All_Web_Urls.txt) do ( echo ===== 站点地址:%%i ===== >> %output% stsadm -o enumusers -url %%i >> %output% echo. >> %output% ) echo 所有站点用户导出完成
注意事项:
- stsadm命令默认位于
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN目录,需切换到该目录执行,或者将该目录加入系统环境变量 - 该方案导出的用户会存在重复记录,后续可自行按登录名去重处理
内容的提问来源于stack exchange,提问作者D K
相关产品推荐
相关产品推荐

