Resolve installation errors in SharePoint 2013 Service Pack 1

You can come across with two errors: SharePoint 2013 service pack 1 the installation of this package failed and Installation of SharePoint 2013 Cumulative Update takes 5 hours.

To overcome either of the above issue, follow the steps:
  1. Copy and save the below code with extension .ps1.

  2. In the same location, copy the cumulative updates or SP 1. Make sure there is only one exe file or cumulative updates in that specific location.

  3. Open the SharePoint Management Shell, run the file (.ps1):
  1. ##Ensure Patch is Present##  
  2.   
  3. $patchfile = Get - ChildItem | where {  
  4.     $_.Extension - eq“.exe”  
  5. }  
  6. if ($patchfile - eq $null) {  
  7.     Write - Host“Unable to retrieve the file.Exiting Script” - ForegroundColor Red  
  8.     Return  
  9. }  
  10.  
  11. ##Stop Search Services##  
  12.  
  13. ##Checking Search services##  
  14. $srchctr = 1  
  15. $srch4srvctr = 1  
  16. $srch5srvctr = 1  
  17. $srv4 = get - service“OSearch15″  
  18. $srv5 = get - service“SPSearchHostController”  
  19. If(($srv4.status - eq“Running”) - or($srv5.status - eq“Running”)) {  
  20.     Write - Host“Choose 1 to Pause Search Service Application” - ForegroundColor Cyan  
  21.     Write - Host“Choose 2 to leave Search Service Application running” - ForegroundColor Cyan  
  22.     $searchappresult = Read - Host“Press 1 or 2 and hit enter”  
  23.     Write - Host  
  24.   
  25.     if ($searchappresult - eq 1) {  
  26.         $srchctr = 2  
  27.         Write - Host“Pausing the Search Service Application” - foregroundcolor yellow  
  28.         Write - Host“This could take a few minutes” - ForegroundColor Yellow  
  29.         $ssa = get - spenterprisesearchserviceapplication  
  30.         $ssa.pause()  
  31.     }  
  32.   
  33.     elseif($searchappresult - eq 2) {  
  34.         Write - Host“Continuing without pausing the Search Service Application”  
  35.     } else {  
  36.         Write - Host“Run the script again and choose option 1 or 2″ - ForegroundColor Red  
  37.         Write - Host“Exiting Script” - ForegroundColor Red  
  38.         Return  
  39.     }  
  40. }  
  41. Write - Host“Stopping Search Services  
  42. if they are running” - foregroundcolor yellow  
  43. if ($srv4.status - eq“Running”) {  
  44.     $srch4srvctr = 2  
  45.     set - service - Name“OSearch15″ - startuptype Disabled  
  46.     $srv4.stop()  
  47. }  
  48. if ($srv5.status - eq“Running”) {  
  49.     $srch5srvctr = 2  
  50.     Set - service“SPSearchHostController” - startuptype Disabled  
  51.     $srv5.stop()  
  52. }  
  53. do {  
  54.     $srv6 = get - service“SPSearchHostController”  
  55.     if ($srv6.status - eq“Stopped”) {  
  56.         $yes = 1  
  57.     }  
  58.     Start - Sleep - seconds 10  
  59. }  
  60. until ($yes - eq 1)  
  61. Write - Host“Search Services are stopped” - foregroundcolor Green  
  62. Write - Host#########################Stop Other Services#########################  
  63. Set - Service - Name“IISADMIN” - startuptype Disabled  
  64. Set - Service - Name“SPTimerV4″ - startuptype Disabled  
  65. Write - Host“Gracefully stopping IIS W3WP Processes” - foregroundcolor yellow  
  66. Write - Host  
  67. iisreset - stop - noforce  
  68. Write - Host“Stopping Services” - foregroundcolor yellow  
  69. Write - Host  
  70. $srv2 = get - service“SPTimerV4″  
  71. if ($srv2.status - eq“Running”) {  
  72.     $srv2.stop()  
  73. }  
  74. Write - Host“Services are Stopped” - ForegroundColor Green  
  75. Write - Host  
  76. Write - Host####################Start patching####################  
  77. Write - Host“Patching now keep this PowerShell window open” - ForegroundColor Magenta  
  78. Write - Host  
  79. $starttime = Get - Date  
  80. $filename = $patchfile.basename  
  81. $arg = “ / passive”  
  82. Start - Process $filename $arg  
  83. Start - Sleep - seconds 20  
  84. $proc = get - process $filename  
  85. $proc.WaitForExit()  
  86. $finishtime = get - date  
  87. Write - Host  
  88. Write - Host“Patch installation complete” - foregroundcolor green  
  89. Write - Host####################Start Services####################  
  90. Write - Host“Starting Services Backup” - foregroundcolor yellow  
  91. Set - Service - Name“SPTimerV4″ - startuptype Automatic  
  92. Set - Service - Name“IISADMIN” - startuptype Automatic##Grabbing local server and starting services##  
  93. $servername = hostname  
  94. $server = get - spserver $servername  
  95. $srv2 = get - service“SPTimerV4″  
  96. $srv2.start()  
  97. $srv3 = get - service“IISADMIN”  
  98. $srv3.start()  
  99. $srv4 = get - service“OSearch15″  
  100. $srv5 = get - service“SPSearchHostController”###Ensuring Search Services were stopped by script before Starting”  
  101. if ($srch4srvctr - eq 2) {  
  102.     set - service - Name“OSearch15″ - startuptype Automatic  
  103.     $srv4.start()  
  104. }  
  105. if ($srch5srvctr - eq 2) {  
  106.     Set - service“SPSearchHostController” - startuptype Automatic  
  107.     $srv5.start()  
  108. }###Resuming Search Service Application  
  109. if paused###  
  110. if ($srchctr - eq 2) {  
  111.     Write - Host“Resuming the Search Service Application” - foregroundcolor yellow  
  112.     $ssa = get - spenterprisesearchserviceapplication  
  113.     $ssa.resume()  
  114. }  
  115. Write - Host“Services are Started” - foregroundcolor green  
  116. Write - Host  
  117. Write - Host  
  118. Write - Host“Script Duration” - foregroundcolor yellow  
  119. Write - Host“Started: ”$starttime - foregroundcolor yellow  
  120. Write - Host“Finished: ”$finishtime - foregroundcolor yellow  
  121. Write - Host“Script Complete”