Want to become a Vibe Coder? Join Vibe Coding Training here
x
C# Corner
Tech
News
Videos
Forums
Jobs
Books
Events
More
Interviews
Live
Learn
Training
Career
Members
Blogs
Challenges
Certification
Bounty
Contribute
Article
Blog
Video
Ebook
Interview Question
Collapse
Feed
Dashboard
Wallet
Learn
Achievements
Network
Refer
Rewards
SharpGPT
Premium
Contribute
Article
Blog
Video
Ebook
Interview Question
Register
Login
Powershell Script to Clear SharePoint Config Cache Files
WhatsApp
Karthik Muthu Karuppan
Feb 12
2015
4.5
k
0
0
ClearSPConfigCacheFi
$LogTime = Get-Date -Format yyyy-MM-dd_hh-mm
$LogFile =
".\ClearSPConfigCachePatch-$LogTime.rtf"
# Add SharePoint PowerShell Snapin
if
( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $
null
) {
Add-PSSnapin Microsoft.SharePoint.Powershell
}
$scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent
Set-Location $scriptBase
#Deleting any .rtf files in the scriptbase location
$FindRTFFile = Get-ChildItem $scriptBase\*.* -include *.rtf
if
($FindRTFFile)
{
foreach($file
in
$FindRTFFile)
{
remove-item $file
}
}
start-transcript $logfile
Write-host
"##############Following steps will be involved################"
-fore green
write-host
"Step 1 - Stop the timerservice"
-fore cyan
write-host
"Step 2 - Take the backup of config cache file"
-fore cyan
write-host
"Step 3 - Delete the XML files"
-fore cyan
write-host
"Step 4 - Reset the cache.ini file"
-fore cyan
write-host
"Step 5 - Start the SP timerservice"
-fore cyan
Write-host
"##############Above steps will be involved##################"
-fore green
$global:timerServiceName =
"SharePoint 2010 Timer"
$global:timerServiceInstanceName =
"Microsoft SharePoint Foundation Timer"
# Get the local farm instance
[Microsoft.SharePoint.Administration.SPFarm]$farm = [Microsoft.SharePoint.Administration.SPFarm]::get_Local()
Function StopSPTimerServicesInFarm([Microsoft.SharePoint.Administration.SPFarm]$farm)
{
Write-Host
""
foreach($server
in
$farm.Servers)
{
foreach($instance
in
$server.ServiceInstances)
{
# If the server has the timer service then stop the service
if
($instance.TypeName -eq $timerServiceInstanceName)
{
[string]$serverName = $server.Name
Write-Host
"Stop "
$timerServiceName
" service on server: "
$serverName -fore yellow
$service = Get-WmiObject -ComputerName $serverName Win32_Service -Filter
"DisplayName='$timerServiceName'"
$serviceInternalName = $service.Name
sc.exe \\$serverName stop $serviceInternalName > $
null
# Wait until this service has actually stopped
write-host
"Waiting for '$timerServiceName' service on server: "
$serverName
" to be stopped"
-fore yellow
do
{
Start-Sleep 1
Write-Host -foregroundcolor DarkGray -NoNewLine
"."
$service = Get-WmiObject -ComputerName $serverName Win32_Service -Filter
"DisplayName='$timerServiceName'"
}
while
($service.State -ne
"Stopped"
)
write-host
" '$timerServiceName' service on server: "
$serverName
" stopped successfully"
-fore green
break
;
}
}
}
Write-Host
""
}
Function BackupSPConfigFiles([Microsoft.SharePoint.Administration.SPFarm]$farm)
{
write-host
""
write-host
"Backup SP config cache files"
-fore yellow
foreach($server
in
$farm.servers)
{
foreach($instance
in
$server.ServiceInstances)
{
if
($instance.TypeName -eq $timerServiceInstanceName)
{
$ServerName = $server.name
$FolderName = $servername +
"SPConfigCacheBackup"
write-host
"Creating a folder to hold the backup files"
-fore magenta
write-host
"Checking whether the folder aleady exist"
if
(Test-path $scriptbase\$FolderName)
{
write-host
"Folder already exists and the script is deleting it......"
remove-item $scriptbase\$FolderName -recurse -confirm:$
false
write-host
"Existing folder deleted"
-fore green
}
else
{
write-host
"Folder does not exist"
}
New-Item $scriptbase\$FolderName -type directory
write-host
"New folder created to hold the backup files"
-fore magenta
write-host
"Backup of SP config files for the server "
$serverName
" started ...... "
-fore yellow
$path =
"\\" + $serverName + "
\c$\ProgramData\Microsoft\SharePoint\Config"
Copy-Item $path -Destination $scriptbase\$FolderName -recurse
write-host
"SP config cache files backed up for the server "
$serverName
" Sucessfully..."
-fore green
}
}
}
write-host
"SP config caches files are backed up"
-fore green
write-host
""
}
Function DeletingXMLFiles([Microsoft.SharePoint.Administration.SPFarm]$farm)
{
Write-host
""
write-host
"Deleting SP config cache XML files from each server in the farm"
-fore yellow
$path =
""
foreach($server
in
$farm.servers)
{
foreach($instance
in
$server.ServiceInstances)
{
if
($instance.TypeName -eq $timerServiceInstanceName)
{
$serverName = $server.Name
write-host
"Deleting SP config cache files from the server "
$servername -fore magenta
$path =
"\\" + $serverName + "
\c$\ProgramData\Microsoft\SharePoint\Config\*-*\*.xml"
remove-item -path $path -force
write-host
"SP config cache files deleted on the server "
$servername -fore magenta
break
}
}
}
write-host
"SP config cache XML files from each server in the farm is deleted successfully......"
-fore green
write-host
""
}
Function ResetTimerCache([Microsoft.SharePoint.Administration.SPFarm]$farm)
{
write-host
""
write-host
"Reseting the value of timer cache to 1"
-fore yellow
$path =
""
foreach($server
in
$farm.servers)
{
foreach($instance
in
$server.ServiceInstances)
{
if
($instance.TypeName -eq $timerServiceInstanceName)
{
$serverName = $server.Name
write-host
"Reseting the value of timer cache file in server "
$serverName -fore magenta
$path =
"\\" + $serverName + "
\c$\ProgramData\Microsoft\SharePoint\Config\*-*\cache.ini"
Set-Content -path $path -Value
"1"
write-host
"Value of timer cache file in server "
$serverName
" is resetted to 1"
-fore magenta
break
}
}
}
write-host
"The value of timer cache is resetted to 1 in all the SP servers in the farm"
-fore green
write-host
""
}
Function StartSPTimerServicesInFarm([Microsoft.SharePoint.Administration.SPFarm]$farm)
{
Write-Host
""
foreach($server
in
$farm.Servers)
{
foreach($instance
in
$server.ServiceInstances)
{
# If the server has the timer service then stop the service
if
($instance.TypeName -eq $timerServiceInstanceName)
{
[string]$serverName = $server.Name
Write-Host
"Start "
$timerServiceName
" service on server: "
$serverName -fore yellow
$service = Get-WmiObject -ComputerName $serverName Win32_Service -Filter
"DisplayName='$timerServiceName'"
$serviceInternalName = $service.Name
sc.exe \\$serverName start $serviceInternalName > $
null
# Wait until this service starts running
write-host
"Waiting for "
$timerServiceName
" service on server: "
$serverName
" to be started"
-fore yellow
do
{
Start-Sleep 1
Write-Host -foregroundcolor DarkGray -NoNewLine
"."
$service = Get-WmiObject -ComputerName $serverName Win32_Service -Filter
"DisplayName='$timerServiceName'"
}
while
($service.State -ne
"Running"
)
write-host $timerServiceName
" service on server: "
$serverName
" started successfully"
-fore green
break
;
}
}
}
Write-Host
""
}
#############Calling functions################
StopSPTimerServicesInFarm $farm
BackupSPConfigFiles $farm
DeletingXMLFiles $farm
ResetTimerCache $farm
StartSPTimerServicesInFarm $farm
##########################################
write-host
"SCRIPT COMPLETED"
-fore cyan
stop-transcript
sharepoint
Up Next
Powershell Script to Clear SharePoint Config Cache Files