خیلی از زمان ها مواردی پیش می آید که نیاز به به روز رسانی Display Name کاربران در شیرپوینت می شوید. لذا اولین کاری که می کنید این است که به سراغ اکتیو دایرکتوری می روید و فیلد Display Name یا دیگر فیلد های مربوط به کاربران را تغییر می دهید و انتظار دارید که بلافاصله تغییرات را مشاهده کنید اما به علت این که سرویس User Profile را به صورت کامل پیکربندی نکرده اید تغییرات مربوطه اعمال نمی شود. در این مورد و موارد مشابه می توانید از Power Shell برای به روز رسانی Display Name کاربران در شیرپوینت به صورت دستی و نیز سینک یوزر ها با سرور اکتیو دایرکتور استفاده کنید .
چگونه Display Name را با Power Sell تغییر دهیم؟
با استفاده از cmdlet به نام Set-SpUser با داشتن موارد زیر:
- Site URL
- User Name
- Display Name جدید
و همچنین کد زیر به راحتی این کار را انجام دهید.
Set-SPUser -Identity "i:0#.w|pmo\j.daryabari" -DisplayName "سید جواد دریاباری" ` –Web "http://sp-app:15000"
اگر در فارم خود بیش از یک سایت دارید به کمک کد زیر می توانید این کار را برای تمام سایت ها انجام دهید:
Get-SPSite -Limit All | Get-SPWeb | Foreach-object { Set-SPUser -Identity "i:0#.w|pmo\j.daryabari" -DisplayName "نام مورد نظر" –Web $_ }
برخی از زمان ها خصوصیات همچون نام نمایش کاربری و ایمیل و دپارتمان را در اکتیودایرکتوری بروز رسانی می کنید اما به علت تاخیر در jobهای سرویس User Profile و یا کانفیگ نکردن آن این تغییرات بلافاصله انجام نمی شود می توانید از کدهای زیر برای مجبور کردن سینک اکتیودایرکتوری و شیرپوینت استفاده کنید.
درصورت استفاده از پاورشل ویندوز به جای شیرپوینت این خط الزامی می باشد.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
تعریف متغییر مربوط به یوزری که میخواهید تغییر بدهید
$UserAccount=”یوزر نیم به همراه دامین “
$WebURL=”نام سایت مورد نظر”
مشخصات یوزی که در بالا معرفی کردید
Get-SPUser -Identity $UserAccount -Web $WebURL | Select DisplayName,Email
به روزرسانی با اکتیو دایرکتوری
Set-SPUser -Identity $UserAccount -Web $WebURL -SyncFromAD
دوباره سینک کردن تمامی اکانتهای اکتیودایرکتوری با شیرپوینت
برای این کار می توانید از کد زیر استفاده کنید همچنین در صورتی که سرویس User-profile را به درستی کانفیگ نکرده اید می توانید این کد را تبدیل به یک Job در ویندوز کنید و به صورت دوره ای آن را اجرا کنید که نحوه انجام آن را از این مقاله بخوانید.
Get-SPUser -Web http://web-app-url | Set-SPUser –SyncFromAD