Powershell script to update User Profile

在SharePoint上, 只要設定好User Profile Sync, 理應大部份用戶資料, 比如電郵, 電話號碼都會從AD抄過來。但有時想做個簡單測試, 可以用以下Script去即時更新User Profile。

首先要準備一個csv檔, 內容格式如下:

NTName,PropertyVal
domain\10008,10008@domain.com

然後是Powershell源碼:

$updateAttribute = “WorkEmail"

$site = Get-SPSite “http://sharepoint"
$context = Get-SPServiceContext $site
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)

$csvData = Import-Csv -Path “C:\ps\changeuserprofile.csv"
foreach ($line in $csvData)
{
if ($profileManager.UserExists($line.NTName))
{
$up = $profileManager.GetUserProfile($line.NTName)
$up[$upAttribute].Value = $line.PropertyVal
$up.Commit()
write-host “Property “$line.PropertyVal “for user “$line.NTName " updated."
}
else
{
write-host “Profile for user"$line.NTName “cannot be found"
}
}

$site.Dispose()

源碼的第一句中的"WorkEmail"是SharePoint user profile中要更新的屬性名字, 如果要改其他屬性如電話、地址, 修改該部份及csv便可。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: