Скрипт для замены значений типа Ссылка в элементах списка, описанный ранее в заметке SharePoint 2010 – Замена значений гиперссылок хранимых в колонке списка, оптимизированный под использование с SharePoint 2013. По сути изменена только одна строчка скрипта.
# Замена значений во всех элементах списка в колонке типа URL # $MySiteUrl - Имя сайта SharePoint со списком # $MyListName - Имя списка в сайте # $MyColumnName - Имя колонки с значением типа URL # $URLOld - Искомое значение существующего URL которое надо изменить # $URLNew - Новое значение URL на которое производим замену # $MySiteUrl = "http://new-server.holding.com" $MyListName = "Программное обеспечение" $MyColumnName = "URL" $URLOld = "http://old-server.holding.com/HARD/" $URLNew = "http://new-server.holding.com/DriversList/" # $snapin = Get-PSSnapin | Where-Object {$_.Name -eq 'Microsoft.SharePoint.Powershell'} if ($snapin -eq $null) { Write-Host "Загрузка оснастки SharePoint Powershell" Add-PSSnapin "Microsoft.SharePoint.Powershell" } # $spSite = new-object Microsoft.SharePoint.SPSite($MySiteUrl) $spWeb = $spSite.OpenWeb() $spList = $spWeb.Lists[$MyListName] $spitems = $splist.items $i = 0 foreach($item in $spitems){ [Microsoft.SharePoint.SPListItem]$spListItem = $item if ($spListItem[$MyColumnName] -like "*$URLOld*") { $i = $i + 1 $fldUrl= [Microsoft.SharePoint.SPFieldUrlValue]($Item[$MyColumnName]) $fldUrl.URL = $fldUrl.URL.Replace($URLOld, $URLNew) $item[$MyColumnName] = $fldUrl $item.update() Write-Host $item["Title"] $fldUrl } } Write-Host "Изменено" $i "записей" -foregroundcolor "green"
Добавить комментарий