¿Cómo borrar la caché de configuración de SharePoint usando PowerShell?
Borrar la caché de configuración de SharePoint sería la solución para muchos problemas comunes, como "Se ha producido un conflicto de actualización y debe volver a intentar esta acción". La eliminación manual de la caché de configuración de SharePoint 2007 se explica en otro artículo: ¿Cómo borrar la caché de configuración de SharePoint? Y esta es la versión de PowerShell para borrar el caché de configuración de SharePoint 2007/2010/2013.
Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue
#Stop SharePoint 2013 Timer service
Stop-Service SPTimerV4
#Configuration Cache folder
$folders = Get-ChildItem C:\ProgramData\Microsoft\SharePoint\Config
#Get the GUID folder where cache.ini lives.
foreach ($folder in $folders)
{
$items = Get-ChildItem $folder.FullName -Recurse
foreach ($item in $items)
{
if ($item.Name.ToLower() -eq "cache.ini")
{
$cachefolder = $folder.FullName
}
}
}
#Delete all XML Files
$cachefolderitems = Get-ChildItem $cachefolder -Recurse
foreach ($cachefolderitem in $cachefolderitems)
{
if ($cachefolderitem -like "*.xml")
{
$cachefolderitem.Delete()
}
}
#Set "Cache.ini" file's content to 1
$a = Get-Content $cachefolder\cache.ini
$a = 1
Set-Content $a -Path $cachefolder\cache.ini
#Start SharePoint Timer Service
start-Service SPTimerV4
Créditos a: https://blogs.technet.com/b/sp/archive/2013/05/29/clear-sharepoint-config-cache-with-powershell.aspx
Restablecer la caché de configuración de SharePoint 2013 en todos los servidores:
Éste lo hace en todos los servidores de la granja de SharePoint:
Add-PSSnapin microsoft.sharepoint.powershell -ea SilentlyContinue
#Get all SharePoint Servers
$Servers = Get-SPServer | ? {$_.Role -ne "Invalid"} | Select -ExpandProperty Address
#Iterate through each server and reset SharePoint config cache
Invoke-Command -ComputerName $Servers -ScriptBlock {
try {
Write-Host "$env:COMPUTERNAME - Stopping timer service"
Stop-Service SPTimerV4
#Get Config Cache Folder
$ConfigDbId = [Guid](Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\15.0\Secure\ConfigDB' -Name Id).Id #Path to the '15 hive' ConfigDB in the registry
$CacheFolder = Join-Path -Path ([Environment]::GetFolderPath("CommonApplicationData")) -ChildPath "Microsoft\SharePoint\Config\$ConfigDbId"
Write-Host "$env:COMPUTERNAME - Clearing cache folder $CacheFolder"
#Delete all XML Files
Get-ChildItem "$CacheFolder\*" -Filter *.xml | Remove-Item
Write-Host "$env:COMPUTERNAME - Resetting cache ini file"
$CacheIni = Get-Item "$CacheFolder\Cache.ini"
Set-Content -Path $CacheIni -Value "1"
}
finally{
Write-Host "$env:COMPUTERNAME - Starting timer service"
Start-Service SPTimerV4
}
}