SharePoint 2010: Export User Profile Properties to a Text File or Excel using PowerShell

导出到txt

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")             
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server.UserProfiles")             
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")            
            
# SharePoint site URL             
$site = new-object Microsoft.SharePoint.SPSite("http://contoso.com/");             
$ServiceContext = [Microsoft.SharePoint.SPServiceContext]::GetContext($site);                
$ProfileManager = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)            
$AllProfiles = $ProfileManager.GetEnumerator()            
$file = New-Object System.IO.StreamWriter "D:\UserProfiles.txt";            
$file.Writeline("CustomID|Accountname|PreferredName|UserName|FirstName|LastName|DeskPhoneNo|Department|Title|Manager|WorkEmail|Office|Classification|ServiceDate");            
foreach($profile in $AllProfiles)             
{            
    $CustomID = $profile["CustomID"].value            
    $AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value             
    $PreferredName = $profile["PreferredName"].value            
    $UserName = $profile["UserName"].value            
    $FirstName = $profile["FirstName"].value            
    $LastName = $profile["LastName"].value            
    $DeskPhoneNo = $profile["DeskPhoneNo"].value            
    $Department = $profile["Department"].value            
    $Title = $profile["Title"].value            
    $Manager = $profile["Manager"].value            
    $WorkEmail = $profile["WorkEmail"].value            
    $Office = $profile["Office"].value            
    $Classification = $profile["Classification"].value            
    $ServiceDate = $profile["ServiceDate"].value            
    $file.Writeline($CustomID+"|"+$AccountName+"|"+$PreferredName+"|"+$UserName+"|"+$FirstName+"|"+$LastName+"|"+$DeskPhoneNo+"|"+$Department+"|"+$Title+"|"+$Manager+"|"+$WorkEmail+"|"+$Office+"|"+$Classification+"|"+$ServiceDate);            
}            
$file.close();            
            
$site.Dispose()

导出到excel

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$siteUrl = "http://sp2010"
$outputFile = "C:\UserProfiles.csv"

$serviceContext = Get-SPServiceContext -Site $siteUrl
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext);
$profiles = $profileManager.GetEnumerator()

Write-Host "Exporting profiles" 

$collection = @()
foreach ($profile in $profiles) {
 
  $profileData = "" | select "AccountName","FirstName", "LastName","PreferredName","WorkPhone"
   $profileData.AccountName = $profile["AccountName"].Value
   $profileData.FirstName = $profile["FirstName"].Value
   $profileData.LastName = $profile["LastName"].Value
   $profileData.PreferredName = $profile["PreferredName"].Value
   $profileData.WorkPhone = $profile["WorkPhone"].Value
   $collection += $profileData
}

$collection | Export-Csv $outputFile -NoTypeInformation

导出乱码问题

Export-Csv $outputFile -NoTypeInformation -Encoding Unicode

转载于:https://www.cnblogs.com/jindahao/p/3851605.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值