Sometimes after deployment or data manipulation, a list is left not connected to a list.
With powershell you can fix individual column to update it's lookup list:
Function Fix-LookupColumn ($webURL, $listName, $columnName, $lookupListName)
{
#Get web, list and column objects
$web = Get-SPWeb $webURL
$list = $web.Lists[$listName]
$column = $list.Fields[$columnName]
$lookupList = $web.Lists[$lookupListName]
#Change schema XML on the lookup column
$column.SchemaXml = $column.SchemaXml.Replace($column.LookupWebId.ToString(), $web.ID.ToString())
$column.SchemaXml = $column.SchemaXml.Replace($column.LookupList.ToString(), $lookupList.ID.ToString())
$column.Update()
#Write confirmation to console and dispose of web object
write-host "Column" $column.Title "in list" $list.Title "updated to lookup list" $lookupList.Title "in site" $web.Url
$web.Dispose()
}
In order to use this function, simply call the following:
Fix-LookupColumn -webURL <URL> -listName "<List name containing the lookup column>" -columnName "<Lookup column name>" -lookupListName "<List used by the lookup column>"
For example:
Fix-LookupColumn -webURL http://mysite/site -listName "Clients" -columnName "Company" -lookupListName "Company"
Sometimes the search services gets stuck, following an index reset or a problem with the search component.
When Search service application shows crawl status as “Paused by system” or “External Request”, it can be fixed below:
Display search component status:
$ssa = Get-SPEnterpriseSearchServiceApplication
get-spenterprisesearchstatus -SearchApplication $ssa -Detailed -Text
Resume search component:
(Optional) If not running SharePoint Management:
Add-PSSnappin "Microsoft.SharePoint.PowerShell"
Then:
$ssa = Get-SPEnterpriseSearchServiceApplication
Resume-SPEnterpriseSearchServiceApplication $ssa
Force a index reset (if stuck):
Make sure to reset the Search Host Controller service and timer service before running theses commands.
(Optional) If not running SharePoint Management:
Add-PSSnappin "Microsoft.SharePoint.PowerShell"
Then:
$ssa = Get-SPEnterpriseSearchServiceApplication
$disableAlerts = $true
$ignoreUnreachableServer = $true
$ssa.reset($disableAlerts, $ignoreUnreachableServer)