Я пытаюсь обновить элемент списка Sharepoint с помощью Powershell

Я никогда раньше не работал с Powershell или Sharepoint, пытаясь помочь другу, поэтому моя ошибка может быть действительно очевидной, я заранее извиняюсь.

Итак, что я пытаюсь сделать здесь: - просмотреть все профили пользователей и... - просмотреть мой уже существующий список во вложенном цикле foreach -Сравнить DisplayName текущего пользователя с полем "Employee" текущего элемента списка. Если есть совпадение, обновите каждое поле этого элемента списка. -Если мы просмотрели весь список и не было совпадений, добавьте новый элемент списка.

Вот что я нашел и очень мне помог:

http://mysharepointwork.blogspot.no/2010/09/addupdatedelete-list-items-using.html

Вот мой код:

#Add SharePoint PowerShell SnapIn if not already added
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction        SilentlyContinue) -eq $null) {
Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}


$site = new-object Microsoft.SharePoint.SPSite("http://sp2016:85/"); 
$ServiceContext =     [Microsoft.SharePoint.SPServiceContext]::GetContext($site); 

#Get UserProfileManager from the My Site Host Site context
$ProfileManager = new-object    Microsoft.Office.Server.UserProfiles.UserProfileManager($ServiceContext)   
$AllProfiles = $ProfileManager.GetEnumerator()

#Open SharePoint List
 $SPServer="http://sp2016:85/"
$SPAppList="/Lists/UPList2/"
$spWeb = Get-SPWeb $SPServer
$spData = $spWeb.GetList($SPAppList)



foreach($profile in $AllProfiles) 
{
#Add properties to this list item
 $DisplayName = $profile.DisplayName
 $Office =     $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::Office].Value 
 $WorkPhone =  $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::WorkPhone].Value



foreach($Items in $spData)
{
    $SPItem = $spData.Items





    if ($DisplayName -match $SPItem["Employee"] )
    {
        $SPItem["Office"] = $Office
        $SPItem["Extension"] = $WorkPhone  
        $SPItem.Update()
        {break}
    }
 }

 #Create a new item
 $newItem = $spData.Items.Add()

 #Fill
  $newItem["Employee"] = $DisplayName
  $newItem["Office"] = $Office
  $newItem["Extension"] = $WorkPhone

  write-host "Profile for account ", $DisplayName
  $newItem.Update()
} 

write-host "Finished."
$site.Dispose()

-Добавляется новая часть элемента, но не обновленная. Я полагаю, проблема заключается либо в моем операторе if, либо в втором цикле for.

Мы ценим любую помощь и / или отзывы о том, как более эффективно размещать вопросы. Биржа новичков. Спасибо вам всем!

0 ответов

Другие вопросы по тегам