├── Install CU Faster.ps1 ├── LICENSE ├── README.md ├── SPPatchify-Download-CU.csv ├── SPPatchify.ps1 ├── app_offline.html └── doc ├── 1.png ├── 10.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── 6.png ├── 7.png ├── 8.png ├── 9.png ├── Harley Davidson Rider.jpg ├── SPPatchify.vsdx ├── download.png └── download.xlsx /Install CU Faster.ps1: -------------------------------------------------------------------------------- 1 | # This Script will install the CU Faster 2 | #Keep This Script and Required Files in Same Folder. 3 | 4 | ########################### 5 | ##Ensure Patch is Present## 6 | ########################### 7 | $patchfile = Get-ChildItem | where { $_.Extension -eq ".exe" } 8 | if ($patchfile -eq $null) { 9 | Write-Host "Unable to retrieve the file. Exiting Script" -ForegroundColor Red 10 | Return 11 | } 12 | 13 | ######################## 14 | ##Stop Search Services## 15 | ######################## 16 | ##Checking Search services## 17 | $srchctr = 1 18 | $srch4srvctr = 1 19 | $srch5srvctr = 1 20 | 21 | $srv4 = get-service "OSearch15" 22 | $srv5 = get-service "SPSearchHostController" 23 | 24 | If (($srv4.status -eq "Running") -or ($srv5.status -eq "Running")) { 25 | Write-Host "Choose 1 to Pause Search Service Application" -ForegroundColor Cyan 26 | Write-Host "Choose 2 to leave Search Service Application running" -ForegroundColor Cyan 27 | $searchappresult = Read-Host "Press 1 or 2 and hit enter" 28 | Write-Host 29 | 30 | 31 | if ($searchappresult -eq 1) { 32 | $srchctr = 2 33 | Write-Host "Pausing the Search Service Application" -foregroundcolor yellow 34 | Write-Host "This could take a few minutes" -ForegroundColor Yellow 35 | $ssa = get-spenterprisesearchserviceapplication 36 | $ssa.pause() 37 | } 38 | 39 | 40 | elseif ($searchappresult -eq 2) { 41 | Write-Host "Continuing without pausing the Search Service Application" 42 | } 43 | else { 44 | Write-Host "Run the script again and choose option 1 or 2" -ForegroundColor Red 45 | Write-Host "Exiting Script" -ForegroundColor Red 46 | Return 47 | } 48 | } 49 | 50 | Write-Host "Stopping Search Services if they are running" -foregroundcolor yellow 51 | if ($srv4.status -eq "Running") { 52 | $srch4srvctr = 2 53 | set-service -Name "OSearch15" -startuptype Disabled 54 | $srv4.stop() 55 | } 56 | 57 | if ($srv5.status -eq "Running") { 58 | $srch5srvctr = 2 59 | Set-service "SPSearchHostController" -startuptype Disabled 60 | $srv5.stop() 61 | } 62 | 63 | do { 64 | $srv6 = get-service "SPSearchHostController" 65 | if ($srv6.status -eq "Stopped") { 66 | $yes = 1 67 | } 68 | Start-Sleep -seconds 10 69 | } 70 | until ($yes -eq 1) 71 | 72 | Write-Host "Search Services are stopped" -foregroundcolor Green 73 | Write-Host 74 | 75 | 76 | 77 | ####################### 78 | ##Stop Other Services## 79 | ####################### 80 | Set-Service -Name "IISADMIN" -startuptype Disabled 81 | Set-Service -Name "SPTimerV4" -startuptype Disabled 82 | Write-Host "Gracefully stopping IIS W3WP Processes" -foregroundcolor yellow 83 | Write-Host 84 | iisreset -stop -noforce 85 | Write-Host "Stopping Services" -foregroundcolor yellow 86 | Write-Host 87 | 88 | $srv2 = get-service "SPTimerV4" 89 | if ($srv2.status -eq "Running") 90 | { $srv2.stop() } 91 | 92 | Write-Host "Services are Stopped" -ForegroundColor Green 93 | Write-Host 94 | Write-Host 95 | 96 | 97 | 98 | ################## 99 | ##Start patching## 100 | ################## 101 | Write-Host "Patching now keep this PowerShell window open" -ForegroundColor Magenta 102 | Write-Host 103 | $starttime = Get-Date 104 | 105 | $filename = $patchfile.basename 106 | 107 | Start-Process $filename PACKAGE.BYPASS.DETECTION.CHECK=1 108 | 109 | Start-Sleep -seconds 20 110 | $proc = get-process $filename 111 | $proc.WaitForExit() 112 | 113 | $finishtime = get-date 114 | Write-Host 115 | Write-Host "Patch installation complete" -foregroundcolor green 116 | Write-Host 117 | 118 | 119 | 120 | ################## 121 | ##Start Services## 122 | ################## 123 | Write-Host "Starting Services Backup" -foregroundcolor yellow 124 | Set-Service -Name "SPTimerV4" -startuptype Automatic 125 | Set-Service -Name "IISADMIN" -startuptype Automatic 126 | 127 | ##Grabbing local server and starting services## 128 | $servername = hostname 129 | $server = get-spserver $servername 130 | 131 | $srv2 = get-service "SPTimerV4" 132 | $srv2.start() 133 | $srv3 = get-service "IISADMIN" 134 | $srv3.start() 135 | $srv4 = get-service "OSearch15" 136 | $srv5 = get-service "SPSearchHostController" 137 | 138 | ###Ensuring Search Services were stopped by script before Starting" 139 | if ($srch4srvctr -eq 2) { 140 | set-service -Name "OSearch15" -startuptype Automatic 141 | $srv4.start() 142 | } 143 | if ($srch5srvctr -eq 2) { 144 | Set-service "SPSearchHostController" -startuptype Automatic 145 | $srv5.start() 146 | } 147 | 148 | ###Resuming Search Service Application if paused### 149 | if ($srchctr -eq 2) { 150 | Write-Host "Resuming the Search Service Application" -foregroundcolor yellow 151 | $ssa = get-spenterprisesearchserviceapplication 152 | $ssa.resume() 153 | } 154 | 155 | Write-Host "Services are Started" -foregroundcolor green 156 | Write-Host 157 | Write-Host 158 | Write-Host "Script Duration" -foregroundcolor yellow 159 | Write-Host "Started: " $starttime -foregroundcolor yellow 160 | Write-Host "Finished: " $finishtime -foregroundcolor yellow 161 | Write-Host "Script Complete" -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Jeff Jones 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | SharePoint Patchify - Apply CU patch to entire farm from one PowerShell console. SWEET!! 3 | 4 | [![](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/download.png)](https://github.com/spjeff/sppatchify/releases/download/v0.129/SPPatchify.zip) 5 | 6 | ## NOTE 7 | * May need to run `Enable-PSRemoting` and `Enable-WSManCredSSP -Role Server ` on all farm servers to allow PowerShell remoting before running this script. 8 | 9 | ## Business Challenge 10 | * Long downtime 11 | * Late staff hours 12 | * Inconsistent procedures 13 | 14 | ## Technical Solution 15 | * Supports SharePoint 2010, 2013, and 2016 16 | * Auto detect farm 17 | * Copy EXE to all servers 18 | * Stop SharePoint services 19 | * Run EXE in parallel 20 | * Wait for all EXE and reboots to complete 21 | * Run Config Wizard 22 | * Start SharePoint services 23 | * Display Central Admin 24 | 25 | ## Screenshots 26 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/6.png) 27 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/5.png) 28 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/4.png) 29 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/2.png) 30 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/3.png) 31 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/1.png) 32 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/8.png) 33 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/9.png) 34 | ![image](https://raw.githubusercontent.com/spjeff/sppatchify/master/doc/10.png) 35 | 36 | ## Contact 37 | Please drop a line to [@spjeff](https://twitter.com/spjeff) or [spjeff@spjeff.com](mailto:spjeff@spjeff.com) 38 | Thanks! =) 39 | 40 | ![image](http://img.shields.io/badge/first--timers--only-friendly-blue.svg?style=flat-square) 41 | 42 | ## License 43 | 44 | The MIT License (MIT) 45 | 46 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 47 | 48 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 49 | 50 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /SPPatchify-Download-CU.csv: -------------------------------------------------------------------------------- 1 | Year,Month,Product,URL, 2 | 2023,2,SP19,https://download.microsoft.com/download/1/f/d/1fd5d621-7e93-4490-982a-6cec52f67a05/sts2019-kb5002342-fullfile-x64-glb.exe 3 | 2023,2,SP19,https://download.microsoft.com/download/1/3/d/13dc10a6-29bb-4b49-9966-da40bc9f9f09/wssloc2019-kb5002330-fullfile-x64-glb.exe 4 | 2023,2,SP16,https://download.microsoft.com/download/d/8/d/d8d25884-acca-44fd-b2f9-fa57f38a37d3/sts2016-kb5002350-fullfile-x64-glb.exe 5 | 2023,2,SP16,https://download.microsoft.com/download/a/9/4/a946e0c6-ddd2-4e74-960c-c1c9076a1029/wssloc2016-kb5002325-fullfile-x64-glb.exe 6 | 2021,7,SP19,https://download.microsoft.com/download/f/f/1/ff1f0eb8-4eed-48dc-b446-1a14da0601fc/sts2019-kb5001975-fullfile-x64-glb.exe, 7 | 2021,7,SP19,https://download.microsoft.com/download/c/b/a/cbaec490-5100-4505-b0a4-24ca22106baf/wssloc2019-kb5001974-fullfile-x64-glb.exe, 8 | 2021,7,SP16,https://download.microsoft.com/download/f/5/1/f51a2968-79c0-4c49-a516-9dc67b62802b/wssloc2016-kb5001981-fullfile-x64-glb.exe, 9 | 2021,7,SP16,https://download.microsoft.com/download/a/8/4/a84f9194-7867-4ce9-b356-e10929b9c4b1/sts2016-kb5001976-fullfile-x64-glb.exe, 10 | 2021,7,SP15,https://download.microsoft.com/download/e/1/a/e1a015e6-f738-42e3-be83-e406ce82cafa/ubersrv2013-kb5001989-fullfile-x64-glb.exe, 11 | 2021,7,SP15,https://download.microsoft.com/download/e/1/a/e1a015e6-f738-42e3-be83-e406ce82cafa/ubersrv_2.cab, 12 | 2021,7,SP15,https://download.microsoft.com/download/e/1/a/e1a015e6-f738-42e3-be83-e406ce82cafa/ubersrv_1.cab, 13 | 2021,7,SP15,https://download.microsoft.com/download/0/c/8/0c85ea34-e88c-4e94-bbfc-1c20f1a7ebd9/ubersts2013-kb5001987-fullfile-x64-glb.exe, 14 | 2021,7,PROJ15,https://download.microsoft.com/download/3/3/1/3313e2e0-9454-4655-8fb9-d478e5071367/ubersrvprj2013-kb5001988-fullfile-x64-glb.exe, 15 | 2021,7,PROJ15,https://download.microsoft.com/download/3/3/1/3313e2e0-9454-4655-8fb9-d478e5071367/ubersrvprj_2.cab, 16 | 2021,7,PROJ15,https://download.microsoft.com/download/3/3/1/3313e2e0-9454-4655-8fb9-d478e5071367/ubersrvprj_1.cab, 17 | 2021,6,SP19,https://download.microsoft.com/download/a/e/4/ae4dd4ac-5f2d-4960-b896-846e89440fd7/sts2019-kb5001944-fullfile-x64-glb.exe, 18 | 2021,6,SP19,https://download.microsoft.com/download/8/4/d/84db1431-df03-474d-a1c7-9c4624b86a95/wssloc2019-kb5001945-fullfile-x64-glb.exe, 19 | 2021,6,SP16,https://download.microsoft.com/download/d/2/c/d2c6d67e-7a8a-418d-92a4-99a03b3e647e/sts2016-kb5001946-fullfile-x64-glb.exe, 20 | 2021,6,SP16,https://download.microsoft.com/download/c/3/3/c339c3be-4c4a-47b1-abc9-8cc05b40b539/wssloc2016-kb5001922-fullfile-x64-glb.exe, 21 | 2021,6,SP15,https://download.microsoft.com/download/b/f/5/bf529458-3da6-4352-9ee9-fbb552113838/ubersrv2013-kb5001961-fullfile-x64-glb.exe, 22 | 2021,6,SP15,https://download.microsoft.com/download/b/f/5/bf529458-3da6-4352-9ee9-fbb552113838/ubersrv_2.cab, 23 | 2021,6,SP15,https://download.microsoft.com/download/b/f/5/bf529458-3da6-4352-9ee9-fbb552113838/ubersrv_1.cab, 24 | 2021,6,SP15,https://download.microsoft.com/download/a/7/2/a725add1-8500-406e-97c9-94cf11afe96e/ubersts2013-kb5001957-fullfile-x64-glb.exe, 25 | 2021,6,PROJ15,https://download.microsoft.com/download/f/2/8/f28d2c6e-b5f6-4447-9c31-89619840987d/ubersrvprj2013-kb5001959-fullfile-x64-glb.exe, 26 | 2021,6,PROJ15,https://download.microsoft.com/download/f/2/8/f28d2c6e-b5f6-4447-9c31-89619840987d/ubersrvprj_2.cab, 27 | 2021,6,PROJ15,https://download.microsoft.com/download/f/2/8/f28d2c6e-b5f6-4447-9c31-89619840987d/ubersrvprj_1.cab, 28 | 2021,5,SP19,https://download.microsoft.com/download/f/1/4/f1405ad2-9c84-4aa8-a4d9-f36f523d2d1c/wssloc2019-kb5001915-fullfile-x64-glb.exe, 29 | 2021,5,SP19,https://download.microsoft.com/download/4/d/6/4d62428a-527b-42e8-a9c7-8f5087f3cd73/sts2019-kb5001916-fullfile-x64-glb.exe, 30 | 2021,5,SP16,https://download.microsoft.com/download/1/b/0/1b069201-9d7d-4476-8ea3-bdfa67ba3164/sts2016-kb5001917-fullfile-x64-glb.exe, 31 | 2021,5,SP15,https://download.microsoft.com/download/e/9/2/e920ad7b-1fb3-4863-b9a4-e5ed31c4b9fb/ubersts2013-kb5001929-fullfile-x64-glb.exe, 32 | 2021,5,SP15,https://download.microsoft.com/download/9/f/c/9fc8dd9c-e236-414a-96a0-ee72f8dddbdf/ubersrv2013-kb5001933-fullfile-x64-glb.exe, 33 | 2021,5,SP15,https://download.microsoft.com/download/9/f/c/9fc8dd9c-e236-414a-96a0-ee72f8dddbdf/ubersrv_2.cab, 34 | 2021,5,SP15,https://download.microsoft.com/download/9/f/c/9fc8dd9c-e236-414a-96a0-ee72f8dddbdf/ubersrv_1.cab, 35 | 2021,5,PROJ15,https://download.microsoft.com/download/6/0/6/606e5437-8554-4daa-8b0b-0f2dd63684d3/ubersrvprj2013-kb5001930-fullfile-x64-glb.exe, 36 | 2021,5,PROJ15,https://download.microsoft.com/download/6/0/6/606e5437-8554-4daa-8b0b-0f2dd63684d3/ubersrvprj_2.cab, 37 | 2021,5,PROJ15,https://download.microsoft.com/download/6/0/6/606e5437-8554-4daa-8b0b-0f2dd63684d3/ubersrvprj_1.cab, 38 | 2021,4,SP19,https://download.microsoft.com/download/f/0/5/f0576b07-3cae-404b-87d5-35ff8012b0a8/wssloc2019-kb4504715-fullfile-x64-glb.exe, 39 | 2021,4,SP19,https://download.microsoft.com/download/3/1/0/310b542d-1514-44ae-8168-a72f057bef38/sts2019-kb4504716-fullfile-x64-glb.exe, 40 | 2021,4,SP16,https://download.microsoft.com/download/3/b/8/3b8aa4c6-1323-45e5-b571-9af2f7b9dbc9/wssloc2016-kb4504723-fullfile-x64-glb.exe, 41 | 2021,4,SP16,https://download.microsoft.com/download/1/5/5/155f3685-106c-45d3-850c-b560b4bf83f1/sts2016-kb4504719-fullfile-x64-glb.exe, 42 | 2021,4,SP15,https://download.microsoft.com/download/c/a/6/ca620015-1a0f-4746-b667-6b2d8e6ebe6f/ubersts2013-kb4504730-fullfile-x64-glb.exe, 43 | 2021,4,SP15,https://download.microsoft.com/download/6/c/c/6ccff8c9-f587-4cd6-a9bf-d6d63da9f70e/ubersrv2013-kb4504732-fullfile-x64-glb.exe, 44 | 2021,4,SP15,https://download.microsoft.com/download/6/c/c/6ccff8c9-f587-4cd6-a9bf-d6d63da9f70e/ubersrv_2.cab, 45 | 2021,4,SP15,https://download.microsoft.com/download/6/c/c/6ccff8c9-f587-4cd6-a9bf-d6d63da9f70e/ubersrv_1.cab, 46 | 2021,4,SP14,https://download.microsoft.com/download/2/5/c/25cb7c1f-a071-4eab-bb57-cdba5176cd87/ubersrv2010-kb4504742-fullfile-x64-glb.exe, 47 | 2021,4,SP14,https://download.microsoft.com/download/1/4/2/1426a1d0-9da2-4ff1-99e6-efddd3045b2a/wssloc2010-kb4504709-fullfile-x64-glb.exe, 48 | 2021,4,PROJ15,https://download.microsoft.com/download/4/3/b/43b35cba-862b-410b-8a59-7324987bb968/ubersrvprj2013-kb4504731-fullfile-x64-glb.exe, 49 | 2021,4,PROJ15,https://download.microsoft.com/download/4/3/b/43b35cba-862b-410b-8a59-7324987bb968/ubersrvprj_2.cab, 50 | 2021,4,PROJ15,https://download.microsoft.com/download/4/3/b/43b35cba-862b-410b-8a59-7324987bb968/ubersrvprj_1.cab, 51 | 2021,4,PROJ14,https://download.microsoft.com/download/d/e/a/deab8b30-4806-48ef-8c53-25e7470ec762/ubersrvprj2010-kb4504741-fullfile-x64-glb.exe, 52 | 2021,3,SP19,https://download.microsoft.com/download/f/8/1/f819c038-fb2e-4d4b-b1c4-e61d1e99f926/wssloc2019-kb4493231-fullfile-x64-glb.exe, 53 | 2021,3,SP19,https://download.microsoft.com/download/6/a/6/6a609f66-c884-44c3-aa43-c0d4df09393f/sts2019-kb4493230-fullfile-x64-glb.exe, 54 | 2021,3,SP16,https://download.microsoft.com/download/7/5/7/757a7284-9a5a-4b1d-b063-73a43e5fe147/wssloc2016-kb4493199-fullfile-x64-glb.exe, 55 | 2021,3,SP16,https://download.microsoft.com/download/3/2/d/32df4dd6-3119-4c4a-b1db-d5e46afd313f/sts2016-kb4493232-fullfile-x64-glb.exe, 56 | 2021,3,SP15,https://download.microsoft.com/download/5/3/0/53018668-1bb5-4f0c-990e-2f1cee53b51a/ubersrv2013-kb4493237-fullfile-x64-glb.exe, 57 | 2021,3,SP15,https://download.microsoft.com/download/5/3/0/53018668-1bb5-4f0c-990e-2f1cee53b51a/ubersrv_2.cab, 58 | 2021,3,SP15,https://download.microsoft.com/download/5/3/0/53018668-1bb5-4f0c-990e-2f1cee53b51a/ubersrv_1.cab, 59 | 2021,3,SP15,https://download.microsoft.com/download/3/c/a/3cae89a0-1c77-4b08-ba0d-abef1bdcb0a5/ubersts2013-kb4493235-fullfile-x64-glb.exe, 60 | 2021,3,SP14,https://download.microsoft.com/download/5/5/4/5547ae80-1533-4c7d-b8d6-a967574f5e19/ubersrv2010-kb4504706-fullfile-x64-glb.exe, 61 | 2021,3,PROJ15,https://download.microsoft.com/download/7/8/f/78f4a8ed-bfb5-4de7-b121-070ba99bc76f/ubersrvprj2013-kb4493236-fullfile-x64-glb.exe, 62 | 2021,3,PROJ15,https://download.microsoft.com/download/7/8/f/78f4a8ed-bfb5-4de7-b121-070ba99bc76f/ubersrvprj_2.cab, 63 | 2021,3,PROJ15,https://download.microsoft.com/download/7/8/f/78f4a8ed-bfb5-4de7-b121-070ba99bc76f/ubersrvprj_1.cab, 64 | 2021,3,PROJ14,https://download.microsoft.com/download/8/5/3/85393685-1b04-403d-8339-aa0a5535d3f1/ubersrvprj2010-kb4504704-fullfile-x64-glb.exe, 65 | 2021,2,SP19,https://download.microsoft.com/download/8/3/8/83875bb1-f31d-4080-bd8e-dd0b3ec68612/wssloc2019-kb4493193-fullfile-x64-glb.exe, 66 | 2021,2,SP19,https://download.microsoft.com/download/6/8/9/689ddb53-13b9-45fc-b705-b0bab12d513d/sts2019-kb4493194-fullfile-x64-glb.exe, 67 | 2021,2,SP16,https://download.microsoft.com/download/8/1/4/81492d90-9d6d-4b24-b428-860e7674a63f/sts2016-kb4493195-fullfile-x64-glb.exe, 68 | 2021,2,SP15,https://download.microsoft.com/download/a/0/6/a06b66c1-c4eb-4ae0-93e3-80fc3188a815/ubersrv2013-kb4493209-fullfile-x64-glb.exe, 69 | 2021,2,SP15,https://download.microsoft.com/download/a/0/6/a06b66c1-c4eb-4ae0-93e3-80fc3188a815/ubersrv_2.cab, 70 | 2021,2,SP15,https://download.microsoft.com/download/a/0/6/a06b66c1-c4eb-4ae0-93e3-80fc3188a815/ubersrv_1.cab, 71 | 2021,2,SP15,https://download.microsoft.com/download/5/7/f/57f1455d-15bc-43b1-bf8b-e01806ad724e/ubersts2013-kb4493205-fullfile-x64-glb.exe, 72 | 2021,2,SP14,https://download.microsoft.com/download/c/6/3/c63f08fd-7f7f-4443-bdad-44591426d2da/wssloc2010-kb4493223-fullfile-x64-glb.exe, 73 | 2021,2,SP14,https://download.microsoft.com/download/3/5/3/3538712a-5a73-47ea-9cf1-fc617d015926/ubersrv2010-kb4493220-fullfile-x64-glb.exe, 74 | 2021,2,PROJ15,https://download.microsoft.com/download/9/e/0/9e0daf60-4599-458b-b7d7-9a7689690d69/ubersrvprj2013-kb4493207-fullfile-x64-glb.exe, 75 | 2021,2,PROJ15,https://download.microsoft.com/download/9/e/0/9e0daf60-4599-458b-b7d7-9a7689690d69/ubersrvprj_2.cab, 76 | 2021,2,PROJ15,https://download.microsoft.com/download/9/e/0/9e0daf60-4599-458b-b7d7-9a7689690d69/ubersrvprj_1.cab, 77 | 2021,2,PROJ14,https://download.microsoft.com/download/1/5/c/15c50702-857a-45eb-94f1-33d74db21380/ubersrvprj2010-kb4493217-fullfile-x64-glb.exe, 78 | 2021,1,SP19,https://download.microsoft.com/download/d/d/5/dd5e17fc-1356-49bc-a030-c80fcda62124/wssloc2019-kb4493161-fullfile-x64-glb.exe, 79 | 2021,1,SP19,https://download.microsoft.com/download/3/1/a/31a075c3-228f-4f22-8670-308f1d5ed42b/sts2019-kb4493162-fullfile-x64-glb.exe, 80 | 2021,1,SP16,https://download.microsoft.com/download/c/e/0/ce09f720-23bb-49c7-b8e2-e27ff6f85a6e/sts2016-kb4493163-fullfile-x64-glb.exe, 81 | 2021,1,SP16,https://download.microsoft.com/download/6/7/b/67bfd095-a6c0-46b0-8613-f896648f7d51/wssloc2016-kb4493167-fullfile-x64-glb.exe, 82 | 2021,1,SP15,https://download.microsoft.com/download/9/6/f/96ff7c11-04e3-434f-b7ac-a43e0d82193a/ubersrv2013-kb4493150-fullfile-x64-glb.exe, 83 | 2021,1,SP15,https://download.microsoft.com/download/9/6/f/96ff7c11-04e3-434f-b7ac-a43e0d82193a/ubersrv_2.cab, 84 | 2021,1,SP15,https://download.microsoft.com/download/9/6/f/96ff7c11-04e3-434f-b7ac-a43e0d82193a/ubersrv_1.cab, 85 | 2021,1,SP15,https://download.microsoft.com/download/0/0/3/00305e83-aa9e-448c-a470-692103a24f8c/ubersts2013-kb4493172-fullfile-x64-glb.exe, 86 | 2021,1,SP14,https://download.microsoft.com/download/b/a/c/bac20a7e-b4d3-4c6e-83e9-d977de2ae6e4/ubersrv2010-kb4493184-fullfile-x64-glb.exe, 87 | 2021,1,SP14,https://download.microsoft.com/download/a/5/b/a5bae317-5ce9-463a-a6da-5a0c93f2701a/wssloc2010-kb4493187-fullfile-x64-glb.exe, 88 | 2021,1,PROJ15,https://download.microsoft.com/download/d/6/0/d60c9b12-1dbe-42ea-9597-aa679dd7164f/ubersrvprj2013-kb4493173-fullfile-x64-glb.exe, 89 | 2021,1,PROJ15,https://download.microsoft.com/download/d/6/0/d60c9b12-1dbe-42ea-9597-aa679dd7164f/ubersrvprj_2.cab, 90 | 2021,1,PROJ15,https://download.microsoft.com/download/d/6/0/d60c9b12-1dbe-42ea-9597-aa679dd7164f/ubersrvprj_1.cab, 91 | 2021,1,PROJ14,https://download.microsoft.com/download/7/9/0/79073359-9404-4816-84a7-22c1fcb755ce/ubersrvprj2010-kb4493182-fullfile-x64-glb.exe, 92 | 2020,9,SP19,https://download.microsoft.com/download/f/9/f/f9ff104a-1f46-46d7-96c7-7a7ea49c8801/sts2019-kb4484505-fullfile-x64-glb.exe, 93 | 2020,9,SP19,https://download.microsoft.com/download/d/f/4/df47c1ae-a4d2-436e-b47c-09aecc70de1d/wssloc2019-kb4484504-fullfile-x64-glb.exe, 94 | 2020,9,SP16,https://download.microsoft.com/download/9/c/d/9cd859af-aa7c-4810-b38a-393e208a436f/wssloc2016-kb4484512-fullfile-x64-glb.exe, 95 | 2020,9,SP16,https://download.microsoft.com/download/7/a/e/7ae72724-fa95-46e4-a6b7-254b22099f45/sts2016-kb4484506-fullfile-x64-glb.exe, 96 | 2020,9,SP15,https://download.microsoft.com/download/5/c/6/5c677d85-3c4c-4022-ad87-03e5216d6c05/ubersts2013-kb4484519-fullfile-x64-glb.exe, 97 | 2020,9,SP15,https://download.microsoft.com/download/4/5/e/45e1f87c-bf41-4720-8114-c78c121a2c0a/ubersrv2013-kb4484523-fullfile-x64-glb.exe, 98 | 2020,9,SP15,https://download.microsoft.com/download/4/5/e/45e1f87c-bf41-4720-8114-c78c121a2c0a/ubersrv_2.cab, 99 | 2020,9,SP15,https://download.microsoft.com/download/4/5/e/45e1f87c-bf41-4720-8114-c78c121a2c0a/ubersrv_1.cab, 100 | 2020,9,SP14,https://download.microsoft.com/download/9/1/b/91b744ec-9cfc-4c9b-aceb-e73f751ff83b/wssloc2010-kb4486667-fullfile-x64-glb.exe, 101 | 2020,9,SP14,https://download.microsoft.com/download/1/6/5/165c53de-aa1f-4e9d-888e-5fb6aadf47a2/ubersrv2010-kb4486662-fullfile-x64-glb.exe, 102 | 2020,9,PROJ15,https://download.microsoft.com/download/1/0/9/109c7393-2ee2-419e-8074-ed41b3ae44d6/ubersrvprj2013-kb4484521-fullfile-x64-glb.exe, 103 | 2020,9,PROJ15,https://download.microsoft.com/download/1/0/9/109c7393-2ee2-419e-8074-ed41b3ae44d6/ubersrvprj_2.cab, 104 | 2020,9,PROJ15,https://download.microsoft.com/download/1/0/9/109c7393-2ee2-419e-8074-ed41b3ae44d6/ubersrvprj_1.cab, 105 | 2020,9,PROJ14,https://download.microsoft.com/download/0/c/3/0c37407b-4144-45f8-a34a-529f0bee56b2/ubersrvprj2010-kb4484535-fullfile-x64-glb.exe, 106 | 2020,8,SP19,https://download.microsoft.com/download/5/c/6/5c696fd2-36a5-4d1a-a045-125ad5b5b7b6/sts2019-kb4484472-fullfile-x64-glb.exe, 107 | 2020,8,SP19,https://download.microsoft.com/download/4/a/4/4a41f078-532e-4679-97e3-ace76f49b3ce/wssloc2019-kb4484471-fullfile-x64-glb.exe, 108 | 2020,8,SP16,https://download.microsoft.com/download/e/6/4/e649742d-2e1c-4175-9c30-cc5adb10049e/sts2016-kb4484473-fullfile-x64-glb.exe, 109 | 2020,8,SP16,https://download.microsoft.com/download/d/d/3/dd37fedb-cb53-42a1-9e3d-79c5c8ff1c1a/wssloc2016-kb4484476-fullfile-x64-glb.exe, 110 | 2020,8,SP15,https://download.microsoft.com/download/e/5/c/e5c1d06f-8888-4d52-beb9-d62a1021fe6d/ubersts2013-kb4484482-fullfile-x64-glb.exe, 111 | 2020,8,SP15,https://download.microsoft.com/download/e/2/a/e2ad9ec1-ec3f-4b87-8c67-2dc50992e6b9/ubersrv2013-kb4484485-fullfile-x64-glb.exe, 112 | 2020,8,SP15,https://download.microsoft.com/download/e/2/a/e2ad9ec1-ec3f-4b87-8c67-2dc50992e6b9/ubersrv_2.cab, 113 | 2020,8,SP15,https://download.microsoft.com/download/e/2/a/e2ad9ec1-ec3f-4b87-8c67-2dc50992e6b9/ubersrv_1.cab, 114 | 2020,8,SP14,https://download.microsoft.com/download/e/0/8/e0849473-9989-4e2c-90a5-096a6ee17d53/wssloc2010-kb4484462-fullfile-x64-glb.exe, 115 | 2020,8,SP14,https://download.microsoft.com/download/5/8/e/58e9329d-b779-4921-9fc2-c30179d0d966/ubersrv2010-kb4484496-fullfile-x64-glb.exe, 116 | 2020,8,PROJ15,https://download.microsoft.com/download/d/c/a/dcaaebf4-3f5b-417a-822e-3c3adc94c0b2/ubersrvprj2013-kb4484483-fullfile-x64-glb.exe, 117 | 2020,8,PROJ15,https://download.microsoft.com/download/d/c/a/dcaaebf4-3f5b-417a-822e-3c3adc94c0b2/ubersrvprj_2.cab, 118 | 2020,8,PROJ15,https://download.microsoft.com/download/d/c/a/dcaaebf4-3f5b-417a-822e-3c3adc94c0b2/ubersrvprj_1.cab, 119 | 2020,8,PROJ14,https://download.microsoft.com/download/1/d/d/1dd51747-ca22-4f0e-809f-9320684010b6/ubersrvprj2010-kb4484493-fullfile-x64-glb.exe, 120 | 2020,7,SP19,https://download.microsoft.com/download/7/4/1/74129e52-6807-46a1-b78c-0ca836fa1167/wssloc2019-kb4484452-fullfile-x64-glb.exe, 121 | 2020,7,SP19,https://download.microsoft.com/download/4/d/8/4d88183a-3eea-43a6-a33e-423c879f879b/sts2019-kb4484453-fullfile-x64-glb.exe, 122 | 2020,7,SP16,https://download.microsoft.com/download/a/0/5/a05a48bb-d856-40b2-b8aa-4dc4e7d79777/wssloc2016-kb4484440-fullfile-x64-glb.exe, 123 | 2020,7,SP16,https://download.microsoft.com/download/5/f/8/5f8059f6-327a-46c0-996b-868cb91fea78/sts2016-kb4484436-fullfile-x64-glb.exe, 124 | 2020,7,SP15,https://download.microsoft.com/download/f/1/9/f19c6d20-287e-4ab5-994b-570bd784382c/ubersts2013-kb4484444-fullfile-x64-glb.exe, 125 | 2020,7,SP15,https://download.microsoft.com/download/2/d/b/2db874a7-6c28-4db8-957f-dcb721e53fc1/ubersrv2013-kb4484447-fullfile-x64-glb.exe, 126 | 2020,7,SP15,https://download.microsoft.com/download/2/d/b/2db874a7-6c28-4db8-957f-dcb721e53fc1/ubersrv_2.cab, 127 | 2020,7,SP15,https://download.microsoft.com/download/2/d/b/2db874a7-6c28-4db8-957f-dcb721e53fc1/ubersrv_1.cab, 128 | 2020,7,SP14,https://download.microsoft.com/download/a/c/1/ac1091a7-8893-4af9-a803-60689a411a9c/ubersrv2010-kb4484459-fullfile-x64-glb.exe, 129 | 2020,7,PROJ15,https://download.microsoft.com/download/5/6/0/560a1cfd-f43e-4383-b90c-1984daf10789/ubersrvprj2013-kb4484445-fullfile-x64-glb.exe, 130 | 2020,7,PROJ15,https://download.microsoft.com/download/5/6/0/560a1cfd-f43e-4383-b90c-1984daf10789/ubersrvprj_2.cab, 131 | 2020,7,PROJ15,https://download.microsoft.com/download/5/6/0/560a1cfd-f43e-4383-b90c-1984daf10789/ubersrvprj_1.cab, 132 | 2020,7,PROJ14,https://download.microsoft.com/download/7/e/8/7e8d46ea-b678-442d-b080-ba851e517f2a/ubersrvprj2010-kb4484457-fullfile-x64-glb.exe, 133 | 2020,6,SP19,https://download.microsoft.com/download/d/6/2/d626e96c-daad-429a-8c42-5d534e4859b7/wssloc2019-kb4484404-fullfile-x64-glb.exe, 134 | 2020,6,SP19,https://download.microsoft.com/download/7/1/d/71d1b151-71d3-4e1c-b5f0-57576eda538f/sts2019-kb4484400-fullfile-x64-glb.exe, 135 | 2020,6,SP16,https://download.microsoft.com/download/7/5/d/75d62b66-d07a-48ec-8661-fd8305470b40/wssloc2016-kb4484344-fullfile-x64-glb.exe, 136 | 2020,6,SP16,https://download.microsoft.com/download/6/5/7/65738916-a2aa-4915-94a5-4436bccaebd3/sts2016-kb4484402-fullfile-x64-glb.exe, 137 | 2020,6,SP15,https://download.microsoft.com/download/d/a/a/daa748a8-2b92-4a8d-89ad-1b5646149831/ubersts2013-kb4484406-fullfile-x64-glb.exe, 138 | 2020,6,SP15,https://download.microsoft.com/download/5/2/5/5258d109-cdea-41e4-a6ef-b2d652a0f2b6/ubersrv2013-kb4484408-fullfile-x64-glb.exe, 139 | 2020,6,SP15,https://download.microsoft.com/download/5/2/5/5258d109-cdea-41e4-a6ef-b2d652a0f2b6/ubersrv_2.cab, 140 | 2020,6,SP15,https://download.microsoft.com/download/5/2/5/5258d109-cdea-41e4-a6ef-b2d652a0f2b6/ubersrv_1.cab, 141 | 2020,6,SP14,https://download.microsoft.com/download/d/0/8/d0814387-9107-4de7-8645-698b86409ce1/ubersrv2010-kb4484413-fullfile-x64-glb.exe, 142 | 2020,6,SP14,https://download.microsoft.com/download/3/4/e/34e3875d-9273-463e-bf65-57fa6e251172/wssloc2010-kb4484391-fullfile-x64-glb.exe, 143 | 2020,6,PROJ15,https://download.microsoft.com/download/6/3/f/63fd79d7-c3cd-483c-8984-6f1e6245425d/ubersrvprj2013-kb4484407-fullfile-x64-glb.exe, 144 | 2020,6,PROJ15,https://download.microsoft.com/download/6/3/f/63fd79d7-c3cd-483c-8984-6f1e6245425d/ubersrvprj_2.cab, 145 | 2020,6,PROJ15,https://download.microsoft.com/download/6/3/f/63fd79d7-c3cd-483c-8984-6f1e6245425d/ubersrvprj_1.cab, 146 | 2020,6,PROJ14,https://download.microsoft.com/download/2/3/4/23417712-efdb-42bc-b441-f5498f883d9f/ubersrvprj2010-kb4484412-fullfile-x64-glb.exe, 147 | 2020,5,SP19,https://download.microsoft.com/download/d/8/d/d8ddb775-4ab5-4037-8420-971799c7b7cd/wssloc2019-kb4484331-fullfile-x64-glb.exe, 148 | 2020,5,SP19,https://download.microsoft.com/download/9/5/1/95181932-573a-4cee-837d-1fe59ad19c5d/sts2019-kb4484332-fullfile-x64-glb.exe, 149 | 2020,5,SP16,https://download.microsoft.com/download/b/2/a/b2aa0d23-983f-40e9-9cc1-a4b102c35344/sts2016-kb4484336-fullfile-x64-glb.exe, 150 | 2020,5,SP15,https://download.microsoft.com/download/e/d/6/ed6352cd-90e1-489c-83e1-4210084e0e36/ubersrv2013-kb4484362-fullfile-x64-glb.exe, 151 | 2020,5,SP15,https://download.microsoft.com/download/e/d/6/ed6352cd-90e1-489c-83e1-4210084e0e36/ubersrv_2.cab, 152 | 2020,5,SP15,https://download.microsoft.com/download/e/d/6/ed6352cd-90e1-489c-83e1-4210084e0e36/ubersrv_1.cab, 153 | 2020,5,SP15,https://download.microsoft.com/download/3/3/b/33b34db3-5a81-46ca-8781-a1e1e645c305/ubersts2013-kb4484358-fullfile-x64-glb.exe, 154 | 2020,5,SP14,https://download.microsoft.com/download/0/3/0/03056875-99ac-4599-b131-4d2e37b86c5a/ubersrv2010-kb4484389-fullfile-x64-glb.exe, 155 | 2020,5,PROJ15,https://download.microsoft.com/download/0/1/1/011cb996-3728-41a1-b6dd-d0d0e4050410/ubersrvprj2013-kb4484360-fullfile-x64-glb.exe, 156 | 2020,5,PROJ15,https://download.microsoft.com/download/0/1/1/011cb996-3728-41a1-b6dd-d0d0e4050410/ubersrvprj_2.cab, 157 | 2020,5,PROJ15,https://download.microsoft.com/download/0/1/1/011cb996-3728-41a1-b6dd-d0d0e4050410/ubersrvprj_1.cab, 158 | 2020,4,SP19,https://download.microsoft.com/download/c/c/2/cc2144cd-2dff-4372-8b54-ec91ce082178/wssloc2019-kb4484291-fullfile-x64-glb.exe, 159 | 2020,4,SP19,https://download.microsoft.com/download/4/5/2/452295f5-02dd-4629-9432-fac0661c2061/sts2019-kb4484292-fullfile-x64-glb.exe, 160 | 2020,4,SP16,https://download.microsoft.com/download/8/c/1/8c19f306-1981-46a4-8785-5935925566cd/sts2016-kb4484299-fullfile-x64-glb.exe, 161 | 2020,4,SP16,https://download.microsoft.com/download/2/1/1/2111aa4e-f394-401c-b542-9a7fa814b6c3/wssloc2016-kb4484301-fullfile-x64-glb.exe, 162 | 2020,4,SP15,https://download.microsoft.com/download/b/4/b/b4b53b30-2629-40fb-beaa-4714f115f746/ubersts2013-kb4484309-fullfile-x64-glb.exe, 163 | 2020,4,SP15,https://download.microsoft.com/download/5/9/b/59bbb7a9-f58d-452a-83b5-4016342722d9/ubersrv2013-kb4484320-fullfile-x64-glb.exe, 164 | 2020,4,SP15,https://download.microsoft.com/download/5/9/b/59bbb7a9-f58d-452a-83b5-4016342722d9/ubersrv_2.cab, 165 | 2020,4,SP15,https://download.microsoft.com/download/5/9/b/59bbb7a9-f58d-452a-83b5-4016342722d9/ubersrv_1.cab, 166 | 2020,4,SP14,https://download.microsoft.com/download/2/c/7/2c714ea2-d802-475d-ab9c-13a371d9cd49/wssloc2010-kb4484386-fullfile-x64-glb.exe, 167 | 2020,4,SP14,https://download.microsoft.com/download/0/7/b/07b99de7-0509-4b17-bd6c-dbee4f88765b/wssloc2010-kb4484298-fullfile-x64-glb.exe, 168 | 2020,4,SP14,https://download.microsoft.com/download/0/4/8/048f1abc-6e07-4c36-8ba1-84640c92a1e1/ubersrv2010-kb4484324-fullfile-x64-glb.exe, 169 | 2020,4,PROJ15,https://download.microsoft.com/download/4/8/8/488c55e9-cb27-455f-b86d-0750d8b0b38f/ubersrvprj2013-kb4484318-fullfile-x64-glb.exe, 170 | 2020,4,PROJ15,https://download.microsoft.com/download/4/8/8/488c55e9-cb27-455f-b86d-0750d8b0b38f/ubersrvprj_2.cab, 171 | 2020,4,PROJ15,https://download.microsoft.com/download/4/8/8/488c55e9-cb27-455f-b86d-0750d8b0b38f/ubersrvprj_1.cab, 172 | 2020,4,PROJ14,https://download.microsoft.com/download/8/3/c/83c284f9-b582-4a84-afaa-8e5ff99bfcf5/ubersrvprj2010-kb4484323-fullfile-x64-glb.exe, 173 | 2020,3,SP19,https://download.microsoft.com/download/c/9/8/c98becec-8387-4430-b5b5-f3bb344d2cc9/wssloc2019-kb4484277-fullfile-x64-glb.exe, 174 | 2020,3,SP19,https://download.microsoft.com/download/b/4/a/b4a2196d-706b-4f8a-a4f7-c504ce4ee1bd/sts2019-kb4484271-fullfile-x64-glb.exe, 175 | 2020,3,SP16,https://download.microsoft.com/download/6/c/5/6c504679-edbf-42ec-be33-a32a6b0e82fd/sts2016-kb4484272-fullfile-x64-glb.exe, 176 | 2020,3,SP16,https://download.microsoft.com/download/4/e/2/4e2e357b-787c-408e-b174-410d20ccec2d/wssloc2016-kb4484275-fullfile-x64-glb.exe, 177 | 2020,3,SP15,https://download.microsoft.com/download/5/c/6/5c6df029-1b84-4049-8a0e-2144ee7072f8/ubersts2013-kb4484278-fullfile-x64-glb.exe, 178 | 2020,3,SP15,https://download.microsoft.com/download/5/b/2/5b20f34e-6152-4f2f-ae82-1abd9fce0351/ubersrv2013-kb4484280-fullfile-x64-glb.exe, 179 | 2020,3,SP15,https://download.microsoft.com/download/5/b/2/5b20f34e-6152-4f2f-ae82-1abd9fce0351/ubersrv_2.cab, 180 | 2020,3,SP15,https://download.microsoft.com/download/5/b/2/5b20f34e-6152-4f2f-ae82-1abd9fce0351/ubersrv_1.cab, 181 | 2020,3,SP14,https://download.microsoft.com/download/b/e/3/be322fc7-f91a-42db-8c7c-30e429acfce6/ubersrv2010-kb4484241-fullfile-x64-glb.exe, 182 | 2020,3,SP14,https://download.microsoft.com/download/8/f/3/8f343c60-cdd8-403c-9ced-ddd8e19d8191/wssloc2010-kb4484197-fullfile-x64-glb.exe, 183 | 2020,3,PROJ15,https://download.microsoft.com/download/e/3/6/e3695329-9e85-4d0b-8e72-4f197e6b11d6/ubersrvprj2013-kb4484279-fullfile-x64-glb.exe, 184 | 2020,3,PROJ15,https://download.microsoft.com/download/e/3/6/e3695329-9e85-4d0b-8e72-4f197e6b11d6/ubersrvprj_2.cab, 185 | 2020,3,PROJ15,https://download.microsoft.com/download/e/3/6/e3695329-9e85-4d0b-8e72-4f197e6b11d6/ubersrvprj_1.cab, 186 | 2020,3,PROJ14,https://download.microsoft.com/download/0/f/6/0f6d7a03-a28e-4628-8986-709727a1ea5d/ubersrvprj2010-kb4484239-fullfile-x64-glb.exe, 187 | 2020,2,SP19,https://download.microsoft.com/download/c/1/3/c13fbe9c-bb3e-44eb-87b7-ceb62966fc45/wssloc2019-kb4484225-fullfile-x64-glb.exe, 188 | 2020,2,SP19,https://download.microsoft.com/download/9/6/4/96449329-8b9c-428b-a8f3-980ad579217a/sts2019-kb4484259-fullfile-x64-glb.exe, 189 | 2020,2,SP16,https://download.microsoft.com/download/d/8/c/d8c43752-1e4a-4049-b93f-2d922859ff06/wssloc2016-kb4484257-fullfile-x64-glb.exe, 190 | 2020,2,SP16,https://download.microsoft.com/download/9/d/e/9de55529-41b9-480a-bcbf-e6a38354e5f9/sts2016-kb4484255-fullfile-x64-glb.exe, 191 | 2020,2,SP15,https://download.microsoft.com/download/e/0/b/e0ba266f-ce0b-4d8e-bb50-d00f081dbb34/ubersts2013-kb4484261-fullfile-x64-glb.exe, 192 | 2020,2,SP15,https://download.microsoft.com/download/6/f/1/6f11be47-7fcb-4880-926e-9d437f1f556b/ubersrv2013-kb4484263-fullfile-x64-glb.exe, 193 | 2020,2,SP15,https://download.microsoft.com/download/6/f/1/6f11be47-7fcb-4880-926e-9d437f1f556b/ubersrv_2.cab, 194 | 2020,2,SP15,https://download.microsoft.com/download/6/f/1/6f11be47-7fcb-4880-926e-9d437f1f556b/ubersrv_1.cab, 195 | 2020,2,PROJ15,https://download.microsoft.com/download/7/a/0/7a0739e2-47aa-449c-ad19-3a56aebad699/ubersrvprj2013-kb4484262-fullfile-x64-glb.exe, 196 | 2020,2,PROJ15,https://download.microsoft.com/download/7/a/0/7a0739e2-47aa-449c-ad19-3a56aebad699/ubersrvprj_2.cab, 197 | 2020,2,PROJ15,https://download.microsoft.com/download/7/a/0/7a0739e2-47aa-449c-ad19-3a56aebad699/ubersrvprj_1.cab, 198 | 2020,12,SP19,https://download.microsoft.com/download/9/7/e/97e94f26-8a70-4e74-91df-67c3e8827b14/sts2019-kb4486751-fullfile-x64-glb.exe, 199 | 2020,12,SP19,https://download.microsoft.com/download/1/5/3/1533f0f6-3627-446f-a17e-f55c0699e6a9/wssloc2019-kb4486752-fullfile-x64-glb.exe, 200 | 2020,12,SP16,https://download.microsoft.com/download/d/4/7/d4785d45-0f73-4e94-8522-136fa1fee390/sts2016-kb4486753-fullfile-x64-glb.exe, 201 | 2020,12,SP16,https://download.microsoft.com/download/4/d/9/4d94a4ca-e171-4a89-ad44-937179183986/wssloc2016-kb4486721-fullfile-x64-glb.exe, 202 | 2020,12,SP15,https://download.microsoft.com/download/9/5/1/951699a5-5310-46a2-a33b-007967c44dc2/ubersrv2013-kb4493137-fullfile-x64-glb.exe, 203 | 2020,12,SP15,https://download.microsoft.com/download/9/5/1/951699a5-5310-46a2-a33b-007967c44dc2/ubersrv_2.cab, 204 | 2020,12,SP15,https://download.microsoft.com/download/9/5/1/951699a5-5310-46a2-a33b-007967c44dc2/ubersrv_1.cab, 205 | 2020,12,SP15,https://download.microsoft.com/download/1/7/4/174b1cd9-0ef6-4eac-9d96-6c6aa398a06a/ubersts2013-kb4486761-fullfile-x64-glb.exe, 206 | 2020,12,SP14,https://download.microsoft.com/download/3/7/4/3745473b-d63f-457e-82be-ba561c97daa0/wssloc2010-kb4493149-fullfile-x64-glb.exe, 207 | 2020,12,SP14,https://download.microsoft.com/download/0/4/b/04bc54f3-1bd3-4498-80ee-d176fe2faa05/ubersrv2010-kb4493146-fullfile-x64-glb.exe, 208 | 2020,12,PROJ15,https://download.microsoft.com/download/1/9/e/19ed2b15-89fc-43de-a951-c5c510c79450/ubersrvprj2013-kb4486763-fullfile-x64-glb.exe, 209 | 2020,12,PROJ15,https://download.microsoft.com/download/1/9/e/19ed2b15-89fc-43de-a951-c5c510c79450/ubersrvprj_2.cab, 210 | 2020,12,PROJ15,https://download.microsoft.com/download/1/9/e/19ed2b15-89fc-43de-a951-c5c510c79450/ubersrvprj_1.cab, 211 | 2020,12,PROJ14,https://download.microsoft.com/download/a/1/2/a1291ab4-39ff-40b9-8fbd-21be0efd29c8/ubersrvprj2010-kb4493144-fullfile-x64-glb.exe, 212 | 2020,11,SP19,https://download.microsoft.com/download/a/c/f/acfefe5a-a1b8-4c24-b515-110c4e7d3645/wssloc2019-kb4486715-fullfile-x64-glb.exe, 213 | 2020,11,SP19,https://download.microsoft.com/download/0/7/8/078c7a99-edb8-4e64-b3d1-fc9b31bd1fd0/sts2019-kb4486714-fullfile-x64-glb.exe, 214 | 2020,11,SP16,https://download.microsoft.com/download/b/1/2/b1230649-565d-4495-8040-c1c531ac98e9/sts2016-kb4486717-fullfile-x64-glb.exe, 215 | 2020,11,SP15,https://download.microsoft.com/download/f/b/c/fbceee17-4bb9-4b31-9cde-5b9f43f1f595/ubersts2013-kb4486728-fullfile-x64-glb.exe, 216 | 2020,11,SP15,https://download.microsoft.com/download/8/8/9/88983adb-67fc-488d-9276-3d9f90524c14/ubersrv2013-kb4486731-fullfile-x64-glb.exe, 217 | 2020,11,SP15,https://download.microsoft.com/download/8/8/9/88983adb-67fc-488d-9276-3d9f90524c14/ubersrv_2.cab, 218 | 2020,11,SP15,https://download.microsoft.com/download/8/8/9/88983adb-67fc-488d-9276-3d9f90524c14/ubersrv_1.cab, 219 | 2020,11,SP14,https://download.microsoft.com/download/e/7/3/e736eeaf-7b0e-474e-88c8-f05e4b693369/ubersrv2010-kb4486741-fullfile-x64-glb.exe, 220 | 2020,11,SP14,https://download.microsoft.com/download/b/b/a/bba462e4-ac47-4f16-8a16-a0586ba86848/wssloc2010-kb4486744-fullfile-x64-glb.exe, 221 | 2020,11,PROJ15,https://download.microsoft.com/download/4/7/4/474eb0b2-6147-44c3-a4c7-a2930e30314a/ubersrvprj2013-kb4486729-fullfile-x64-glb.exe, 222 | 2020,11,PROJ15,https://download.microsoft.com/download/4/7/4/474eb0b2-6147-44c3-a4c7-a2930e30314a/ubersrvprj_2.cab, 223 | 2020,11,PROJ15,https://download.microsoft.com/download/4/7/4/474eb0b2-6147-44c3-a4c7-a2930e30314a/ubersrvprj_1.cab, 224 | 2020,11,PROJ14,https://download.microsoft.com/download/e/4/1/e41b850b-a852-48b8-ad09-43c170d609d7/ubersrvprj2010-kb4486739-fullfile-x64-glb.exe, 225 | 2020,10,SP19,https://download.microsoft.com/download/8/b/3/8b33b7ca-0ac1-4c21-9bb3-dcabf785993b/wssloc2019-kb4486675-fullfile-x64-glb.exe, 226 | 2020,10,SP19,https://download.microsoft.com/download/6/2/8/62875c6c-afde-4ca2-b656-33f9a3b70341/sts2019-kb4486676-fullfile-x64-glb.exe, 227 | 2020,10,SP16,https://download.microsoft.com/download/d/1/8/d184b284-db57-43f9-b2ba-61626f17e65f/sts2016-kb4486677-fullfile-x64-glb.exe, 228 | 2020,10,SP16,https://download.microsoft.com/download/4/0/7/407093c8-d09e-4fae-9ee9-d0dd979efd63/wssloc2016-kb4486681-fullfile-x64-glb.exe, 229 | 2020,10,SP15,https://download.microsoft.com/download/6/5/7/6574b40f-7b46-48fa-abee-aeeca8fbb15f/ubersrv2013-kb4486693-fullfile-x64-glb.exe, 230 | 2020,10,SP15,https://download.microsoft.com/download/6/5/7/6574b40f-7b46-48fa-abee-aeeca8fbb15f/ubersrv_2.cab, 231 | 2020,10,SP15,https://download.microsoft.com/download/6/5/7/6574b40f-7b46-48fa-abee-aeeca8fbb15f/ubersrv_1.cab, 232 | 2020,10,SP15,https://download.microsoft.com/download/6/3/d/63dd72e8-a700-406a-8dc2-f7e742ab10b6/ubersts2013-kb4486690-fullfile-x64-glb.exe, 233 | 2020,10,SP14,https://download.microsoft.com/download/8/e/8/8e88e522-416a-483f-828e-5c2ca5a6597e/ubersrv2010-kb4486705-fullfile-x64-glb.exe, 234 | 2020,10,SP14,https://download.microsoft.com/download/8/c/e/8cee8049-f33b-4e2b-a004-128559468f7c/wssloc2010-kb4486708-fullfile-x64-glb.exe, 235 | 2020,10,PROJ15,https://download.microsoft.com/download/0/7/f/07f1f1a9-1599-4f4c-ba10-aeea6814f4f0/ubersrvprj2013-kb4486691-fullfile-x64-glb.exe, 236 | 2020,10,PROJ15,https://download.microsoft.com/download/0/7/f/07f1f1a9-1599-4f4c-ba10-aeea6814f4f0/ubersrvprj_2.cab, 237 | 2020,10,PROJ15,https://download.microsoft.com/download/0/7/f/07f1f1a9-1599-4f4c-ba10-aeea6814f4f0/ubersrvprj_1.cab, 238 | 2020,10,PROJ14,https://download.microsoft.com/download/7/3/b/73ba599f-30a4-4dab-b945-f95d9c4720cc/ubersrvprj2010-kb4486702-fullfile-x64-glb.exe, 239 | 2020,1,SP19,https://download.microsoft.com/download/c/5/e/c5e7a12c-12a9-4d54-8c17-f9c8213ba026/sts2019-kb4484224-fullfile-x64-glb.exe, 240 | 2020,1,SP16,https://download.microsoft.com/download/b/7/7/b7784c25-dc3a-477c-af43-ae59e01e90c3/wssloc2016-kb4484220-fullfile-x64-glb.exe, 241 | 2020,1,SP16,https://download.microsoft.com/download/a/e/2/ae236329-3bf8-4e61-90ee-89f4e5db7551/sts2016-kb4484215-fullfile-x64-glb.exe, 242 | 2020,1,SP15,https://download.microsoft.com/download/7/e/1/7e12db89-b69e-4cb1-8837-bf33ef25b799/ubersrv2013-kb4484232-fullfile-x64-glb.exe, 243 | 2020,1,SP15,https://download.microsoft.com/download/7/e/1/7e12db89-b69e-4cb1-8837-bf33ef25b799/ubersrv_2.cab, 244 | 2020,1,SP15,https://download.microsoft.com/download/7/e/1/7e12db89-b69e-4cb1-8837-bf33ef25b799/ubersrv_1.cab, 245 | 2020,1,SP15,https://download.microsoft.com/download/3/f/d/3fdc891c-e5bc-4bc7-aafd-bdc9994ef3f8/ubersts2013-kb4484228-fullfile-x64-glb.exe, 246 | 2020,1,PROJ15,https://download.microsoft.com/download/f/c/d/fcd8dbb5-95be-4c31-a696-1718b515842c/ubersrvprj2013-kb4484230-fullfile-x64-glb.exe, 247 | 2020,1,PROJ15,https://download.microsoft.com/download/f/c/d/fcd8dbb5-95be-4c31-a696-1718b515842c/ubersrvprj_2.cab, 248 | 2020,1,PROJ15,https://download.microsoft.com/download/f/c/d/fcd8dbb5-95be-4c31-a696-1718b515842c/ubersrvprj_1.cab, 249 | 2019,9,SP19,https://download.microsoft.com/download/a/4/3/a432cef9-cd2d-4014-9048-0f90688724f1/sts2019-kb4475596-fullfile-x64-glb.exe, 250 | 2019,9,SP19,https://download.microsoft.com/download/7/b/1/7b115bab-79d8-40e3-8180-ecd920e82941/wssloc2019-kb4464557-fullfile-x64-glb.exe, 251 | 2019,9,SP16,https://download.microsoft.com/download/5/5/5/5554dc20-b98d-479a-b514-dbe2b336a713/sts2016-kb4475590-fullfile-x64-glb.exe, 252 | 2019,9,SP16,https://download.microsoft.com/download/0/d/2/0d2bf30c-e521-46aa-904a-7ecd522b8d05/wssloc2016-kb4475594-fullfile-x64-glb.exe, 253 | 2019,9,SP15,https://download.microsoft.com/download/d/1/e/d1ea6ec2-ee14-401c-a5ad-4ba4e632579c/ubersts2013-kb4475610-fullfile-x64-glb.exe, 254 | 2019,9,SP15,https://download.microsoft.com/download/2/f/b/2fb0b12a-643b-43c9-b190-4fda776aa585/ubersrv2013-kb4484095-fullfile-x64-glb.exe, 255 | 2019,9,SP15,https://download.microsoft.com/download/2/f/b/2fb0b12a-643b-43c9-b190-4fda776aa585/ubersrv_2.cab, 256 | 2019,9,SP15,https://download.microsoft.com/download/2/f/b/2fb0b12a-643b-43c9-b190-4fda776aa585/ubersrv_1.cab, 257 | 2019,9,SP14,https://download.microsoft.com/download/d/4/a/d4ab8a64-f636-4231-9da6-ed3e87ac210b/ubersrv2010-kb4475603-fullfile-x64-glb.exe, 258 | 2019,9,SP14,https://download.microsoft.com/download/7/8/b/78be5e54-5254-4ca7-b06e-95f3bb2fb319/wssloc2010-kb4475605-fullfile-x64-glb.exe, 259 | 2019,9,PROJ15,https://download.microsoft.com/download/d/5/e/d5e53c92-9fbc-48b0-a0e3-07e10f14a8bf/ubersrvprj2013-kb4484093-fullfile-x64-glb.exe, 260 | 2019,9,PROJ15,https://download.microsoft.com/download/d/5/e/d5e53c92-9fbc-48b0-a0e3-07e10f14a8bf/ubersrvprj_2.cab, 261 | 2019,9,PROJ15,https://download.microsoft.com/download/d/5/e/d5e53c92-9fbc-48b0-a0e3-07e10f14a8bf/ubersrvprj_1.cab, 262 | 2019,9,PROJ14,https://download.microsoft.com/download/c/6/b/c6b21025-d602-44e1-9cf5-30c49c6aa4b5/ubersrvprj2010-kb4475600-fullfile-x64-glb.exe, 263 | 2019,8,SP19,https://download.microsoft.com/download/9/2/B/92B33E94-2D07-430F-9004-0C6AFB88ECBD/sts2019-kb4475555-fullfile-x64-glb.exe, 264 | 2019,8,SP16,https://download.microsoft.com/download/C/7/4/C748A41B-4D89-44AF-9E27-BC9758DF2FEF/sts2016-kb4475549-fullfile-x64-glb.exe, 265 | 2019,8,SP16,https://download.microsoft.com/download/4/A/8/4A89B420-E88C-4A90-B915-642CEFB2E3EA/wssloc2016-kb4464553-fullfile-x64-glb.exe, 266 | 2019,8,SP15,https://download.microsoft.com/download/D/9/1/D913A2DC-BD7D-4968-AB8F-3948FB7513D1/ubersrv2013-kb4475561-fullfile-x64-glb.exe, 267 | 2019,8,SP15,https://download.microsoft.com/download/D/9/1/D913A2DC-BD7D-4968-AB8F-3948FB7513D1/ubersrv_2.cab, 268 | 2019,8,SP15,https://download.microsoft.com/download/D/9/1/D913A2DC-BD7D-4968-AB8F-3948FB7513D1/ubersrv_1.cab, 269 | 2019,8,SP15,https://download.microsoft.com/download/4/4/D/44DE6FC3-69D7-4646-A821-74B82EE3833C/ubersts2013-kb4475559-fullfile-x64-glb.exe, 270 | 2019,8,SP14,https://download.microsoft.com/download/8/4/7/847C5711-3C12-4EE4-AE74-CAF07C4D1DA8/ubersrv2010-kb4475572-fullfile-x64-glb.exe, 271 | 2019,8,SP14,https://download.microsoft.com/download/0/9/6/0964AAAA-EA90-4D77-8A4E-E60A059B0C2E/wssloc2010-kb4475575-fullfile-x64-glb.exe, 272 | 2019,8,PROJ15,https://download.microsoft.com/download/E/3/B/E3B6704C-7E28-4FFE-85C4-C0DD39F43F25/ubersrvprj2013-kb4475560-fullfile-x64-glb.exe, 273 | 2019,8,PROJ15,https://download.microsoft.com/download/E/3/B/E3B6704C-7E28-4FFE-85C4-C0DD39F43F25/ubersrvprj_2.cab, 274 | 2019,8,PROJ15,https://download.microsoft.com/download/E/3/B/E3B6704C-7E28-4FFE-85C4-C0DD39F43F25/ubersrvprj_1.cab, 275 | 2019,8,PROJ14,https://download.microsoft.com/download/6/B/6/6B6E8889-A3A3-46A3-89F4-BE0C13FBE323/ubersrvprj2010-kb4475570-fullfile-x64-glb.exe, 276 | 2019,7,SP19,https://download.microsoft.com/download/A/5/C/A5C7196F-BEBD-4137-9350-4FD3ABC7E646/sts2019-kb4475529-fullfile-x64-glb.exe, 277 | 2019,7,SP16,https://download.microsoft.com/download/1/D/B/1DB1DAF8-B3B6-49F5-8FEC-09F623B9D108/sts2016-kb4475520-fullfile-x64-glb.exe, 278 | 2019,7,SP15,https://download.microsoft.com/download/8/5/4/854B64DC-9FFF-41FE-9E8E-EA6AF35DFFBC/ubersts2013-kb4475523-fullfile-x64-glb.exe, 279 | 2019,7,SP15,https://download.microsoft.com/download/4/2/5/425EF8AB-36A3-4B3A-AEB6-933E01A66414/ubersrv2013-kb4475526-fullfile-x64-glb.exe, 280 | 2019,7,SP15,https://download.microsoft.com/download/4/2/5/425EF8AB-36A3-4B3A-AEB6-933E01A66414/ubersrv_2.cab, 281 | 2019,7,SP15,https://download.microsoft.com/download/4/2/5/425EF8AB-36A3-4B3A-AEB6-933E01A66414/ubersrv_1.cab, 282 | 2019,7,SP14,https://download.microsoft.com/download/C/3/A/C3A4ED11-4B8D-48DC-92F2-459213DCF67A/ubersrv2010-kb4475535-fullfile-x64-glb.exe, 283 | 2019,7,SP14,https://download.microsoft.com/download/2/4/9/2491E24F-AD62-4491-99F1-E600EAD353FA/wssloc2010-kb4475510-fullfile-x64-glb.exe, 284 | 2019,7,PROJ15,https://download.microsoft.com/download/E/9/5/E95D41EE-50F6-475A-A551-D5982B897328/ubersrvprj2013-kb4475524-fullfile-x64-glb.exe, 285 | 2019,7,PROJ15,https://download.microsoft.com/download/E/9/5/E95D41EE-50F6-475A-A551-D5982B897328/ubersrvprj_2.cab, 286 | 2019,7,PROJ15,https://download.microsoft.com/download/E/9/5/E95D41EE-50F6-475A-A551-D5982B897328/ubersrvprj_1.cab, 287 | 2019,7,PROJ14,https://download.microsoft.com/download/6/B/E/6BE2A237-E24A-46CD-AAE9-942A78EB4913/ubersrvprj2010-kb4475532-fullfile-x64-glb.exe, 288 | 2019,6,SP19,https://download.microsoft.com/download/8/B/4/8B4FB426-6DDD-458E-9727-640C3811082B/sts2019-kb4475512-fullfile-x64-glb.exe, 289 | 2019,6,SP16,https://download.microsoft.com/download/B/A/0/BA0C8DB5-144C-44CD-BB92-7DCCBD5BA869/sts2016-kb4464594-fullfile-x64-glb.exe, 290 | 2019,6,SP15,https://download.microsoft.com/download/3/5/B/35BAE580-53F0-4CE1-97AD-282F4117C5EF/ubersrv2013-kb4464601-fullfile-x64-glb.exe, 291 | 2019,6,SP15,https://download.microsoft.com/download/3/5/B/35BAE580-53F0-4CE1-97AD-282F4117C5EF/ubersrv_2.cab, 292 | 2019,6,SP15,https://download.microsoft.com/download/3/5/B/35BAE580-53F0-4CE1-97AD-282F4117C5EF/ubersrv_1.cab, 293 | 2019,6,SP15,https://download.microsoft.com/download/0/7/5/0753F664-71BC-4C80-9B27-ACD3A35B425A/ubersts2013-kb4464598-fullfile-x64-glb.exe, 294 | 2019,6,SP14,https://download.microsoft.com/download/E/B/2/EB2AEB40-DDA6-4CD6-8099-29CE8419A2CC/ubersrv2010-kb4475508-fullfile-x64-glb.exe, 295 | 2019,6,PROJ15,https://download.microsoft.com/download/1/E/5/1E51DA37-44B8-4528-8B15-C6911A7CB5DF/ubersrvprj2013-kb4464600-fullfile-x64-glb.exe, 296 | 2019,6,PROJ15,https://download.microsoft.com/download/1/E/5/1E51DA37-44B8-4528-8B15-C6911A7CB5DF/ubersrvprj_2.cab, 297 | 2019,6,PROJ15,https://download.microsoft.com/download/1/E/5/1E51DA37-44B8-4528-8B15-C6911A7CB5DF/ubersrvprj_1.cab, 298 | 2019,6,PROJ14,https://download.microsoft.com/download/D/0/5/D052BF3A-0C10-4814-A4B6-5E8599D769A6/ubersrvprj2010-kb4475507-fullfile-x64-glb.exe, 299 | 2019,5,SP19,https://download.microsoft.com/download/D/C/7/DC72C809-5FCA-41A6-8CB4-093416FE4AAD/sts2019-kb4464556-fullfile-x64-glb.exe, 300 | 2019,5,SP16,https://download.microsoft.com/download/8/2/6/8263BEEA-C581-468C-A60E-9495723A5407/sts2016-kb4464549-fullfile-x64-glb.exe, 301 | 2019,5,SP15,https://download.microsoft.com/download/D/B/B/DBBA7608-93B8-4C51-86E7-5D21B92A8A5B/ubersrv2013-kb4464563-fullfile-x64-glb.exe, 302 | 2019,5,SP15,https://download.microsoft.com/download/D/B/B/DBBA7608-93B8-4C51-86E7-5D21B92A8A5B/ubersrv_2.cab, 303 | 2019,5,SP15,https://download.microsoft.com/download/D/B/B/DBBA7608-93B8-4C51-86E7-5D21B92A8A5B/ubersrv_1.cab, 304 | 2019,5,SP15,https://download.microsoft.com/download/7/2/1/72133E08-FF70-4A61-BB57-CAAF377927BC/ubersts2013-kb4464560-fullfile-x64-glb.exe, 305 | 2019,5,SP14,https://download.microsoft.com/download/A/8/2/A8228B1D-AFF0-4CE3-A482-4A95029244B7/ubersrv2010-kb4464569-fullfile-x64-glb.exe, 306 | 2019,5,SP14,https://download.microsoft.com/download/0/C/1/0C1883C0-7CA0-4F3C-9937-EDADD65E713A/wssloc2010-kb4464573-fullfile-x64-glb.exe, 307 | 2019,5,PROJ15,https://download.microsoft.com/download/A/A/6/AA6485C3-836A-45BE-8A84-6CF080313541/ubersrvprj2013-kb4464562-fullfile-x64-glb.exe, 308 | 2019,5,PROJ15,https://download.microsoft.com/download/A/A/6/AA6485C3-836A-45BE-8A84-6CF080313541/ubersrvprj_2.cab, 309 | 2019,5,PROJ15,https://download.microsoft.com/download/A/A/6/AA6485C3-836A-45BE-8A84-6CF080313541/ubersrvprj_1.cab, 310 | 2019,5,PROJ14,https://download.microsoft.com/download/C/A/A/CAAEFF23-EFF8-45FE-B402-1D6866AF8C9C/ubersrvprj2010-kb4464568-fullfile-x64-glb.exe, 311 | 2019,4,SP19,https://download.microsoft.com/download/F/1/5/F15D04DD-6A78-4BFB-8E36-060870824D93/wssloc2019-kb4462221-fullfile-x64-glb.exe, 312 | 2019,4,SP19,https://download.microsoft.com/download/2/1/F/21F5F73E-82B5-4800-A97F-91BAF66ADA63/sts2019-kb4464518-fullfile-x64-glb.exe, 313 | 2019,4,SP16,https://download.microsoft.com/download/0/D/E/0DEA1C2B-E3BD-4364-B3CA-03972312C695/wssloc2016-kb4461507-fullfile-x64-glb.exe, 314 | 2019,4,SP16,https://download.microsoft.com/download/0/6/F/06F49FE9-4873-4C57-A24C-32BB3989AD63/sts2016-kb4464510-fullfile-x64-glb.exe, 315 | 2019,4,SP15,https://download.microsoft.com/download/1/6/6/166629C8-354A-48B1-8A28-A9FEE7EB4041/ubersts2013-kb4464512-fullfile-x64-glb.exe, 316 | 2019,4,SP15,https://download.microsoft.com/download/0/2/3/02361BD1-F617-4F54-9B4E-9645285F7D9F/ubersrv2013-kb4464514-fullfile-x64-glb.exe, 317 | 2019,4,SP15,https://download.microsoft.com/download/0/2/3/02361BD1-F617-4F54-9B4E-9645285F7D9F/ubersrv_2.cab, 318 | 2019,4,SP15,https://download.microsoft.com/download/0/2/3/02361BD1-F617-4F54-9B4E-9645285F7D9F/ubersrv_1.cab, 319 | 2019,4,SP14,https://download.microsoft.com/download/A/9/5/A9576605-19E3-4648-A285-E98A88FC27A5/wssloc2010-kb4464528-fullfile-x64-glb.exe, 320 | 2019,4,SP14,https://download.microsoft.com/download/8/C/3/8C305B02-D72D-47B6-87B4-54F181407FEB/ubersrv2010-kb4464523-fullfile-x64-glb.exe, 321 | 2019,4,PROJ15,https://download.microsoft.com/download/7/1/3/713E3A20-9CDC-4C00-9EE5-24EAA41E8B39/ubersrvprj2013-kb4464513-fullfile-x64-glb.exe, 322 | 2019,4,PROJ15,https://download.microsoft.com/download/7/1/3/713E3A20-9CDC-4C00-9EE5-24EAA41E8B39/ubersrvprj_2.cab, 323 | 2019,4,PROJ15,https://download.microsoft.com/download/7/1/3/713E3A20-9CDC-4C00-9EE5-24EAA41E8B39/ubersrvprj_1.cab, 324 | 2019,4,PROJ14,https://download.microsoft.com/download/3/E/6/3E674197-83BC-4048-9579-DEE8AE772FE9/ubersrvprj2010-kb4464521-fullfile-x64-glb.exe, 325 | 2019,3,SP19,https://download.microsoft.com/download/6/C/2/6C261226-E3B1-47AC-B3CC-1286AE232422/sts2019-kb4462199-fullfile-x64-glb.exe, 326 | 2019,3,SP16,https://download.microsoft.com/download/8/7/F/87FCF7FA-2D9F-4000-B782-17656D79AC4B/sts2016-kb4462211-fullfile-x64-glb.exe, 327 | 2019,3,SP15,https://download.microsoft.com/download/B/C/8/BC8830FF-0987-4957-83F7-F95B66409792/ubersrv2013-kb4462219-fullfile-x64-glb.exe, 328 | 2019,3,SP15,https://download.microsoft.com/download/B/C/8/BC8830FF-0987-4957-83F7-F95B66409792/ubersrv_2.cab, 329 | 2019,3,SP15,https://download.microsoft.com/download/B/C/8/BC8830FF-0987-4957-83F7-F95B66409792/ubersrv_1.cab, 330 | 2019,3,SP15,https://download.microsoft.com/download/3/A/3/3A3D874F-A768-4828-BE77-730AC9D0D2B5/ubersts2013-kb4462217-fullfile-x64-glb.exe, 331 | 2019,3,SP14,https://download.microsoft.com/download/3/D/F/3DF76B13-A5A6-4538-BE62-AA8227F51E10/wssloc2010-kb4462231-fullfile-x64-glb.exe, 332 | 2019,3,SP14,https://download.microsoft.com/download/3/D/1/3D188D5F-C248-4B09-B939-616DA9E91984/ubersrv2010-kb4462228-fullfile-x64-glb.exe, 333 | 2019,3,PROJ15,https://download.microsoft.com/download/7/0/5/7054DCC6-00C1-4E7F-A48F-AE51FD27F574/ubersrvprj2013-kb4462218-fullfile-x64-glb.exe, 334 | 2019,3,PROJ15,https://download.microsoft.com/download/7/0/5/7054DCC6-00C1-4E7F-A48F-AE51FD27F574/ubersrvprj_2.cab, 335 | 2019,3,PROJ15,https://download.microsoft.com/download/7/0/5/7054DCC6-00C1-4E7F-A48F-AE51FD27F574/ubersrvprj_1.cab, 336 | 2019,3,PROJ14,https://download.microsoft.com/download/5/8/8/588D7BC6-8903-4ED2-84D1-5E5B1B3D63AA/ubersrvprj2010-kb4462227-fullfile-x64-glb.exe, 337 | 2019,2,SP19,https://download.microsoft.com/download/F/2/C/F2C3E0FD-678F-4442-BEE8-BBD8E471419D/sts2019-kb4462171-fullfile-x64-glb.exe, 338 | 2019,2,SP19,https://download.microsoft.com/download/D/6/A/D6AF937F-1C36-4465-AA70-B06107E07910/wssloc2019-kb4462170-fullfile-x64-glb.exe, 339 | 2019,2,SP16,https://download.microsoft.com/download/5/B/4/5B43F404-A269-4B2C-83D5-AC64F011A2E5/sts2016-kb4462155-fullfile-x64-glb.exe, 340 | 2019,2,SP15,https://download.microsoft.com/download/B/4/4/B445EE77-784B-43E5-84F2-95799D4D9E24/ubersts2013-kb4462150-fullfile-x64-glb.exe, 341 | 2019,2,SP15,https://download.microsoft.com/download/6/8/B/68BC17C0-CEEE-4597-8232-802DCE9454D9/ubersrv2013-kb4462152-fullfile-x64-glb.exe, 342 | 2019,2,SP15,https://download.microsoft.com/download/6/8/B/68BC17C0-CEEE-4597-8232-802DCE9454D9/ubersrv_2.cab, 343 | 2019,2,SP15,https://download.microsoft.com/download/6/8/B/68BC17C0-CEEE-4597-8232-802DCE9454D9/ubersrv_1.cab, 344 | 2019,2,SP14,https://download.microsoft.com/download/E/F/2/EF220D22-CCB7-458C-B91A-217B73085A8F/ubersrv2010-kb4462181-fullfile-x64-glb.exe, 345 | 2019,2,SP14,https://download.microsoft.com/download/3/0/2/302363C0-7278-41F3-AE06-92E9F0EB0DBC/wssloc2010-kb4461630-fullfile-x64-glb.exe, 346 | 2019,2,PROJ15,https://download.microsoft.com/download/4/E/3/4E314B76-045D-4A14-AD7C-DDE2597E1861/ubersrvprj2013-kb4462151-fullfile-x64-glb.exe, 347 | 2019,2,PROJ15,https://download.microsoft.com/download/4/E/3/4E314B76-045D-4A14-AD7C-DDE2597E1861/ubersrvprj_2.cab, 348 | 2019,2,PROJ15,https://download.microsoft.com/download/4/E/3/4E314B76-045D-4A14-AD7C-DDE2597E1861/ubersrvprj_1.cab, 349 | 2019,2,PROJ14,https://download.microsoft.com/download/8/8/0/880F4DCD-1C1C-430A-AB6E-796BA3833EDD/ubersrvprj2010-kb4462179-fullfile-x64-glb.exe, 350 | 2019,12,SP19,https://download.microsoft.com/download/d/6/a/d6a29223-913d-4bf8-88ae-f7fa0fb951fb/wssloc2019-kb4484176-fullfile-x64-glb.exe, 351 | 2019,12,SP19,https://download.microsoft.com/download/6/7/6/67692942-1acb-4f0e-a335-b0960141937f/sts2019-kb4484177-fullfile-x64-glb.exe, 352 | 2019,12,SP16,https://download.microsoft.com/download/2/b/5/2b55cb8e-895b-4fb9-9b67-a59b7312ed10/wssloc2016-kb4484181-fullfile-x64-glb.exe, 353 | 2019,12,SP16,https://download.microsoft.com/download/1/4/a/14a5d704-4b5e-4789-bd02-d1a090334e4e/sts2016-kb4484178-fullfile-x64-glb.exe, 354 | 2019,12,SP15,https://download.microsoft.com/download/c/8/6/c867ec17-10b9-433b-9f8c-7b3932548537/ubersts2013-kb4484185-fullfile-x64-glb.exe, 355 | 2019,12,SP15,https://download.microsoft.com/download/1/8/7/1870dbfb-43c6-40c8-abe5-9f9dbd158dbf/ubersrv2013-kb4484188-fullfile-x64-glb.exe, 356 | 2019,12,SP15,https://download.microsoft.com/download/1/8/7/1870dbfb-43c6-40c8-abe5-9f9dbd158dbf/ubersrv_2.cab, 357 | 2019,12,SP15,https://download.microsoft.com/download/1/8/7/1870dbfb-43c6-40c8-abe5-9f9dbd158dbf/ubersrv_1.cab, 358 | 2019,12,SP14,https://download.microsoft.com/download/8/a/3/8a3d6571-6cee-4805-b6a1-74b50e6ae06b/ubersrv2010-kb4484195-fullfile-x64-glb.exe, 359 | 2019,12,PROJ15,https://download.microsoft.com/download/b/b/d/bbd3bca1-804e-4c4f-9610-aa9817e87403/ubersrvprj2013-kb4484187-fullfile-x64-glb.exe, 360 | 2019,12,PROJ15,https://download.microsoft.com/download/b/b/d/bbd3bca1-804e-4c4f-9610-aa9817e87403/ubersrvprj_2.cab, 361 | 2019,12,PROJ15,https://download.microsoft.com/download/b/b/d/bbd3bca1-804e-4c4f-9610-aa9817e87403/ubersrvprj_1.cab, 362 | 2019,12,PROJ14,https://download.microsoft.com/download/4/d/e/4de34a50-db8c-4f15-aca0-83d603544a5d/ubersrvprj2010-kb4484194-fullfile-x64-glb.exe, 363 | 2019,11,SP19,https://download.microsoft.com/download/7/2/5/7251b635-8289-4a7c-9992-90beb2ef2c1f/sts2019-kb4484142-fullfile-x64-glb.exe, 364 | 2019,11,SP19,https://download.microsoft.com/download/1/9/e/19ec4483-f612-4a72-bc9c-cd7fff82d4b6/wssloc2019-kb4484149-fullfile-x64-glb.exe, 365 | 2019,11,SP16,https://download.microsoft.com/download/8/3/3/833ae29f-436f-477c-bd2c-a04eb681649c/wssloc2016-kb4484147-fullfile-x64-glb.exe, 366 | 2019,11,SP16,https://download.microsoft.com/download/1/3/2/1325b92c-6941-4633-b8c3-83ab20520a9c/sts2016-kb4484143-fullfile-x64-glb.exe, 367 | 2019,11,SP15,https://download.microsoft.com/download/8/4/7/847339ba-2234-4494-920a-b6df320a3302/ubersts2013-kb4484153-fullfile-x64-glb.exe, 368 | 2019,11,SP15,https://download.microsoft.com/download/3/a/4/3a499677-e254-4f88-991c-888c2cf1b58c/ubersrv2013-kb4484155-fullfile-x64-glb.exe, 369 | 2019,11,SP15,https://download.microsoft.com/download/3/a/4/3a499677-e254-4f88-991c-888c2cf1b58c/ubersrv_2.cab, 370 | 2019,11,SP15,https://download.microsoft.com/download/3/a/4/3a499677-e254-4f88-991c-888c2cf1b58c/ubersrv_1.cab, 371 | 2019,11,SP14,https://download.microsoft.com/download/c/6/b/c6b8bd48-eab9-494a-8a39-a712c21cdda3/wssloc2010-kb4484165-fullfile-x64-glb.exe, 372 | 2019,11,SP14,https://download.microsoft.com/download/6/3/6/636eabec-fdb6-47ab-8bc0-6ba4f417a54a/ubersrv2010-kb4484162-fullfile-x64-glb.exe, 373 | 2019,11,PROJ15,https://download.microsoft.com/download/0/9/d/09d41a15-eea0-4222-b74e-743233225561/ubersrvprj2013-kb4484154-fullfile-x64-glb.exe, 374 | 2019,11,PROJ15,https://download.microsoft.com/download/0/9/d/09d41a15-eea0-4222-b74e-743233225561/ubersrvprj_2.cab, 375 | 2019,11,PROJ15,https://download.microsoft.com/download/0/9/d/09d41a15-eea0-4222-b74e-743233225561/ubersrvprj_1.cab, 376 | 2019,11,PROJ14,https://download.microsoft.com/download/b/0/0/b00aa5f4-5de9-439a-ac33-4ffa482550df/ubersrvprj2010-kb4484161-fullfile-x64-glb.exe, 377 | 2019,10,SP19,https://download.microsoft.com/download/f/8/a/f8a2abce-3501-4a38-b0fc-3d1fc7c6df21/wssloc2019-kb4484109-fullfile-x64-glb.exe, 378 | 2019,10,SP19,https://download.microsoft.com/download/5/1/e/51eb42fb-906f-4098-a99c-6ec96331615d/sts2019-kb4484110-fullfile-x64-glb.exe, 379 | 2019,10,SP16,https://download.microsoft.com/download/c/6/4/c64fb6ec-c21e-47b2-8cdf-0f35564db92b/wssloc2016-kb4484115-fullfile-x64-glb.exe, 380 | 2019,10,SP16,https://download.microsoft.com/download/4/d/f/4dffb03e-32ab-41e5-853d-8b818668b254/sts2016-kb4484111-fullfile-x64-glb.exe, 381 | 2019,10,SP15,https://download.microsoft.com/download/f/7/5/f75268a8-a928-4d38-b023-6e8569acf5e9/ubersrv2013-kb4484121-fullfile-x64-glb.exe, 382 | 2019,10,SP15,https://download.microsoft.com/download/f/7/5/f75268a8-a928-4d38-b023-6e8569acf5e9/ubersrv_2.cab, 383 | 2019,10,SP15,https://download.microsoft.com/download/f/7/5/f75268a8-a928-4d38-b023-6e8569acf5e9/ubersrv_1.cab, 384 | 2019,10,SP15,https://download.microsoft.com/download/d/4/e/d4e725a0-70f8-4e17-8010-6c176d8bf5ac/ubersts2013-kb4484118-fullfile-x64-glb.exe, 385 | 2019,10,SP14,https://download.microsoft.com/download/f/f/b/ffbd1154-33cd-48e1-a6bb-3ae22bab7d70/wssloc2010-kb4484131-fullfile-x64-glb.exe, 386 | 2019,10,SP14,https://download.microsoft.com/download/8/f/a/8fa1320f-4e8b-4824-8721-026c0efac092/ubersrv2010-kb4484129-fullfile-x64-glb.exe, 387 | 2019,10,PROJ15,https://download.microsoft.com/download/3/2/7/3271436e-0371-4b46-9048-c5cc701581e5/ubersrvprj2013-kb4484120-fullfile-x64-glb.exe, 388 | 2019,10,PROJ15,https://download.microsoft.com/download/3/2/7/3271436e-0371-4b46-9048-c5cc701581e5/ubersrvprj_2.cab, 389 | 2019,10,PROJ15,https://download.microsoft.com/download/3/2/7/3271436e-0371-4b46-9048-c5cc701581e5/ubersrvprj_1.cab, 390 | 2019,10,PROJ14,https://download.microsoft.com/download/2/5/4/254879bb-b611-4c58-aae4-8638f81ff4b7/ubersrvprj2010-kb4484128-fullfile-x64-glb.exe, 391 | 2019,1,SP19,https://download.microsoft.com/download/C/2/D/C2D826D1-A993-4A58-B3F5-E38E01EFA549/sts2019-kb4461634-fullfile-x64-glb.exe, 392 | 2019,1,SP19,https://download.microsoft.com/download/4/D/5/4D5AF893-2BE6-4221-AA6A-2756DF9EDB35/wssloc2019-kb4461514-fullfile-x64-glb.exe, 393 | 2019,1,SP16,https://download.microsoft.com/download/2/C/F/2CF697F9-E26F-4D35-864F-831CC5950FAB/sts2016-kb4461598-fullfile-x64-glb.exe, 394 | 2019,1,SP15,https://download.microsoft.com/download/E/A/A/EAAC2FFE-E7BC-473A-9399-B89C43E81D17/ubersts2013-kb4461603-fullfile-x64-glb.exe, 395 | 2019,1,SP15,https://download.microsoft.com/download/6/D/3/6D32C864-F385-4840-A618-CC86AAAB550B/ubersrv2013-kb4461605-fullfile-x64-glb.exe, 396 | 2019,1,SP15,https://download.microsoft.com/download/6/D/3/6D32C864-F385-4840-A618-CC86AAAB550B/ubersrv_2.cab, 397 | 2019,1,SP15,https://download.microsoft.com/download/6/D/3/6D32C864-F385-4840-A618-CC86AAAB550B/ubersrv_1.cab, 398 | 2019,1,SP14,https://download.microsoft.com/download/8/F/7/8F7836C9-6638-4594-973E-E6B2900292D3/ubersrv2010-kb4461622-fullfile-x64-glb.exe, 399 | 2019,1,PROJ15,https://download.microsoft.com/download/8/A/D/8ADA02B4-0B32-4C01-AEBF-53FF519B35CA/ubersrvprj2013-kb4461604-fullfile-x64-glb.exe, 400 | 2019,1,PROJ15,https://download.microsoft.com/download/8/A/D/8ADA02B4-0B32-4C01-AEBF-53FF519B35CA/ubersrvprj_2.cab, 401 | 2019,1,PROJ15,https://download.microsoft.com/download/8/A/D/8ADA02B4-0B32-4C01-AEBF-53FF519B35CA/ubersrvprj_1.cab, 402 | 2019,1,PROJ14,https://download.microsoft.com/download/5/3/E/53E80093-8D97-4382-B3A7-018BB4E491C2/ubersrvprj2010-kb4461618-fullfile-x64-glb.exe, 403 | 2018,9,SP16,https://download.microsoft.com/download/B/A/0/BA07CD33-9A5D-4C06-ADF3-BF604D6B9716/sts2016-kb4092459-fullfile-x64-glb.exe, 404 | 2018,9,SP15,https://download.microsoft.com/download/F/1/C/F1C79D9B-D52D-40F3-A11E-35A8EFD18A64/ubersts2013-kb4092474-fullfile-x64-glb.exe, 405 | 2018,9,SP15,https://download.microsoft.com/download/6/1/6/616BD018-CD14-4CE1-908C-B5EDE2446D30/ubersrv2013-kb4092476-fullfile-x64-glb.exe, 406 | 2018,9,SP15,https://download.microsoft.com/download/6/1/6/616BD018-CD14-4CE1-908C-B5EDE2446D30/ubersrv_2.cab, 407 | 2018,9,SP15,https://download.microsoft.com/download/6/1/6/616BD018-CD14-4CE1-908C-B5EDE2446D30/ubersrv_1.cab, 408 | 2018,9,SP14,https://download.microsoft.com/download/3/6/4/364980E7-5779-4DAA-918D-1468E44DF8B1/ubersrv2010-kb4227169-fullfile-x64-glb.exe, 409 | 2018,9,PROJ15,https://download.microsoft.com/download/D/8/0/D80D855C-2749-4A5B-B0D2-EE25C8AB6D68/ubersrvprj2013-kb4092475-fullfile-x64-glb.exe, 410 | 2018,9,PROJ15,https://download.microsoft.com/download/D/8/0/D80D855C-2749-4A5B-B0D2-EE25C8AB6D68/ubersrvprj_2.cab, 411 | 2018,9,PROJ15,https://download.microsoft.com/download/D/8/0/D80D855C-2749-4A5B-B0D2-EE25C8AB6D68/ubersrvprj_1.cab, 412 | 2018,9,PROJ14,https://download.microsoft.com/download/D/3/D/D3DCCC7B-023E-45F7-84C4-4E1F20B9162E/ubersrvprj2010-kb4092484-fullfile-x64-glb.exe, 413 | 2018,8,SP16,https://download.microsoft.com/download/5/E/A/5EADC4E3-A66B-4C2F-96E5-CA744ABE945E/wssloc2016-kb4022231-fullfile-x64-glb.exe, 414 | 2018,8,SP16,https://download.microsoft.com/download/4/D/5/4D51E797-35F0-4F8E-9EAF-9B6325BA45FD/sts2016-kb4032256-fullfile-x64-glb.exe, 415 | 2018,8,SP15,https://download.microsoft.com/download/A/D/F/ADFE6887-9C7F-49BD-A989-CE287E32B564/ubersts2013-kb4032244-fullfile-x64-glb.exe, 416 | 2018,8,SP15,https://download.microsoft.com/download/5/6/6/5664E5D9-B6A4-4762-B45F-44492E3C3628/ubersrv2013-kb4032247-fullfile-x64-glb.exe, 417 | 2018,8,SP15,https://download.microsoft.com/download/5/6/6/5664E5D9-B6A4-4762-B45F-44492E3C3628/ubersrv_2.cab, 418 | 2018,8,SP15,https://download.microsoft.com/download/5/6/6/5664E5D9-B6A4-4762-B45F-44492E3C3628/ubersrv_1.cab, 419 | 2018,8,SP14,https://download.microsoft.com/download/9/F/9/9F9300D9-AEEC-4201-AC5E-9C8F08968D5B/ubersrv2010-kb4032221-fullfile-x64-glb.exe, 420 | 2018,8,PROJ15,https://download.microsoft.com/download/9/4/F/94FFE1A7-3F90-4B00-A686-FEEF7AD8BDE4/ubersrvprj2013-kb4032245-fullfile-x64-glb.exe, 421 | 2018,8,PROJ15,https://download.microsoft.com/download/9/4/F/94FFE1A7-3F90-4B00-A686-FEEF7AD8BDE4/ubersrvprj_2.cab, 422 | 2018,8,PROJ15,https://download.microsoft.com/download/9/4/F/94FFE1A7-3F90-4B00-A686-FEEF7AD8BDE4/ubersrvprj_1.cab, 423 | 2018,8,PROJ14,https://download.microsoft.com/download/5/A/D/5AD22AA9-3DF9-431A-83FE-C31A7C78F40D/ubersrvprj2010-kb4092438-fullfile-x64-glb.exe, 424 | 2018,7,SP16,https://download.microsoft.com/download/2/6/5/2655418E-09E8-434D-8D07-5BA36D6FABF5/sts2016-kb4022228-fullfile-x64-glb.exe, 425 | 2018,7,SP15,https://download.microsoft.com/download/F/8/A/F8A10B02-E384-41BA-A24F-9212A7EB0B8A/ubersrv2013-kb4022241-fullfile-x64-glb.exe, 426 | 2018,7,SP15,https://download.microsoft.com/download/F/8/A/F8A10B02-E384-41BA-A24F-9212A7EB0B8A/ubersrv_2.cab, 427 | 2018,7,SP15,https://download.microsoft.com/download/F/8/A/F8A10B02-E384-41BA-A24F-9212A7EB0B8A/ubersrv_1.cab, 428 | 2018,7,SP15,https://download.microsoft.com/download/6/9/0/690B887D-E1B4-446C-B8E4-71DECA97D235/ubersts2013-kb4022239-fullfile-x64-glb.exe, 429 | 2018,7,PROJ15,https://download.microsoft.com/download/9/C/2/9C2868FB-A1A0-4C0E-A4A7-BC8875045CF5/ubersrvprj2013-kb4022240-fullfile-x64-glb.exe, 430 | 2018,7,PROJ15,https://download.microsoft.com/download/9/C/2/9C2868FB-A1A0-4C0E-A4A7-BC8875045CF5/ubersrvprj_2.cab, 431 | 2018,7,PROJ15,https://download.microsoft.com/download/9/C/2/9C2868FB-A1A0-4C0E-A4A7-BC8875045CF5/ubersrvprj_1.cab, 432 | 2018,7,PROJ14,https://download.microsoft.com/download/9/1/2/912EC757-51FB-47F7-8ED4-9B3BAF6D3278/ubersrvprj2010-kb4032219-fullfile-x64-glb.exe, 433 | 2018,6,SP16,https://download.microsoft.com/download/B/2/7/B27FA473-F0E4-4514-9522-F9E19D84C7B9/sts2016-kb4022173-fullfile-x64-glb.exe, 434 | 2018,6,SP16,https://download.microsoft.com/download/9/8/2/982D4441-2963-4668-800D-250AD598D48E/wssloc2016-kb4022178-fullfile-x64-glb.exe, 435 | 2018,6,SP15,https://download.microsoft.com/download/4/C/D/4CD2FF3A-9C01-4402-AE22-78CA45BE1EBC/ubersts2013-kb4022184-fullfile-x64-glb.exe, 436 | 2018,6,SP15,https://download.microsoft.com/download/2/F/3/2F326BF9-BAD3-4528-BF65-FDC02B0501A5/ubersrv2013-kb4022187-fullfile-x64-glb.exe, 437 | 2018,6,SP15,https://download.microsoft.com/download/2/F/3/2F326BF9-BAD3-4528-BF65-FDC02B0501A5/ubersrv_2.cab, 438 | 2018,6,SP15,https://download.microsoft.com/download/2/F/3/2F326BF9-BAD3-4528-BF65-FDC02B0501A5/ubersrv_1.cab, 439 | 2018,6,SP14,https://download.microsoft.com/download/4/C/A/4CAD5471-365E-42A4-8D48-FA82855585EA/ubersrv2010-kb4022204-fullfile-x64-glb.exe, 440 | 2018,6,PROJ15,https://download.microsoft.com/download/F/A/C/FACA5258-9B86-43A7-835B-530DDDC91A52/ubersrvprj2013-kb4022185-fullfile-x64-glb.exe, 441 | 2018,6,PROJ15,https://download.microsoft.com/download/F/A/C/FACA5258-9B86-43A7-835B-530DDDC91A52/ubersrvprj_2.cab, 442 | 2018,6,PROJ15,https://download.microsoft.com/download/F/A/C/FACA5258-9B86-43A7-835B-530DDDC91A52/ubersrvprj_1.cab, 443 | 2018,6,PROJ14,https://download.microsoft.com/download/4/E/7/4E70E51A-CE1F-4160-86C6-5F8F48D15B75/ubersrvprj2010-kb4022201-fullfile-x64-glb.exe, 444 | 2018,5,SP16,https://download.microsoft.com/download/7/7/0/77007B0A-D0F4-4215-A8CC-BE9C3A79DF3A/sts2016-kb4018381-fullfile-x64-glb.exe, 445 | 2018,5,SP16,https://download.microsoft.com/download/1/2/C/12CFD45C-2217-41B1-9B55-9CED742A4A42/wssloc2016-kb4018386-fullfile-x64-glb.exe, 446 | 2018,5,SP15,https://download.microsoft.com/download/6/6/F/66FC02A7-07EB-4EDA-B94A-CCC7D2C47A6D/ubersrv2013-kb4018397-fullfile-x64-glb.exe, 447 | 2018,5,SP15,https://download.microsoft.com/download/6/6/F/66FC02A7-07EB-4EDA-B94A-CCC7D2C47A6D/ubersrv_2.cab, 448 | 2018,5,SP15,https://download.microsoft.com/download/6/6/F/66FC02A7-07EB-4EDA-B94A-CCC7D2C47A6D/ubersrv_1.cab, 449 | 2018,5,SP15,https://download.microsoft.com/download/5/0/2/50212FE9-D625-4FFF-AC0D-3D80C1FCB98D/ubersts2013-kb4018394-fullfile-x64-glb.exe, 450 | 2018,5,SP14,https://download.microsoft.com/download/C/F/3/CF30D1D6-209C-4EB1-9C96-E0211C2FA3BD/ubersrv2010-kb4022143-fullfile-x64-glb.exe, 451 | 2018,5,PROJ15,https://download.microsoft.com/download/8/A/D/8ADB802F-2CE0-4DA6-8783-14CF690A1289/ubersrvprj2013-kb4018395-fullfile-x64-glb.exe, 452 | 2018,5,PROJ15,https://download.microsoft.com/download/8/A/D/8ADB802F-2CE0-4DA6-8783-14CF690A1289/ubersrvprj_2.cab, 453 | 2018,5,PROJ15,https://download.microsoft.com/download/8/A/D/8ADB802F-2CE0-4DA6-8783-14CF690A1289/ubersrvprj_1.cab, 454 | 2018,5,PROJ14,https://download.microsoft.com/download/1/C/4/1C4F98EA-8FD1-4607-AE10-2531A6F4542A/ubersrvprj2010-kb4022140-fullfile-x64-glb.exe, 455 | 2018,4,SP16,https://download.microsoft.com/download/9/F/6/9F60F822-3A02-4F55-88D7-0B7850226452/sts2016-kb4018336-fullfile-x64-glb.exe, 456 | 2018,4,SP16,https://download.microsoft.com/download/0/2/0/02023021-4AE6-4B45-A3D7-45135C5ED71F/wssloc2016-kb4018340-fullfile-x64-glb.exe, 457 | 2018,4,SP15,https://download.microsoft.com/download/A/1/B/A1BD5740-9393-401B-86DA-652FB11D3554/ubersts2013-kb4018345-fullfile-x64-glb.exe, 458 | 2018,4,SP15,https://download.microsoft.com/download/9/5/9/95948175-E5C7-483D-86E9-ECF5648D138D/ubersrv2013-kb4018348-fullfile-x64-glb.exe, 459 | 2018,4,SP15,https://download.microsoft.com/download/9/5/9/95948175-E5C7-483D-86E9-ECF5648D138D/ubersrv_2.cab, 460 | 2018,4,SP15,https://download.microsoft.com/download/9/5/9/95948175-E5C7-483D-86E9-ECF5648D138D/ubersrv_1.cab, 461 | 2018,4,SP14,https://download.microsoft.com/download/C/8/B/C8B316B3-1C75-430A-83A6-69DE88CF5141/ubersrv2010-kb4018361-fullfile-x64-glb.exe, 462 | 2018,4,PROJ15,https://download.microsoft.com/download/8/C/6/8C6A2463-5223-4ADF-BD4E-4F09DB0234C8/ubersrvprj2013-kb4018346-fullfile-x64-glb.exe, 463 | 2018,4,PROJ15,https://download.microsoft.com/download/8/C/6/8C6A2463-5223-4ADF-BD4E-4F09DB0234C8/ubersrvprj_2.cab, 464 | 2018,4,PROJ15,https://download.microsoft.com/download/8/C/6/8C6A2463-5223-4ADF-BD4E-4F09DB0234C8/ubersrvprj_1.cab, 465 | 2018,4,PROJ14,https://download.microsoft.com/download/3/1/3/3139A1DA-2133-485E-A90B-EE2E97324814/ubersrvprj2010-kb4018358-fullfile-x64-glb.exe, 466 | 2018,3,SP16,https://download.microsoft.com/download/A/4/7/A47A4446-D028-436C-9764-700C655F7D69/wssloc2016-kb4011687-fullfile-x64-glb.exe, 467 | 2018,3,SP16,https://download.microsoft.com/download/6/4/3/643C13E2-7D2E-450F-B611-AC0EC45C872E/sts2016-kb4018293-fullfile-x64-glb.exe, 468 | 2018,3,SP15,https://download.microsoft.com/download/E/C/F/ECF5572E-366D-4D1B-9597-BD94CD4E8BBD/ubersrv2013-kb4018302-fullfile-x64-glb.exe, 469 | 2018,3,SP15,https://download.microsoft.com/download/E/C/F/ECF5572E-366D-4D1B-9597-BD94CD4E8BBD/ubersrv_2.cab, 470 | 2018,3,SP15,https://download.microsoft.com/download/E/C/F/ECF5572E-366D-4D1B-9597-BD94CD4E8BBD/ubersrv_1.cab, 471 | 2018,3,SP15,https://download.microsoft.com/download/8/A/C/8AC77B65-17E2-4400-A324-BCEAA5BC40DA/ubersts2013-kb4018299-fullfile-x64-glb.exe, 472 | 2018,3,SP14,https://download.microsoft.com/download/9/2/5/9250BE44-BD05-48F0-A530-B25BC5439342/ubersrv2010-kb4011710-fullfile-x64-glb.exe, 473 | 2018,3,PROJ15,https://download.microsoft.com/download/9/0/A/90A4B1A8-BF5C-4D54-A380-D868573B96A9/ubersrvprj2013-kb4018301-fullfile-x64-glb.exe, 474 | 2018,3,PROJ15,https://download.microsoft.com/download/9/0/A/90A4B1A8-BF5C-4D54-A380-D868573B96A9/ubersrvprj_2.cab, 475 | 2018,3,PROJ15,https://download.microsoft.com/download/9/0/A/90A4B1A8-BF5C-4D54-A380-D868573B96A9/ubersrvprj_1.cab, 476 | 2018,2,SP16,https://download.microsoft.com/download/C/5/0/C5031891-92C2-48DF-8A95-FF6CEF6F66E5/sts2016-kb4011680-fullfile-x64-glb.exe, 477 | 2018,2,SP15,https://download.microsoft.com/download/F/7/5/F752CC76-FD01-4CA1-803E-23B9975CBDD2/ubersrv2013-kb4011696-fullfile-x64-glb.exe, 478 | 2018,2,SP15,https://download.microsoft.com/download/F/7/5/F752CC76-FD01-4CA1-803E-23B9975CBDD2/ubersrv_2.cab, 479 | 2018,2,SP15,https://download.microsoft.com/download/F/7/5/F752CC76-FD01-4CA1-803E-23B9975CBDD2/ubersrv_1.cab, 480 | 2018,2,SP15,https://download.microsoft.com/download/3/2/F/32FBDD74-7355-4C61-88D3-F4C772E5EAD3/ubersts2013-kb4011693-fullfile-x64-glb.exe, 481 | 2018,2,PROJ15,https://download.microsoft.com/download/9/E/E/9EE6402E-F5DF-49A3-A70F-0F05F762D66D/ubersrvprj2013-kb4011694-fullfile-x64-glb.exe, 482 | 2018,2,PROJ15,https://download.microsoft.com/download/9/E/E/9EE6402E-F5DF-49A3-A70F-0F05F762D66D/ubersrvprj_2.cab, 483 | 2018,2,PROJ15,https://download.microsoft.com/download/9/E/E/9EE6402E-F5DF-49A3-A70F-0F05F762D66D/ubersrvprj_1.cab, 484 | 2018,12,SP19,https://download.microsoft.com/download/4/F/6/4F6B5DBE-12C4-4263-8D20-EA8543AC9C91/sts2019-kb4461548-fullfile-x64-glb.exe, 485 | 2018,12,SP16,https://download.microsoft.com/download/E/8/8/E883B2B2-FD2E-4BFB-AF56-8A9B24A20CF4/sts2016-kb4461541-fullfile-x64-glb.exe, 486 | 2018,12,SP15,https://download.microsoft.com/download/2/D/6/2D6DE3E0-8262-40BC-82C2-BB514037BB23/ubersts2013-kb4461552-fullfile-x64-glb.exe, 487 | 2018,12,SP15,https://download.microsoft.com/download/0/7/D/07DB09E4-9B90-4179-9CEC-E7F37D6C725E/ubersrv2013-kb4461555-fullfile-x64-glb.exe, 488 | 2018,12,SP15,https://download.microsoft.com/download/0/7/D/07DB09E4-9B90-4179-9CEC-E7F37D6C725E/ubersrv_2.cab, 489 | 2018,12,SP15,https://download.microsoft.com/download/0/7/D/07DB09E4-9B90-4179-9CEC-E7F37D6C725E/ubersrv_1.cab, 490 | 2018,12,SP14,https://download.microsoft.com/download/E/8/2/E827268C-5D39-4501-A24C-C249A2D6DD82/ubersrv2010-kb4461575-fullfile-x64-glb.exe, 491 | 2018,12,SP14,https://download.microsoft.com/download/3/A/3/3A3FEB98-5730-4613-94B7-11CEA2151B2D/wssloc2010-kb4461580-fullfile-x64-glb.exe, 492 | 2018,12,PROJ15,https://download.microsoft.com/download/B/A/E/BAE1C057-CBA2-4065-8E7A-E3122A624DB3/ubersrvprj2013-kb4461553-fullfile-x64-glb.exe, 493 | 2018,12,PROJ15,https://download.microsoft.com/download/B/A/E/BAE1C057-CBA2-4065-8E7A-E3122A624DB3/ubersrvprj_2.cab, 494 | 2018,12,PROJ15,https://download.microsoft.com/download/B/A/E/BAE1C057-CBA2-4065-8E7A-E3122A624DB3/ubersrvprj_1.cab, 495 | 2018,12,PROJ14,https://download.microsoft.com/download/3/8/7/387D0EBC-7FA9-42EC-9319-701120A9C0C9/ubersrvprj2010-kb4461572-fullfile-x64-glb.exe, 496 | 2018,11,SP19,https://download.microsoft.com/download/E/1/C/E1CD03D2-DA33-47C9-B2DC-51BEC6EEFCD2/sts2019-kb4461513-fullfile-x64-glb.exe, 497 | 2018,11,SP16,https://download.microsoft.com/download/4/7/C/47C41202-5616-4A85-AB9B-9700B255820F/sts2016-kb4461501-fullfile-x64-glb.exe, 498 | 2018,11,SP15,https://download.microsoft.com/download/8/2/8/828ED5EA-A40C-4379-B763-3E5A37CE6479/ubersts2013-kb4461508-fullfile-x64-glb.exe, 499 | 2018,11,SP15,https://download.microsoft.com/download/3/F/E/3FE8DE2D-ADD9-42A3-BD8F-531E01A7222B/ubersrv2013-kb4461510-fullfile-x64-glb.exe, 500 | 2018,11,SP15,https://download.microsoft.com/download/3/F/E/3FE8DE2D-ADD9-42A3-BD8F-531E01A7222B/ubersrv_2.cab, 501 | 2018,11,SP15,https://download.microsoft.com/download/3/F/E/3FE8DE2D-ADD9-42A3-BD8F-531E01A7222B/ubersrv_1.cab, 502 | 2018,11,SP14,https://download.microsoft.com/download/D/8/8/D883013C-E6D3-48B5-A822-AC8481CA48B4/ubersrv2010-kb4461528-fullfile-x64-glb.exe, 503 | 2018,11,SP14,https://download.microsoft.com/download/4/4/5/44521F34-6308-4DDB-94C9-70758C1F4CD9/wssloc2010-kb4011713-fullfile-x64-glb.exe, 504 | 2018,11,PROJ15,https://download.microsoft.com/download/F/9/2/F92D19E3-3481-4A68-8D65-7B03796141FC/ubersrvprj2013-kb4461509-fullfile-x64-glb.exe, 505 | 2018,11,PROJ15,https://download.microsoft.com/download/F/9/2/F92D19E3-3481-4A68-8D65-7B03796141FC/ubersrvprj_2.cab, 506 | 2018,11,PROJ15,https://download.microsoft.com/download/F/9/2/F92D19E3-3481-4A68-8D65-7B03796141FC/ubersrvprj_1.cab, 507 | 2018,11,PROJ14,https://download.microsoft.com/download/4/6/7/46793A14-4BA9-430C-A2E3-67693C03525B/ubersrvprj2010-kb4461525-fullfile-x64-glb.exe, 508 | 2018,10,SP16,https://download.microsoft.com/download/F/6/6/F6678C2C-E7C7-48DA-BF1F-9D5EB41C03E0/sts2016-kb4461447-fullfile-x64-glb.exe, 509 | 2018,10,SP16,https://download.microsoft.com/download/C/5/A/C5A5728E-BBA7-4FFB-B81E-0C6DB0D9CB4D/wssloc2016-kb4092463-fullfile-x64-glb.exe, 510 | 2018,10,SP15,https://download.microsoft.com/download/3/0/D/30D2A93A-B88D-4507-B71F-6A6A2D1ABCFF/ubersrv2013-kb4461458-fullfile-x64-glb.exe, 511 | 2018,10,SP15,https://download.microsoft.com/download/3/0/D/30D2A93A-B88D-4507-B71F-6A6A2D1ABCFF/ubersrv_2.cab, 512 | 2018,10,SP15,https://download.microsoft.com/download/3/0/D/30D2A93A-B88D-4507-B71F-6A6A2D1ABCFF/ubersrv_1.cab, 513 | 2018,10,SP15,https://download.microsoft.com/download/1/1/4/114D9F61-2658-4E38-B194-775897315613/ubersts2013-kb4461455-fullfile-x64-glb.exe, 514 | 2018,10,SP14,https://download.microsoft.com/download/F/B/2/FB2064B4-5977-4494-8AE8-27A077E738B4/ubersrv2010-kb4461464-fullfile-x64-glb.exe, 515 | 2018,10,PROJ15,https://download.microsoft.com/download/9/2/B/92B033F8-3EBA-4E19-872E-1BBDF39E8575/ubersrvprj2013-kb4461456-fullfile-x64-glb.exe, 516 | 2018,10,PROJ15,https://download.microsoft.com/download/9/2/B/92B033F8-3EBA-4E19-872E-1BBDF39E8575/ubersrvprj_2.cab, 517 | 2018,10,PROJ15,https://download.microsoft.com/download/9/2/B/92B033F8-3EBA-4E19-872E-1BBDF39E8575/ubersrvprj_1.cab, 518 | 2018,10,PROJ14,https://download.microsoft.com/download/6/E/8/6E8A1CFD-0CC8-4AB5-A04E-21E36C31C9E5/ubersrvprj2010-kb4461463-fullfile-x64-glb.exe, 519 | 2018,1,SP16,https://download.microsoft.com/download/A/8/6/A8676455-B2DC-4E01-B853-2D12F754747F/sts2016-kb4011642-fullfile-x64-glb.exe, 520 | 2018,1,SP16,https://download.microsoft.com/download/2/2/4/224F4887-5A9C-449B-A1CD-2F27297E3F5E/wssloc2016-kb4011645-fullfile-x64-glb.exe, 521 | 2018,1,SP15,https://download.microsoft.com/download/C/0/3/C0345FA5-9A95-430A-A698-0C585CFB22BE/ubersts2013-kb4011649-fullfile-x64-glb.exe, 522 | 2018,1,SP15,https://download.microsoft.com/download/8/2/6/82604701-1983-4A8B-AEA2-EE3907FDB7CE/ubersrv2013-kb4011652-fullfile-x64-glb.exe, 523 | 2018,1,SP15,https://download.microsoft.com/download/8/2/6/82604701-1983-4A8B-AEA2-EE3907FDB7CE/ubersrv_2.cab, 524 | 2018,1,SP15,https://download.microsoft.com/download/8/2/6/82604701-1983-4A8B-AEA2-EE3907FDB7CE/ubersrv_1.cab, 525 | 2018,1,PROJ15,https://download.microsoft.com/download/0/4/6/0462BD95-9021-4C02-B931-33B45FE56C90/ubersrvprj2013-kb4011650-fullfile-x64-glb.exe, 526 | 2018,1,PROJ15,https://download.microsoft.com/download/0/4/6/0462BD95-9021-4C02-B931-33B45FE56C90/ubersrvprj_2.cab, 527 | 2018,1,PROJ15,https://download.microsoft.com/download/0/4/6/0462BD95-9021-4C02-B931-33B45FE56C90/ubersrvprj_1.cab, 528 | 2017,9,SP16,https://download.microsoft.com/download/8/7/D/87D35F42-B3FB-4A54-A708-8A825010D809/wssloc2016-kb4011112-fullfile-x64-glb.exe, 529 | 2017,9,SP16,https://download.microsoft.com/download/1/D/4/1D47CBEE-9B6E-467D-9090-E99CC3B5954F/sts2016-kb4011127-fullfile-x64-glb.exe, 530 | 2017,9,SP15,https://download.microsoft.com/download/C/B/A/CBA12E5A-ADDF-4D03-97AD-F8215D8C2A5F/ubersts2013-kb4011132-fullfile-x64-glb.exe, 531 | 2017,9,SP15,https://download.microsoft.com/download/5/A/A/5AA55E6A-78DD-4194-AC86-9913E21BB4A2/ubersrv2013-kb4011116-fullfile-x64-glb.exe, 532 | 2017,9,SP15,https://download.microsoft.com/download/5/A/A/5AA55E6A-78DD-4194-AC86-9913E21BB4A2/ubersrv_2.cab, 533 | 2017,9,SP15,https://download.microsoft.com/download/5/A/A/5AA55E6A-78DD-4194-AC86-9913E21BB4A2/ubersrv_1.cab, 534 | 2017,9,PROJ15,https://download.microsoft.com/download/4/1/3/41341693-EF5F-4A13-868F-F8E09326409B/ubersrvprj2013-kb4011115-fullfile-x64-glb.exe, 535 | 2017,9,PROJ15,https://download.microsoft.com/download/4/1/3/41341693-EF5F-4A13-868F-F8E09326409B/ubersrvprj_2.cab, 536 | 2017,9,PROJ15,https://download.microsoft.com/download/4/1/3/41341693-EF5F-4A13-868F-F8E09326409B/ubersrvprj_1.cab, 537 | 2017,9,PROJ14,https://download.microsoft.com/download/7/5/3/753204F0-8466-4EC8-9BED-49BB20ACC281/ubersrvprj2010-kb4011057-fullfile-x64-glb.exe, 538 | 2017,8,SP16,https://download.microsoft.com/download/5/A/D/5AD38E0C-641A-44BA-AFFC-8E65D69A2C93/sts2016-kb4011049-fullfile-x64-glb.exe, 539 | 2017,8,SP16,https://download.microsoft.com/download/2/C/0/2C0D85B0-158F-459B-8807-AB77D8BE0923/wssloc2016-kb4011053-fullfile-x64-glb.exe, 540 | 2017,8,SP15,https://download.microsoft.com/download/5/C/8/5C8CE634-282C-45D6-AB9C-98E8C494859F/ubersrv2013-kb4011076-fullfile-x64-glb.exe, 541 | 2017,8,SP15,https://download.microsoft.com/download/5/C/8/5C8CE634-282C-45D6-AB9C-98E8C494859F/ubersrv_2.cab, 542 | 2017,8,SP15,https://download.microsoft.com/download/5/C/8/5C8CE634-282C-45D6-AB9C-98E8C494859F/ubersrv_1.cab, 543 | 2017,8,SP15,https://download.microsoft.com/download/5/A/9/5A9800DB-3DC4-4CD0-BA30-55D3089C3216/ubersts2013-kb4011073-fullfile-x64-glb.exe, 544 | 2017,8,PROJ15,https://download.microsoft.com/download/5/3/1/53182669-5B86-4B11-BE3B-D91E513C4B31/ubersrvprj2013-kb4011074-fullfile-x64-glb.exe, 545 | 2017,8,PROJ15,https://download.microsoft.com/download/5/3/1/53182669-5B86-4B11-BE3B-D91E513C4B31/ubersrvprj_2.cab, 546 | 2017,8,PROJ15,https://download.microsoft.com/download/5/3/1/53182669-5B86-4B11-BE3B-D91E513C4B31/ubersrvprj_1.cab, 547 | 2017,8,PROJ14,https://download.microsoft.com/download/1/6/9/16954FF9-661B-466F-9F8B-109563A98406/ubersrvprj2010-kb2956055-fullfile-x64-glb.exe, 548 | 2017,7,SP16,https://download.microsoft.com/download/2/A/E/2AED8CD5-193F-4526-BD30-D43EF77A729B/wssloc2016-kb3213543-fullfile-x64-glb.exe, 549 | 2017,7,SP16,https://download.microsoft.com/download/0/A/1/0A142E69-2B5D-4E49-90D3-8A6E7CD2F2B5/sts2016-kb3213544-fullfile-x64-glb.exe, 550 | 2017,7,SP15,https://download.microsoft.com/download/F/1/3/F135EC94-D80F-4FD5-AEC5-57000F9E000E/ubersts2013-kb3213563-fullfile-x64-glb.exe, 551 | 2017,7,SP15,https://download.microsoft.com/download/5/0/B/50B90920-B359-4EA7-87AB-E211668A94B2/ubersrv2013-kb3213569-fullfile-x64-glb.exe, 552 | 2017,7,SP15,https://download.microsoft.com/download/5/0/B/50B90920-B359-4EA7-87AB-E211668A94B2/ubersrv_2.cab, 553 | 2017,7,SP15,https://download.microsoft.com/download/5/0/B/50B90920-B359-4EA7-87AB-E211668A94B2/ubersrv_1.cab, 554 | 2017,7,PROJ15,https://download.microsoft.com/download/8/4/B/84B3366C-413B-433B-92A3-B2C410A75D7C/ubersrvprj2013-kb3213566-fullfile-x64-glb.exe, 555 | 2017,7,PROJ15,https://download.microsoft.com/download/8/4/B/84B3366C-413B-433B-92A3-B2C410A75D7C/ubersrvprj_2.cab, 556 | 2017,7,PROJ15,https://download.microsoft.com/download/8/4/B/84B3366C-413B-433B-92A3-B2C410A75D7C/ubersrvprj_1.cab, 557 | 2017,7,PROJ14,https://download.microsoft.com/download/6/7/0/670B0A7A-3670-4071-826B-4D7D56283734/ubersrvprj2010-kb3213629-fullfile-x64-glb.exe, 558 | 2017,6,SP16,https://download.microsoft.com/download/E/E/4/EE4C0711-C9C5-48FF-8DCF-9FCC151A1125/sts2016-kb3203432-fullfile-x64-glb.exe, 559 | 2017,6,SP16,https://download.microsoft.com/download/2/5/9/259A2087-FF9C-434C-8622-DE17DDDC632D/wssloc2016-kb3203433-fullfile-x64-glb.exe, 560 | 2017,6,SP15,https://download.microsoft.com/download/9/1/5/91550108-FF15-4A11-9353-931D4304F077/ubersrv2013-kb3203430-fullfile-x64-glb.exe, 561 | 2017,6,SP15,https://download.microsoft.com/download/9/1/5/91550108-FF15-4A11-9353-931D4304F077/ubersrv_2.cab, 562 | 2017,6,SP15,https://download.microsoft.com/download/9/1/5/91550108-FF15-4A11-9353-931D4304F077/ubersrv_1.cab, 563 | 2017,6,SP15,https://download.microsoft.com/download/2/F/E/2FE0DD0C-EDFF-4F09-AA0C-187D7605DB4E/ubersts2013-kb3203428-fullfile-x64-glb.exe, 564 | 2017,6,PROJ15,https://download.microsoft.com/download/F/7/A/F7A09DD7-4279-48E6-9875-B60232017D2D/ubersrvprj2013-kb3203429-fullfile-x64-glb.exe, 565 | 2017,6,PROJ15,https://download.microsoft.com/download/F/7/A/F7A09DD7-4279-48E6-9875-B60232017D2D/ubersrvprj_2.cab, 566 | 2017,6,PROJ15,https://download.microsoft.com/download/F/7/A/F7A09DD7-4279-48E6-9875-B60232017D2D/ubersrvprj_1.cab, 567 | 2017,6,PROJ14,https://download.microsoft.com/download/5/5/4/5546E8F3-ED67-44AE-B139-70C0D6DAC6C6/ubersrvprj2010-kb3191903-fullfile-x64-glb.exe, 568 | 2017,5,SP16,https://download.microsoft.com/download/B/D/3/BD3DAAF6-72E5-4D60-858A-F5F84D5830A9/sts2016-kb3191880-fullfile-x64-glb.exe, 569 | 2017,5,SP16,https://download.microsoft.com/download/0/6/A/06AE142B-F60D-4B06-8242-03D1C2A2A885/wssloc2016-kb3191884-fullfile-x64-glb.exe, 570 | 2017,5,SP15,https://download.microsoft.com/download/1/7/C/17CDBC5E-7A02-4E24-8AE6-209AF7776B2B/ubersrv2013-kb3191913-fullfile-x64-glb.exe, 571 | 2017,5,SP15,https://download.microsoft.com/download/1/7/C/17CDBC5E-7A02-4E24-8AE6-209AF7776B2B/ubersrv_2.cab, 572 | 2017,5,SP15,https://download.microsoft.com/download/1/7/C/17CDBC5E-7A02-4E24-8AE6-209AF7776B2B/ubersrv_1.cab, 573 | 2017,4,SP16,https://download.microsoft.com/download/B/D/8/BD8DA0BE-015C-445D-AC40-1F4494EF1703/wssloc2016-kb3178721-fullfile-x64-glb.exe, 574 | 2017,4,SP16,https://download.microsoft.com/download/A/5/E/A5E25221-6919-490A-B2C4-45D2DCAF349C/sts2016-kb3178718-fullfile-x64-glb.exe, 575 | 2017,4,PROJ15,https://download.microsoft.com/download/F/3/A/F3A3C71C-ABC9-4F06-9E4F-A918E4EAEA85/ubersrvprj2013-kb3178728-fullfile-x64-glb.exe, 576 | 2017,4,PROJ15,https://download.microsoft.com/download/F/3/A/F3A3C71C-ABC9-4F06-9E4F-A918E4EAEA85/ubersrvprj_2.cab, 577 | 2017,4,PROJ15,https://download.microsoft.com/download/F/3/A/F3A3C71C-ABC9-4F06-9E4F-A918E4EAEA85/ubersrvprj_1.cab, 578 | 2017,4,PROJ14,https://download.microsoft.com/download/9/1/7/91759C98-8908-429F-A1B3-0A91B31FCBFC/ubersrvprj2010-kb3191842-fullfile-x64-glb.exe, 579 | 2017,3,PROJ15,https://download.microsoft.com/download/F/0/D/F0DAFD1E-978F-44FA-B1B0-CDC62CB74979/ubersrvprj2013-kb3172462-fullfile-x64-glb.exe, 580 | 2017,3,PROJ15,https://download.microsoft.com/download/F/0/D/F0DAFD1E-978F-44FA-B1B0-CDC62CB74979/ubersrvprj_2.cab, 581 | 2017,3,PROJ15,https://download.microsoft.com/download/F/0/D/F0DAFD1E-978F-44FA-B1B0-CDC62CB74979/ubersrvprj_1.cab, 582 | 2017,3,PROJ14,https://download.microsoft.com/download/3/C/B/3CB46620-71AD-4DB7-B7A4-A07608BD1031/ubersrvprj2010-kb3141541-fullfile-x64-glb.exe, 583 | 2017,12,SP16,https://download.microsoft.com/download/7/4/A/74A1E48F-0B66-4383-AD6E-0BC6DBD38DD5/wssloc2016-kb4011578-fullfile-x64-glb.exe, 584 | 2017,12,SP16,https://download.microsoft.com/download/6/3/E/63E94C0D-9D70-4213-B1D8-1F2FF70477B6/sts2016-kb4011576-fullfile-x64-glb.exe, 585 | 2017,12,SP15,https://download.microsoft.com/download/F/C/4/FC4A6C78-B4AB-41D9-863D-027B3992D53F/ubersrv2013-kb4011593-fullfile-x64-glb.exe, 586 | 2017,12,SP15,https://download.microsoft.com/download/F/C/4/FC4A6C78-B4AB-41D9-863D-027B3992D53F/ubersrv_2.cab, 587 | 2017,12,SP15,https://download.microsoft.com/download/F/C/4/FC4A6C78-B4AB-41D9-863D-027B3992D53F/ubersrv_1.cab, 588 | 2017,12,SP15,https://download.microsoft.com/download/6/8/E/68ECE04B-5350-43E2-A125-33E753444A1B/ubersts2013-kb4011588-fullfile-x64-glb.exe, 589 | 2017,12,PROJ15,https://download.microsoft.com/download/F/4/C/F4C4AFA5-8A53-44DF-98C9-B93AF10EB927/ubersrvprj2013-kb4011589-fullfile-x64-glb.exe, 590 | 2017,12,PROJ15,https://download.microsoft.com/download/F/4/C/F4C4AFA5-8A53-44DF-98C9-B93AF10EB927/ubersrvprj_2.cab, 591 | 2017,12,PROJ15,https://download.microsoft.com/download/F/4/C/F4C4AFA5-8A53-44DF-98C9-B93AF10EB927/ubersrvprj_1.cab, 592 | 2017,11,SP16,https://download.microsoft.com/download/E/9/F/E9F76AFA-FE76-4D39-BA64-1C7AEB097726/wssloc2016-kb4011243-fullfile-x64-glb.exe, 593 | 2017,11,SP16,https://download.microsoft.com/download/1/7/F/17FC4E96-01D9-4995-9816-8B600F7BAA77/sts2016-kb4011244-fullfile-x64-glb.exe, 594 | 2017,11,SP15,https://download.microsoft.com/download/C/D/E/CDEC95BA-7CAB-4180-B852-A23F4FAB619B/ubersts2013-kb4011248-fullfile-x64-glb.exe, 595 | 2017,11,SP15,https://download.microsoft.com/download/5/9/7/597873AC-57AA-4DAC-8B34-E36E37175676/ubersrv2013-kb4011251-fullfile-x64-glb.exe, 596 | 2017,11,SP15,https://download.microsoft.com/download/5/9/7/597873AC-57AA-4DAC-8B34-E36E37175676/ubersrv_2.cab, 597 | 2017,11,SP15,https://download.microsoft.com/download/5/9/7/597873AC-57AA-4DAC-8B34-E36E37175676/ubersrv_1.cab, 598 | 2017,11,SP14,https://download.microsoft.com/download/2/B/2/2B2D1B45-FE7E-4F5F-A6A0-4940946D6A8A/ubersrv2010-kb4011272-fullfile-x64-glb.exe, 599 | 2017,11,PROJ15,https://download.microsoft.com/download/C/E/D/CEDFC719-E18B-42F0-8506-C02ADCD954CC/ubersrvprj2013-kb4011249-fullfile-x64-glb.exe, 600 | 2017,11,PROJ15,https://download.microsoft.com/download/C/E/D/CEDFC719-E18B-42F0-8506-C02ADCD954CC/ubersrvprj_2.cab, 601 | 2017,11,PROJ15,https://download.microsoft.com/download/C/E/D/CEDFC719-E18B-42F0-8506-C02ADCD954CC/ubersrvprj_1.cab, 602 | 2017,11,PROJ14,https://download.microsoft.com/download/3/1/1/311603BD-D420-4C99-849B-24D4988E3A1B/ubersrvprj2010-kb4011269-fullfile-x64-glb.exe, 603 | 2017,10,SP16,https://download.microsoft.com/download/9/B/C/9BCF874C-F756-4260-96BB-15351886B926/sts2016-kb4011217-fullfile-x64-glb.exe, 604 | 2017,10,SP16,https://download.microsoft.com/download/5/5/0/5508D01B-44A3-46A4-A912-BD3AEB05788B/wssloc2016-kb4011161-fullfile-x64-glb.exe, 605 | 2017,10,SP15,https://download.microsoft.com/download/E/4/F/E4FFF074-15C7-425C-AD7B-AAC06EC2423D/ubersrv2013-kb4011177-fullfile-x64-glb.exe, 606 | 2017,10,SP15,https://download.microsoft.com/download/E/4/F/E4FFF074-15C7-425C-AD7B-AAC06EC2423D/ubersrv_2.cab, 607 | 2017,10,SP15,https://download.microsoft.com/download/E/4/F/E4FFF074-15C7-425C-AD7B-AAC06EC2423D/ubersrv_1.cab, 608 | 2017,10,SP15,https://download.microsoft.com/download/0/5/6/0560E551-1589-4CC5-B736-5E38FED66A79/ubersts2013-kb4011173-fullfile-x64-glb.exe, 609 | 2017,10,SP14,https://download.microsoft.com/download/B/D/A/BDA03FB4-B38A-4DB1-86F2-F0478EF1AF84/ubersrv2010-kb4011195-fullfile-x64-glb.exe, 610 | 2017,10,PROJ15,https://download.microsoft.com/download/6/9/C/69C0C931-D2C7-4C0B-9736-77DDC76F9A32/ubersrvprj2013-kb4011175-fullfile-x64-glb.exe, 611 | 2017,10,PROJ15,https://download.microsoft.com/download/6/9/C/69C0C931-D2C7-4C0B-9736-77DDC76F9A32/ubersrvprj_2.cab, 612 | 2017,10,PROJ15,https://download.microsoft.com/download/6/9/C/69C0C931-D2C7-4C0B-9736-77DDC76F9A32/ubersrvprj_1.cab, 613 | 2017,10,PROJ14,https://download.microsoft.com/download/9/3/8/93881299-1741-4C05-8154-5FC2592DD922/ubersrvprj2010-kb4011192-fullfile-x64-glb.exe, 614 | 2017,1,PROJ15,https://download.microsoft.com/download/7/4/C/74C008E0-F5A6-41D9-BD58-9D2273A73257/ubersrvprj2013-kb3141480-fullfile-x64-glb.exe, 615 | 2017,1,PROJ15,https://download.microsoft.com/download/7/4/C/74C008E0-F5A6-41D9-BD58-9D2273A73257/ubersrvprj_2.cab, 616 | 2017,1,PROJ15,https://download.microsoft.com/download/7/4/C/74C008E0-F5A6-41D9-BD58-9D2273A73257/ubersrvprj_1.cab, 617 | 2016,9,PROJ15,https://download.microsoft.com/download/D/3/2/D326FA85-5128-4830-BA0D-DD2CB4709AE3/ubersrvprj2013-kb3118274-fullfile-x64-glb.exe, 618 | 2016,9,PROJ15,https://download.microsoft.com/download/D/3/2/D326FA85-5128-4830-BA0D-DD2CB4709AE3/ubersrvprj_2.cab, 619 | 2016,9,PROJ15,https://download.microsoft.com/download/D/3/2/D326FA85-5128-4830-BA0D-DD2CB4709AE3/ubersrvprj_1.cab, 620 | 2016,9,PROJ14,https://download.microsoft.com/download/A/5/9/A59BD6A8-AABB-44DD-A4CB-D6DD533BCA57/ubersrvprj2010-kb3115470-fullfile-x64-glb.exe, 621 | 2016,8,PROJ15,https://download.microsoft.com/download/9/F/0/9F054756-9095-40B7-9714-2225C8A222DB/ubersrvprj2013-kb3115448-fullfile-x64-glb.exe, 622 | 2016,8,PROJ15,https://download.microsoft.com/download/9/F/0/9F054756-9095-40B7-9714-2225C8A222DB/ubersrvprj_2.cab, 623 | 2016,8,PROJ15,https://download.microsoft.com/download/9/F/0/9F054756-9095-40B7-9714-2225C8A222DB/ubersrvprj_1.cab, 624 | 2016,7,PROJ15,https://download.microsoft.com/download/3/3/C/33CE29B6-43B3-494A-A1DA-E7340624E0FF/ubersrvprj2013-kb3115291-fullfile-x64-glb.exe, 625 | 2016,7,PROJ15,https://download.microsoft.com/download/3/3/C/33CE29B6-43B3-494A-A1DA-E7340624E0FF/ubersrvprj_2.cab, 626 | 2016,7,PROJ15,https://download.microsoft.com/download/3/3/C/33CE29B6-43B3-494A-A1DA-E7340624E0FF/ubersrvprj_1.cab, 627 | 2016,7,PROJ14,https://download.microsoft.com/download/6/D/8/6D8D6143-B8E2-450B-B0A1-128C14E095AD/ubersrvprj2010-kb3115316-fullfile-x64-glb.exe, 628 | 2016,6,PROJ15,https://download.microsoft.com/download/3/6/3/36326948-B3BA-421B-8576-89EACFA45064/ubersrvprj2013-kb3115172-fullfile-x64-glb.exe, 629 | 2016,6,PROJ15,https://download.microsoft.com/download/3/6/3/36326948-B3BA-421B-8576-89EACFA45064/ubersrvprj_2.cab, 630 | 2016,6,PROJ15,https://download.microsoft.com/download/3/6/3/36326948-B3BA-421B-8576-89EACFA45064/ubersrvprj_1.cab, 631 | 2016,5,PROJ15,https://download.microsoft.com/download/8/8/8/88883086-5661-4E51-9829-0EA3AE6FA32F/ubersrvprj2013-kb3115024-fullfile-x64-glb.exe, 632 | 2016,5,PROJ15,https://download.microsoft.com/download/8/8/8/88883086-5661-4E51-9829-0EA3AE6FA32F/ubersrvprj_2.cab, 633 | 2016,5,PROJ15,https://download.microsoft.com/download/8/8/8/88883086-5661-4E51-9829-0EA3AE6FA32F/ubersrvprj_1.cab, 634 | 2016,5,PROJ14,https://download.microsoft.com/download/4/C/D/4CD0ACF0-A584-486C-B5C1-A3CDF61CB96F/ubersrvprj2010-kb3115122-fullfile-x64-glb.exe, 635 | 2016,4,PROJ15,https://download.microsoft.com/download/C/8/D/C8D984D0-274C-49F2-B6FC-B6E239C0D172/ubersrvprj2013-kb3114936-fullfile-x64-glb.exe, 636 | 2016,4,PROJ15,https://download.microsoft.com/download/C/8/D/C8D984D0-274C-49F2-B6FC-B6E239C0D172/ubersrvprj_2.cab, 637 | 2016,4,PROJ15,https://download.microsoft.com/download/C/8/D/C8D984D0-274C-49F2-B6FC-B6E239C0D172/ubersrvprj_1.cab, 638 | 2016,4,PROJ14,https://download.microsoft.com/download/7/8/1/7815ECC9-CB63-4810-B32B-36420A70E14A/ubersrvprj2010-kb3114992-fullfile-x64-glb.exe, 639 | 2016,3,PROJ15,https://download.microsoft.com/download/3/5/F/35FB73E1-EBB1-44B8-BA77-43989C5DCE8D/ubersrvprj2013-kb3114823-fullfile-x64-glb.exe, 640 | 2016,3,PROJ15,https://download.microsoft.com/download/3/5/F/35FB73E1-EBB1-44B8-BA77-43989C5DCE8D/ubersrvprj_2.cab, 641 | 2016,3,PROJ15,https://download.microsoft.com/download/3/5/F/35FB73E1-EBB1-44B8-BA77-43989C5DCE8D/ubersrvprj_1.cab, 642 | 2016,3,PROJ14,https://download.microsoft.com/download/F/1/8/F18F3DC5-83EF-49BC-BEA3-57C17958160E/ubersrvprj2010-kb3114876-fullfile-x64-glb.exe, 643 | 2016,2,PROJ15,https://download.microsoft.com/download/B/1/C/B1C3AA7C-D239-4CF9-A803-85CCBB07E73D/ubersrvprj2013-kb3114723-fullfile-x64-glb.exe, 644 | 2016,2,PROJ15,https://download.microsoft.com/download/B/1/C/B1C3AA7C-D239-4CF9-A803-85CCBB07E73D/ubersrvprj_2.cab, 645 | 2016,2,PROJ15,https://download.microsoft.com/download/B/1/C/B1C3AA7C-D239-4CF9-A803-85CCBB07E73D/ubersrvprj_1.cab, 646 | 2016,2,PROJ14,https://download.microsoft.com/download/4/A/8/4A87D548-5CC3-4ADC-A32D-89E0EEA6612D/ubersrvprj2010-kb3114754-fullfile-x64-glb.exe, 647 | 2016,12,PROJ15,https://download.microsoft.com/download/1/E/3/1E34F9A2-9985-4E58-9253-D74EF9F3EED1/ubersrvprj2013-kb3128003-fullfile-x64-glb.exe, 648 | 2016,12,PROJ15,https://download.microsoft.com/download/1/E/3/1E34F9A2-9985-4E58-9253-D74EF9F3EED1/ubersrvprj_2.cab, 649 | 2016,12,PROJ15,https://download.microsoft.com/download/1/E/3/1E34F9A2-9985-4E58-9253-D74EF9F3EED1/ubersrvprj_1.cab, 650 | 2016,12,PROJ14,https://download.microsoft.com/download/1/D/E/1DE26D95-DBCD-48DF-940E-5D5B4C236581/ubersrvprj2010-kb3128033-fullfile-x64-glb.exe, 651 | 2016,11,PROJ15,https://download.microsoft.com/download/E/8/B/E8B461B9-B272-4894-A1DB-D6707EAEE50F/ubersrvprj2013-kb3127931-fullfile-x64-glb.exe, 652 | 2016,11,PROJ15,https://download.microsoft.com/download/E/8/B/E8B461B9-B272-4894-A1DB-D6707EAEE50F/ubersrvprj_2.cab, 653 | 2016,11,PROJ15,https://download.microsoft.com/download/E/8/B/E8B461B9-B272-4894-A1DB-D6707EAEE50F/ubersrvprj_1.cab, 654 | 2016,11,PROJ14,https://download.microsoft.com/download/C/A/A/CAA461CD-84BA-436A-AC45-57C510B7C84E/ubersrvprj2010-kb3127952-fullfile-x64-glb.exe, 655 | 2016,10,PROJ15,https://download.microsoft.com/download/6/0/0/6005FC79-DF92-453C-B0A8-2992FAC9614B/ubersrvprj2013-kb3118365-fullfile-x64-glb.exe, 656 | 2016,10,PROJ15,https://download.microsoft.com/download/6/0/0/6005FC79-DF92-453C-B0A8-2992FAC9614B/ubersrvprj_2.cab, 657 | 2016,10,PROJ15,https://download.microsoft.com/download/6/0/0/6005FC79-DF92-453C-B0A8-2992FAC9614B/ubersrvprj_1.cab, 658 | 2016,10,PROJ14,https://download.microsoft.com/download/6/C/8/6C8E8364-7B3A-4AB1-A97E-8759AB5AF5D2/ubersrvprj2010-kb3118383-fullfile-x64-glb.exe, 659 | 2016,1,PROJ15,https://download.microsoft.com/download/C/3/9/C39DD487-9BA0-447B-B645-B54D23350ABD/ubersrvprj2013-kb3114493-fullfile-x64-glb.exe, 660 | 2016,1,PROJ15,https://download.microsoft.com/download/C/3/9/C39DD487-9BA0-447B-B645-B54D23350ABD/ubersrvprj_2.cab, 661 | 2016,1,PROJ15,https://download.microsoft.com/download/C/3/9/C39DD487-9BA0-447B-B645-B54D23350ABD/ubersrvprj_1.cab, 662 | 2015,9,PROJ15,https://download.microsoft.com/download/B/A/0/BA0BE7EE-B317-46B5-976D-8757DCD4FA6D/ubersrvprj2013-kb2986195-fullfile-x64-glb.exe, 663 | 2015,9,PROJ15,https://download.microsoft.com/download/B/A/0/BA0BE7EE-B317-46B5-976D-8757DCD4FA6D/ubersrvprj_2.cab, 664 | 2015,9,PROJ15,https://download.microsoft.com/download/B/A/0/BA0BE7EE-B317-46B5-976D-8757DCD4FA6D/ubersrvprj_1.cab, 665 | 2015,9,PROJ14,https://download.microsoft.com/download/3/E/D/3ED9B71F-75BE-4629-A931-E3EB2BCF41FB/ubersrvprj2010-kb3085517-fullfile-x64-glb.exe, 666 | 2015,8,PROJ15,https://download.microsoft.com/download/B/9/C/B9CCB1DB-5F5A-4F63-8C2B-3B357D6878B9/ubersrvprj2013-kb3055005-fullfile-x64-glb.exe, 667 | 2015,8,PROJ15,https://download.microsoft.com/download/B/9/C/B9CCB1DB-5F5A-4F63-8C2B-3B357D6878B9/ubersrvprj_2.cab, 668 | 2015,8,PROJ15,https://download.microsoft.com/download/B/9/C/B9CCB1DB-5F5A-4F63-8C2B-3B357D6878B9/ubersrvprj_1.cab, 669 | 2015,8,PROJ14,https://download.microsoft.com/download/6/8/B/68B54926-5A3D-41DC-A352-1793CDB0D1C9/ubersrvprj2010-kb3055038-fullfile-x64-glb.exe, 670 | 2015,7,PROJ15,https://download.microsoft.com/download/E/A/1/EA1BEDCA-127D-4514-A519-5308C84A568B/ubersrvprj2013-kb3054933-fullfile-x64-glb.exe, 671 | 2015,7,PROJ15,https://download.microsoft.com/download/E/A/1/EA1BEDCA-127D-4514-A519-5308C84A568B/ubersrvprj_2.cab, 672 | 2015,7,PROJ15,https://download.microsoft.com/download/E/A/1/EA1BEDCA-127D-4514-A519-5308C84A568B/ubersrvprj_1.cab, 673 | 2015,7,PROJ14,https://download.microsoft.com/download/7/9/B/79B71D25-C489-42F8-8901-F0A0582575EA/ubersrvprj2010-kb3054972-fullfile-x64-glb.exe, 674 | 2015,6,PROJ15,https://download.microsoft.com/download/F/C/F/FCFC7117-C146-4D71-BBE2-F1E3B3D26041/ubersrvprj2013-kb3054865-fullfile-x64-glb.exe, 675 | 2015,6,PROJ15,https://download.microsoft.com/download/F/C/F/FCFC7117-C146-4D71-BBE2-F1E3B3D26041/ubersrvprj_2.cab, 676 | 2015,6,PROJ15,https://download.microsoft.com/download/F/C/F/FCFC7117-C146-4D71-BBE2-F1E3B3D26041/ubersrvprj_1.cab, 677 | 2015,6,PROJ14,https://download.microsoft.com/download/6/5/B/65BBD90F-623B-4701-A2A9-5644130F45EC/ubersrvprj2010-kb3054877-fullfile-x64-glb.exe, 678 | 2015,5,PROJ15,https://download.microsoft.com/download/9/D/4/9D4FA1AE-F740-452B-B0A1-DE168443CC59/ubersrvprj2013-kb3039753-fullfile-x64-glb.exe, 679 | 2015,5,PROJ15,https://download.microsoft.com/download/9/D/4/9D4FA1AE-F740-452B-B0A1-DE168443CC59/ubersrvprj_2.cab, 680 | 2015,5,PROJ15,https://download.microsoft.com/download/9/D/4/9D4FA1AE-F740-452B-B0A1-DE168443CC59/ubersrvprj_1.cab, 681 | 2015,5,PROJ14,https://download.microsoft.com/download/C/E/2/CE22709A-44A7-4713-9478-F70CE1BC2323/ubersrvprj2010-kb2999496-fullfile-x64-glb.exe, 682 | 2015,4,SP14,https://download.microsoft.com/download/9/6/2/9623EFB7-C002-4379-B15A-348BDD5CC96E/ubersrv2010-kb2965294-fullfile-x64-glb.exe, 683 | 2015,4,PROJ15,https://download.microsoft.com/download/A/5/8/A58CF921-4AEE-461F-B931-1EC516F076B3/ubersrvprj2013-kb2965263-fullfile-x64-glb.exe, 684 | 2015,4,PROJ15,https://download.microsoft.com/download/A/5/8/A58CF921-4AEE-461F-B931-1EC516F076B3/ubersrvprj_1.cab, 685 | 2015,4,PROJ14,https://download.microsoft.com/download/3/F/1/3F16F29C-8B3C-4107-8BBA-50EB22CC04B9/ubersrvprj2010-kb2965293-fullfile-x64-glb.exe, 686 | 2015,3,SP15,https://download.microsoft.com/download/3/E/C/3EC467CD-E457-44CA-A8A7-D94A7691ED6C/ubersts2013-kb2956159-fullfile-x64-glb.exe, 687 | 2015,3,SP15,https://download.microsoft.com/download/3/9/4/3942AD9A-7817-4332-A3A7-AEAA313348EA/ubersrv2013-kb2956166-fullfile-x64-glb.exe, 688 | 2015,3,SP15,https://download.microsoft.com/download/3/9/4/3942AD9A-7817-4332-A3A7-AEAA313348EA/ubersrv_2.cab, 689 | 2015,3,SP15,https://download.microsoft.com/download/3/9/4/3942AD9A-7817-4332-A3A7-AEAA313348EA/ubersrv_1.cab, 690 | 2015,3,SP14,https://download.microsoft.com/download/3/1/D/31DB8AAE-A5AF-49B8-9ADF-2C83A7ABF43A/wssloc2010-kb2956208-fullfile-x64-glb.exe, 691 | 2015,3,SP14,https://download.microsoft.com/download/2/D/0/2D043D72-6F11-4213-AEC1-DEFDD2EE4FEE/ubersrv2010-kb2956201-fullfile-x64-glb.exe, 692 | 2015,3,PROJ15,https://download.microsoft.com/download/1/8/6/186B5021-AF1C-4898-BE04-CEB2B3DAFBCE/ubersrvprj2013-kb2956162-fullfile-x64-glb.exe, 693 | 2015,3,PROJ15,https://download.microsoft.com/download/1/8/6/186B5021-AF1C-4898-BE04-CEB2B3DAFBCE/ubersrvprj_2.cab, 694 | 2015,3,PROJ15,https://download.microsoft.com/download/1/8/6/186B5021-AF1C-4898-BE04-CEB2B3DAFBCE/ubersrvprj_1.cab, 695 | 2015,3,PROJ14,https://download.microsoft.com/download/A/D/6/AD68F5E8-1446-4E25-8699-965C3D06423C/ubersrvprj2010-kb2956198-fullfile-x64-glb.exe, 696 | 2015,2,SP15,https://download.microsoft.com/download/E/A/1/EA1A1CC6-A352-49F2-BD99-367698938F79/ubersrv2013-kb2920804-fullfile-x64-glb.exe, 697 | 2015,2,SP15,https://download.microsoft.com/download/E/A/1/EA1A1CC6-A352-49F2-BD99-367698938F79/ubersrv_2.cab, 698 | 2015,2,SP15,https://download.microsoft.com/download/E/A/1/EA1A1CC6-A352-49F2-BD99-367698938F79/ubersrv_1.cab, 699 | 2015,2,SP15,https://download.microsoft.com/download/8/9/E/89E4E37A-5F52-4C99-88D8-957636E49817/ubersts2013-kb2920801-fullfile-x64-glb.exe, 700 | 2015,2,SP14,https://download.microsoft.com/download/C/0/C/C0C31482-A566-49F3-8F16-45E8607F0C38/wssloc2010-kb2910904-fullfile-x64-glb.exe, 701 | 2015,2,SP14,https://download.microsoft.com/download/7/5/3/7532B20E-846C-4C8D-A6E2-E16DEDB2116B/ubersrv2010-kb2899558-fullfile-x64-glb.exe, 702 | 2015,2,PROJ15,https://download.microsoft.com/download/E/F/0/EF02E83A-8774-46A4-B3A2-64BC21278DDB/ubersrvprj2013-kb2920796-fullfile-x64-glb.exe, 703 | 2015,2,PROJ15,https://download.microsoft.com/download/E/F/0/EF02E83A-8774-46A4-B3A2-64BC21278DDB/ubersrvprj_2.cab, 704 | 2015,2,PROJ15,https://download.microsoft.com/download/E/F/0/EF02E83A-8774-46A4-B3A2-64BC21278DDB/ubersrvprj_1.cab, 705 | 2015,2,PROJ14,https://download.microsoft.com/download/1/B/2/1B2AC756-C53B-480B-B140-4001B6F35138/ubersrvprj2010-kb2899557-fullfile-x64-glb.exe, 706 | 2015,12,PROJ15,https://download.microsoft.com/download/3/F/F/3FF5BD88-63DC-457A-91F5-8385139EDA17/ubersrvprj2013-kb3114341-fullfile-x64-glb.exe, 707 | 2015,12,PROJ15,https://download.microsoft.com/download/3/F/F/3FF5BD88-63DC-457A-91F5-8385139EDA17/ubersrvprj_2.cab, 708 | 2015,12,PROJ15,https://download.microsoft.com/download/3/F/F/3FF5BD88-63DC-457A-91F5-8385139EDA17/ubersrvprj_1.cab, 709 | 2015,12,PROJ14,https://download.microsoft.com/download/E/0/A/E0A0929A-D181-40D2-A6D1-B11B71B4CA42/ubersrvprj2010-kb3114405-fullfile-x64-glb.exe, 710 | 2015,11,PROJ15,https://download.microsoft.com/download/8/5/1/85135C95-AE79-479F-B73E-F99384C3F010/ubersrvprj2013-kb3101369-fullfile-x64-glb.exe, 711 | 2015,11,PROJ15,https://download.microsoft.com/download/8/5/1/85135C95-AE79-479F-B73E-F99384C3F010/ubersrvprj_2.cab, 712 | 2015,11,PROJ15,https://download.microsoft.com/download/8/5/1/85135C95-AE79-479F-B73E-F99384C3F010/ubersrvprj_1.cab, 713 | 2015,11,PROJ14,https://download.microsoft.com/download/5/9/5/595D8759-4E4D-4252-9B36-27E8B239F756/ubersrvprj2010-kb3101530-fullfile-x64-glb.exe, 714 | 2015,10,PROJ15,https://download.microsoft.com/download/3/3/0/330F7FBE-C46B-42F5-BF38-F0376E665B21/ubersrvprj2013-kb3085489-fullfile-x64-glb.exe, 715 | 2015,10,PROJ15,https://download.microsoft.com/download/3/3/0/330F7FBE-C46B-42F5-BF38-F0376E665B21/ubersrvprj_2.cab, 716 | 2015,10,PROJ15,https://download.microsoft.com/download/3/3/0/330F7FBE-C46B-42F5-BF38-F0376E665B21/ubersrvprj_1.cab, 717 | 2015,10,PROJ14,https://download.microsoft.com/download/E/C/B/ECB0EFFE-D1E7-4478-8525-6B493B04319A/ubersrvprj2010-kb3085598-fullfile-x64-glb.exe, 718 | 2014,9,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/UberSrvcab2/15.0.4649.1001/free/478313_intl_x64_zip.exe, 719 | 2014,9,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/UberSrvcab1/15.4649.1001/free/478312_intl_x64_zip.exe, 720 | 2014,9,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2883068fullfilex64glb/15.0.4649.1001/free/478311_intl_x64_zip.exe, 721 | 2014,9,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2883087fullfilex64glb/15.0.4649.1001/free/478296_intl_x64_zip.exe, 722 | 2014,9,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2883103fullfilex64glb/14.0.7132.5000/free/478253_intl_x64_zip.exe, 723 | 2014,9,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/wssloc2010kb2889932fullfilex64glb/14.0.7132.5002/free/478256_intl_x64_zip.exe, 724 | 2014,9,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/UberSrvPrjCab2/15.0.4649.1001/free/478316_intl_x64_zip.exe, 725 | 2014,9,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/UberSrvPrjCab1/15.0.4649.1001/free/478315_intl_x64_zip.exe, 726 | 2014,9,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/ubersrvprj2013kb2883072fullfilex64glb/15.0.4649.1001/free/478314_intl_x64_zip.exe, 727 | 2014,9,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2883006fullfilex64glb/14.0.7132.5000/free/478252_intl_x64_zip.exe, 728 | 2014,7,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrvcab2/15.0.4631.1001/free/476669_intl_x64_zip.exe, 729 | 2014,7,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrvcab1/15.0.4631.1001/free/476668_intl_x64_zip.exe, 730 | 2014,7,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2882989fullfilex64glb/15.0.4631.1001/free/476667_intl_x64_zip.exe, 731 | 2014,7,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2882999fullfilex64glb/15.0.4631.1001/free/476729_intl_x64_zip.exe, 732 | 2014,7,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2883005fullfilex64glb/14.0.7128.5001/free/476701_intl_x64_zip.exe, 733 | 2014,7,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2883026fullfilex64glb/14.0.7128.5001/free/476703_intl_x64_zip.exe, 734 | 2014,6,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2881061fullfilex64glb/15.0.4623.1001/free/476037_intl_x64_zip.exe, 735 | 2014,6,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2/15.0.4623.1001/free/476039_intl_x64_zip.exe, 736 | 2014,6,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv1/15.0.4623.1001/free/476038_intl_x64_zip.exe, 737 | 2014,6,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2881063fullfilex64glb/15.0.4623.1001/free/476067_intl_x64_zip.exe, 738 | 2014,6,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2880972fullfilex64glb/14.0.7125.5002/free/476047_intl_x64_zip.exe, 739 | 2014,6,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2880975fullfilex64glb/14.0.7125.5002/free/476046_intl_x64_zip.exe, 740 | 2014,6,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2880974fullfilex64glb/14.0.7125.5002/free/476044_intl_x64_zip.exe, 741 | 2014,5,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2878240fullfilex64glb/15.0.4605.1004/free/475240_intl_x64_zip.exe, 742 | 2014,5,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv_2/15.0.4605.1004/free/475242_intl_x64_zip.exe, 743 | 2014,5,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv_1/15.0.4605.1004/free/475241_intl_x64_zip.exe, 744 | 2014,5,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202013/sp2/ubersts2013kb2863892fullfilex64glb/15.0.4605.1004/free/475239_intl_x64_zip.exe, 745 | 2014,4,SP15,https://download.microsoft.com/download/F/5/0/F50DA481-BAE3-43F1-80C9-A19A9FB29335/sharepointsp2013-kb2880551-fullfile-x64-en-us.exe, 746 | 2014,4,SP15,https://download.microsoft.com/download/7/A/8/7A84E002-6512-4506-A812-CA66FF6766D9/officeserversp2013-kb2880552-fullfile-x64-en-us.exe, 747 | 2014,4,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2878250fullfilex64glb/14.0.7121.5004/free/474468_intl_x64_zip.exe, 748 | 2014,4,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2878270fullfilex64glb/14.0.7121.5000/free/474469_intl_x64_zip.exe, 749 | 2014,2,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2863913fullfilex64glb/14.0.7116.5000/free/472941_intl_x64_zip.exe, 750 | 2014,2,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2863938fullfilex64glb/14.0.7116.5000/free/472937_intl_x64_zip.exe, 751 | 2014,2,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2863917fullfilex64glb/14.0.7116.5000/free/472935_intl_x64_zip.exe, 752 | 2014,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrvcab2/15.0.4675.1000/free/480662_intl_x64_zip.exe, 753 | 2014,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2910938fullfilex64glb/15.0.4675.1000/free/480660_intl_x64_zip.exe, 754 | 2014,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv1/15.0.4675.1000/free/480661_intl_x64_zip.exe, 755 | 2014,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2910945fullfilex64glb/15.0.4675.1000/free/480643_intl_x64_zip.exe, 756 | 2014,12,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2899583fullfilex64glb/14.0.7140.5000/free/480616_intl_x64_zip.exe, 757 | 2014,12,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/wssloc2010kb2899585fullfilex64glb/14.0.7140.5000/free/480619_intl_x64_zip.exe, 758 | 2014,12,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/ubersrvprjcab1/15.0.4675.1000/free/480664_intl_x64_zip.exe, 759 | 2014,12,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/ubersrvprj2013kb2910911fullfilex64glb/15.0.4675.1000/free/480663_intl_x64_zip.exe, 760 | 2014,12,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2899587fullfilex64glb/14.0.7140.5000/free/480617_intl_x64_zip.exe, 761 | 2014,11,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrvcab2/15.0.4667.1000/free/479926_intl_x64_zip.exe, 762 | 2014,11,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrvcab1/15.0.4667.1000/free/479925_intl_x64_zip.exe, 763 | 2014,11,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp2/ubersrv2013kb2889944fullfilex64glb/15.0.4667.1000/free/479924_intl_x64_zip.exe, 764 | 2014,11,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2899468fullfilex64glb/15.0.4667.1000/free/479983_intl_x64_zip.exe, 765 | 2014,11,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2899478fullfilex64glb/14.0.7137.5000/free/479966_intl_x64_zip.exe, 766 | 2014,11,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/wssloc2010kb2889933fullfilex64glb/14.0.7137.5000/free/479968_intl_x64_zip.exe, 767 | 2014,11,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/ubersrvprjcab1/15.0.4667.1000/free/479930_intl_x64_zip.exe, 768 | 2014,11,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/sp2/ubersrvprj2013kb2889949fullfilex64glb/15.0.4667.1000/free/479929_intl_x64_zip.exe, 769 | 2014,11,PROJ15,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202013/latest/ubersrvprjcab2/15.0.4667.1000/free/480040_intl_x64_zip.exe, 770 | 2014,11,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2899479fullfilex64glb/14.0.7137.5000/free/479955_intl_x64_zip.exe, 771 | 2014,10,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/wssloc2013kb2889946fullfilex64glb/15.0.4659.1001/free/479135_intl_x64_zip.exe, 772 | 2013,8,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2817517fullfilex64glb/15.0.4535.1000/free/466892_intl_x64_zip.exe, 773 | 2013,8,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersrv2013kb2817616fullfilex64glb/15.0.4535.1000/free/466901_intl_x64_zip.exe, 774 | 2013,7,SP14,https://download.microsoft.com/download/B/7/5/B7527CEF-F69F-4E6B-B85D-EAC225010B36/wsssp2010-kb2687464-fullfile-x64-en-us.exe, 775 | 2013,7,SP14,https://download.microsoft.com/download/9/B/F/9BFC169F-BEFD-4344-B1EC-24CCF34570C0/oserversp2010-kb2687453-fullfile-x64-en-us.exe, 776 | 2013,7,PROJ14,https://download.microsoft.com/download/7/0/4/7041CD79-7AD5-480B-8DC4-CAD2695C425A/svrprjsp2010-kb2687452-fullfile-x64-en-us.exe, 777 | 2013,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2849961fullfilex64glb/15.0.4551.1508/free/471268_intl_x64_zip.exe, 778 | 2013,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersrv2013kb2850024fullfilex64glb/15.0.4551.1511/free/471358_intl_x64_zip.exe, 779 | 2013,12,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersrv_1/15.0.4551.1511/free/471445_intl_x64_zip.exe, 780 | 2013,12,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2849971fullfilex64glb/14.0.7113.5000/free/471191_intl_x64_zip.exe, 781 | 2013,12,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2849990fullfilex64glb/14.0.7113.5000/free/471190_intl_x64_zip.exe, 782 | 2013,12,PROJ14,http://hotfixv4.microsoft.com/Microsoft%20Project%20Server%202010/sp2/ubersrvprj2010kb2849972fullfilex64glb/14.0.7113.5002/free/471207_intl_x64_zip.exe, 783 | 2013,10,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersts2013kb2825674fullfilex64glb/15.0.4551.1001/free/469307_intl_x64_zip.exe, 784 | 2013,10,SP15,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202013/sp1/ubersrv2013kb2825647fullfilex64glb/15.0.4551.1005/free/469951_intl_x64_zip.exe, 785 | 2013,10,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Server%202010/sp2/ubersrv2010kb2825786fullfilex64glb/14.0.7110.5000/free/469233_intl_x64_zip.exe, 786 | 2013,10,SP14,http://hotfixv4.microsoft.com/Microsoft%20SharePoint%20Foundation%202010/sp2/ubersts2010kb2825824fullfilex64glb/14.0.7110.5000/free/469247_intl_x64_zip.exe, 787 | 788 | 789 | 790 | -------------------------------------------------------------------------------- /SPPatchify.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | SharePoint Central Admin - View active services across entire farm. No more select machine drop down dance! 4 | .DESCRIPTION 5 | Apply CU patch to entire farm from one PowerShell console. 6 | 7 | NOTE - must run local to a SharePoint server under account with farm admin rights. 8 | 9 | Comments and suggestions always welcome! spjeff@spjeff.com or @spjeff 10 | .NOTES 11 | File Namespace : SPPatchify.ps1 12 | Author : Jeff Jones - @spjeff 13 | Version : 0.150 14 | Last Modified : 01-03-2020 15 | 16 | .LINK 17 | Source Code 18 | http://www.github.com/spjeff/sppatchify 19 | https://www.spjeff.com/2016/05/16/sppatchify-cu-patch-entire-farm-from-one-script/ 20 | 21 | Patch Notes 22 | http://sharepointupdates.com 23 | #> 24 | 25 | [CmdletBinding()] 26 | param ( 27 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -d -downloadMediaOnly to execute Media Download only. No farm changes. Prep step for real patching later.')] 28 | [Alias("d")] 29 | [switch]$downloadMediaOnly, 30 | [string]$downloadVersion, 31 | 32 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -c -copyMediaOnly to copy \media\ across all peer machines. No farm changes. Prep step for real patching later.')] 33 | [Alias("c")] 34 | [switch]$copyMediaOnly, 35 | 36 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -v -showVersion to show farm version info. READ ONLY, NO SYSTEM CHANGES.')] 37 | [Alias("v")] 38 | [switch]$showVersion, 39 | 40 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -phaseOneBinary to execute Phase One only (run binary)')] 41 | [switch]$phaseOneBinary, 42 | 43 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -quick to run ONLY EXE binary')] 44 | [switch]$quick, 45 | 46 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -phaseTwo to execute Phase Two after local reboot.')] 47 | [switch]$phaseTwo, 48 | 49 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -phaseThree to execute Phase Three attach and upgrade content.')] 50 | [switch]$phaseThree, 51 | 52 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -o -onlineContent to keep content databases online. Avoids Dismount/Mount. NOTE - Will substantially increase patching duration for farms with more user content.')] 53 | [Alias("o")] 54 | [switch]$onlineContent, 55 | 56 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -remoteSessionPort to open PSSession (remoting) with custom port number.')] 57 | [string]$remoteSessionPort, 58 | 59 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -remoteSessionSSL to open PSSession (remoting) with SSL encryption.')] 60 | [switch]$remoteSessionSSL, 61 | 62 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -test to open Remote PS Session and verify connectivity all farm members.')] 63 | [switch]$testRemotePS, 64 | 65 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -skipProductLocal to run Phase One binary without Get-SPProduct -Local.')] 66 | [switch]$skipProductLocal = $false, 67 | 68 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -targetServers to run for specific machines only. Applicable to PhaseOne and PhaseTwo.')] 69 | [string[]]$targetServers, 70 | 71 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -productlocal to execute remote cmdlet [Get-SPProduct -Local] on all servers in farm, or target/wave servers only if given.')] 72 | [switch]$productlocal, 73 | 74 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -mount to execute Mount-SPContentDatabase to load CSV and attach content databases to web applications.')] 75 | [string]$mount, 76 | 77 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -appOffline TRUE/FALSE to COPY app_offline.htm] file to all servers and all IIS websites (except Default Website).')] 78 | [string]$appOffline, 79 | 80 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -bypass to run with PACKAGE.BYPASS.DETECTION.CHECK=1')] 81 | [switch]$bypass, 82 | 83 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -changeServices TRUE/FALSE to toggle the farm active state UP/DOWN')] 84 | [string]$changeServices, 85 | 86 | [Parameter(Mandatory = $False, ValueFromPipeline = $false, HelpMessage = 'Use -saveServiceInstance to snapshot CSV with current Service Instances running.')] 87 | [switch]$saveServiceInstance 88 | ) 89 | 90 | # Plugin 91 | Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null 92 | Import-Module WebAdministration -ErrorAction SilentlyContinue | Out-Null 93 | 94 | # Version 95 | if ($phaseTwo) { 96 | $phase = "-phaseTwo" 97 | } 98 | if ($phaseThree) { 99 | $phase = "-phaseThree" 100 | } 101 | $host.ui.RawUI.WindowTitle = "SPPatchify v0.150 $phase" 102 | $rootCmd = $MyInvocation.MyCommand.Definition 103 | $root = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition 104 | $maxattempt = 3 105 | $maxrebootminutes = 120 106 | $logFolder = "$root\log" 107 | 108 | #region binary EXE 109 | function MakeRemote($path) { 110 | # Remote UNC 111 | $char = $path.ToCharArray() 112 | if ($char[1] -eq ':') { 113 | $char[1] = '$' 114 | } 115 | return (-join $char) 116 | } 117 | function CopyEXE($action) { 118 | Write-Host "===== $action EXE ===== $(Get-Date)" -Fore "Yellow" 119 | 120 | # Clear old session 121 | Get-Job | Remove-Job -Force 122 | Get-PSSession | Remove-PSSession -Confirm:$false 123 | 124 | # Start Jobs 125 | foreach ($server in $global:servers) { 126 | $addr = $server.Address 127 | if ($addr -ne $env:computername) { 128 | # Dynamic command 129 | $dest = "\\$addr\$remoteRoot\media" 130 | mkdir $dest -Force -ErrorAction SilentlyContinue | Out-Null; 131 | ROBOCOPY ""$root\media"" ""$dest"" /Z /MIR /W:0 /R:0 132 | } 133 | } 134 | 135 | # Watch Jobs 136 | Start-Sleep 5 137 | 138 | $counter = 0 139 | do { 140 | foreach ($server in $global:servers) { 141 | # Progress 142 | if (Get-Job) { 143 | $prct = [Math]::Round(($counter / (Get-Job).Count) * 100) 144 | if ($prct) { 145 | Write-Progress -Activity "Copy EXE ($prct %) $(Get-Date)" -Status $addr -PercentComplete $prct -ErrorAction SilentlyContinue 146 | } 147 | } 148 | 149 | # Check Job Status 150 | Get-Job | Format-Table -AutoSize 151 | } 152 | Start-Sleep 5 153 | $pending = Get-Job | Where-Object { $_.State -eq "Running" -or $_.State -eq "NotStarted" } 154 | $counter = (Get-Job).Count - $pending.Count 155 | } 156 | while ($pending) 157 | 158 | # Complete 159 | Get-Job | Format-Table -a 160 | Write-Progress -Activity "Completed $(Get-Date)" -Completed 161 | } 162 | 163 | function SafetyInstallRequired() { 164 | # Display server upgrade 165 | Write-Host "Farm Servers - Upgrade Status " -Fore "Yellow" 166 | (Get-SPProduct).Servers | Select-Object Servername, InstallStatus | Sort-Object Servername | Format-Table -AutoSize 167 | 168 | $halt = (Get-SPProduct).Servers | Where-Object { $_.InstallStatus -eq "InstallRequired" } 169 | if ($halt) { 170 | $halt | Format-Table -AutoSize 171 | Write-Host "HALT - MEDIA ERROR - Install on servers" -Fore Red 172 | Exit 173 | } 174 | } 175 | 176 | function SafetyEXE() { 177 | Write-Host "===== SafetyEXE ===== $(Get-Date)" -Fore "Yellow" 178 | 179 | # Count number of files. Must be 3 for SP2013 (major ver 15) 180 | 181 | # Build CMD 182 | $ver = (Get-SPFarm).BuildVersion.Major 183 | if ($ver -eq 15) { 184 | foreach ($server in $global:servers) { 185 | $addr = $server.Address 186 | $c = (Get-ChildItem "\\$addr\$remoteRoot\media").Count 187 | if ($c -ne 3) { 188 | $halt = $true 189 | Write-Host "HALT - MEDIA ERROR - Expected 3 files on \\$addr\$remoteRoot\media" -Fore Red 190 | } 191 | } 192 | 193 | # Halt 194 | if ($halt) { 195 | Exit 196 | } 197 | } 198 | } 199 | 200 | function RunEXE() { 201 | Write-Host "===== RunEXE ===== $(Get-Date)" -Fore "Yellow" 202 | 203 | # Remove MSPLOG 204 | LoopRemoteCmd "Remove MSPLOG on " "Remove-Item '$logfolder\msp\*MSPLOG*' -Confirm:`$false -ErrorAction SilentlyContinue" 205 | 206 | # Remove MSPLOG 207 | LoopRemoteCmd "Unblock EXE on " "gci '$root\media\*' | Unblock-File -Confirm:`$false -ErrorAction SilentlyContinue" 208 | 209 | # Build CMD 210 | $files = Get-ChildItem "$root\media\*.exe" | Sort-Object Name 211 | foreach ($f in $files) { 212 | # Display patch name 213 | $name = $f.Name 214 | Write-Host $name -Fore Yellow 215 | $patchName = $name.replace(".exe", "") 216 | $cmd = "$root\media\$name" 217 | $params = "/passive /forcerestart /log:""$root\log\msp\$name.log""" 218 | if ($bypass) { 219 | $params += " PACKAGE.BYPASS.DETECTION.CHECK=1" 220 | } 221 | $taskName = "SPPatchify" 222 | 223 | # Loop - Run Task Scheduler 224 | foreach ($server in $global:servers) { 225 | # Local PC - No reboot 226 | $addr = $server.Address 227 | if ($addr -eq $env:computername) { 228 | $params = $params.Replace("forcerestart", "norestart") 229 | } 230 | 231 | # Remove SCHTASK if found 232 | $found = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue -CimSession $addr 233 | if ($found) { 234 | $found | Unregister-ScheduledTask -Confirm:$false -CimSession $addr 235 | } 236 | 237 | # New SCHTASK parameters 238 | $user = "System" 239 | $folder = Split-Path $f 240 | $a = New-ScheduledTaskAction -Execute $cmd -Argument $params -WorkingDirectory $folder -CimSession $addr 241 | $p = New-ScheduledTaskPrincipal -RunLevel Highest -UserId $user -LogonType S4U 242 | 243 | # Create SCHTASK 244 | Write-Host "Register and start SCHTASK - $addr - $cmd" -Fore Green 245 | Register-ScheduledTask -TaskName $taskName -Action $a -Principal $p -CimSession $addr 246 | 247 | # Event log START 248 | New-EventLog -LogName "Application" -Source "SPPatchify" -ComputerName $addr -ErrorAction SilentlyContinue | Out-Null 249 | Write-EventLog -LogName "Application" -Source "SPPatchify" -EntryType Information -Category 1000 -EventId 1000 -Message "START" -ComputerName $addr 250 | Start-ScheduledTask -TaskName $taskName -CimSession $addr 251 | } 252 | 253 | # Watch EXE binary complete 254 | WaitEXE $patchName 255 | } 256 | 257 | # SharePoint 2016 Force Reboot 258 | if ($ver -eq 16) { 259 | foreach ($server in $global:servers) { 260 | $addr = $server.Address 261 | if ($addr -ne $env:computername) { 262 | Write-Host "Reboot $($addr)" -Fore Yellow 263 | Restart-Computer -ComputerName $addr 264 | } 265 | } 266 | } 267 | } 268 | 269 | function WaitEXE($patchName) { 270 | Write-Host "===== WaitEXE ===== $(Get-Date)" -Fore "Yellow" 271 | 272 | # Wait for EXE intialize 273 | Write-Host "Wait 60 sec..." 274 | Start-Sleep 60 275 | 276 | # Watch binary complete 277 | $counter = 0 278 | if ($global:servers) { 279 | foreach ($server in $global:servers) { 280 | # Progress 281 | $addr = $server.Address 282 | $prct = [Math]::Round(($counter / $global:servers.Count) * 100) 283 | if ($prct) { 284 | Write-Progress -Activity "Wait EXE ($prct %) $(Get-Date)" -Status $addr -PercentComplete $prct 285 | } 286 | $counter++ 287 | 288 | # Remote Posh 289 | $attempt = 0 290 | Write-Host "`nEXE monitor started on $addr at $(Get-Date) " -NoNewLine 291 | do { 292 | # Monitor EXE process 293 | $proc = Get-Process -Name $patchName -Computer $addr -ErrorAction SilentlyContinue 294 | Write-Host "." -NoNewLine 295 | Start-Sleep 10 296 | 297 | # Priority (High) from https://gallery.technet.microsoft.com/scriptcenter/Set-the-process-priority-9826a55f 298 | $cmd = "`$proc = Get-Process -Name ""$patchName"" -ErrorAction SilentlyContinue; if (`$proc) { if (`$proc.PriorityClass.ToString() -ne ""High"") {`$proc.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::HIGH}}" 299 | $sb = [Scriptblock]::Create($cmd) 300 | Invoke-Command -Session (Get-PSSession) -ScriptBlock $sb 301 | 302 | # Measure EXE 303 | $proc | Select-Object Id, HandleCount, WorkingSet, PrivateMemorySize 304 | 305 | # Count MSPLOG files 306 | $cmd = "`$f=Get-ChildItem ""$logFolder\*MSPLOG*"";`$c=`$f.count;`$l=(`$f|sort last -desc|select -first 1).LastWriteTime;`$s=`$env:computername;New-Object -TypeName PSObject -Prop (@{""Server""=`$s;""Count""=`$c;""LastWriteTime""=`$l})" 307 | $sb = [Scriptblock]::Create($cmd) 308 | $result = Invoke-Command -Session (Get-PSSession) -ScriptBlock $sb 309 | $progress = "Server: $($result.Server) / MSP Count: $($result.Count) / Last Write: $($result.LastWriteTime)" 310 | Write-Progress $progress 311 | } 312 | while ($proc) 313 | Write-Host $progress 314 | 315 | # Check Schtask Exit Code 316 | Start-Sleep 3 317 | $task = Get-ScheduledTask -TaskName $taskName -CimSession $addr 318 | $info = $task | Get-ScheduledTaskInfo 319 | $exit = $info.LastTaskResult 320 | if ($exit -eq 0) { 321 | Write-Host "EXIT CODE $exit - $taskName" -Fore White -Backgroundcolor Green 322 | } 323 | else { 324 | Write-Host "EXIT CODE $exit - $taskName" -Fore White -Backgroundcolor Red 325 | } 326 | 327 | # Event Log 328 | New-EventLog -LogName "Application" -Source "SPPatchify" -ComputerName $addr -ErrorAction SilentlyContinue | Out-Null 329 | Write-EventLog -LogName "Application" -Source "SPPatchify" -EntryType Information -Category 1000 -EventId 1000 -Message "DONE - Exit Code $exit" -ComputerName $addr 330 | 331 | # Retry Attempt 332 | if ($exit -gt 0) { 333 | # Retry 334 | $attempt++ 335 | if ($attempt -lt $maxattempt) { 336 | # Event log START 337 | New-EventLog -LogName "Application" -Source "SPPatchify" -ComputerName $addr -ErrorAction SilentlyContinue | Out-Null 338 | Write-EventLog -LogName "Application" -Source "SPPatchify" -EntryType Information -Category 1000 -EventId 1000 -Message "RETRY ATTEMPT # $attempt" -ComputerName $addr 339 | 340 | # Run 341 | Write-Host "RETRY ATTEMPT # $attempt of $maxattempt" -Fore White -Backgroundcolor Red 342 | Start-ScheduledTask -TaskName $taskName -CimSession $addr 343 | } 344 | } 345 | } 346 | } 347 | } 348 | 349 | function WaitReboot() { 350 | Write-Host "`n===== WaitReboot ===== $(Get-Date)" -Fore "Yellow" 351 | 352 | # Wait for farm peer machines to reboot 353 | Write-Host "Wait 60 sec..." 354 | Start-Sleep 60 355 | 356 | # Clean up 357 | Get-PSSession | Remove-PSSession -Confirm:$false 358 | 359 | # Verify machines online 360 | $counter = 0 361 | foreach ($server in $global:servers) { 362 | # Progress 363 | $addr = $server.Address 364 | Write-Host $addr -Fore Yellow 365 | if ($addr -ne $env:COMPUTERNAME) { 366 | $prct = [Math]::Round(($counter / $global:servers.Count) * 100) 367 | if ($prct) { 368 | Write-Progress -Activity "Waiting for machine ($prct %) $(Get-Date)" -Status $addr -PercentComplete $prct 369 | } 370 | $counter++ 371 | 372 | # Remote PowerShell session 373 | do { 374 | # Dynamic open PSSession 375 | if ($remoteSessionPort -and $remoteSessionSSL) { 376 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL 377 | } 378 | elseif ($remoteSessionPort) { 379 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort 380 | } 381 | elseif ($remoteSessionSSL) { 382 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL 383 | } 384 | else { 385 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp 386 | } 387 | 388 | 389 | # Display 390 | Write-Host "." -NoNewLine 391 | Start-Sleep 5 392 | } 393 | while (!$remote) 394 | } 395 | } 396 | 397 | # Clean up 398 | Get-PSSession | Remove-PSSession -Confirm:$false 399 | } 400 | 401 | function LocalReboot() { 402 | # Create Regkey 403 | New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\" -Name "RunOnce" -ErrorAction SilentlyContinue | Out-Null 404 | New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce" -Name "SPPatchify" -Value "PowerShell -executionpolicy unrestricted -file ""$root\SPPatchify.ps1"" -PhaseTwo" -ErrorAction SilentlyContinue | Out-Null 405 | 406 | # Reboot 407 | Write-Host "`n ===== REBOOT LOCAL ===== $(Get-Date)" 408 | $th = [Math]::Round(((Get-Date) - $start).TotalHours, 2) 409 | Write-Host "Duration Total Hours: $th" -Fore "Yellow" 410 | Stop-Transcript 411 | Start-Sleep 5 412 | Restart-Computer -Force 413 | Exit 414 | } 415 | function LaunchPhaseThree() { 416 | # Launch script in new windows for Phase Three - Add Content 417 | Start-Process "powershell.exe" -ArgumentList "$root\SPPatchify.ps1 -phaseThree" 418 | } 419 | function CalcDuration() { 420 | Write-Host "===== DONE ===== $(Get-Date)" -Fore "Yellow" 421 | $totalHours = [Math]::Round(((Get-Date) - $start).TotalHours, 2) 422 | Write-Host "Duration Hours: $totalHours" -Fore "Yellow" 423 | $c = (Get-SPContentDatabase).Count 424 | Write-Host "Content Databases Online: $c" 425 | 426 | # Add both Phase one and two 427 | $regHive = "HKCU:\Software" 428 | $regKey = "SPPatchify" 429 | if (!$phaseTwo) { 430 | # Create Regkey 431 | New-Item -Path $regHive -Name "$regKey" -ErrorAction SilentlyContinue | Out-Null 432 | New-ItemProperty -Path "$regHive\$regKey" -Name "PhaseOneTotalHours" -Value $totalHours -ErrorAction SilentlyContinue | Out-Null 433 | } 434 | else { 435 | # Read Regkey 436 | $key = Get-ItemProperty -Path "$regHive\PhaseOneTotalHours" -ErrorAction SilentlyContinue 437 | if ($key) { 438 | $totalHours += [double]($key."PhaseOneTotalHours") 439 | } 440 | Write-Host "TOTAL Hours (Phase One and Two): $totalHours" -Fore "Yellow" 441 | Remove-Item -Path "$regHive\$regKey" -ErrorAction SilentlyContinue | Out-Null 442 | } 443 | } 444 | function FinalCleanUp() { 445 | # Close sessions 446 | Get-PSSession | Remove-PSSession -Confirm:$false 447 | Stop-Transcript 448 | } 449 | #endregion 450 | 451 | #region SP Config Wizard 452 | function LoopRemotePatch($msg, $cmd, $params) { 453 | if (!$cmd) { 454 | return 455 | } 456 | 457 | # Clean up 458 | Get-PSSession | Remove-PSSession -Confirm:$false 459 | 460 | # Loop servers 461 | $counter = 0 462 | foreach ($server in $global:servers) { 463 | # Overwrite restart parameter 464 | $ver = (Get-SPFarm).BuildVersion.Major 465 | $addr = $server.Address 466 | if ($ver -eq 16 -or $env:computername -eq $addr) { 467 | $cmd = $cmd.replace("forcerestart", "norestart") 468 | } 469 | 470 | # Script block 471 | if ($cmd.GetType().Name -eq "String") { 472 | $sb = [ScriptBlock]::Create($cmd) 473 | } 474 | else { 475 | $sb = $cmd 476 | } 477 | 478 | # Progress 479 | $prct = [Math]::Round(($counter / $global:servers.Count) * 100) 480 | if ($prct) { 481 | Write-Progress -Activity $msg -Status "$addr ($prct %) $(Get-Date)" -PercentComplete $prct 482 | } 483 | $counter++ 484 | 485 | # Remote Posh 486 | Write-Host ">> invoke on $addr" -Fore "Green" 487 | 488 | # Dynamic open PSSession 489 | if ($remoteSessionPort -and $remoteSessionSSL) { 490 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL 491 | } 492 | elseif ($remoteSessionPort) { 493 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort 494 | } 495 | elseif ($remoteSessionSSL) { 496 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL 497 | } 498 | else { 499 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp 500 | } 501 | 502 | # Invoke 503 | Start-Sleep 3 504 | foreach ($s in $sb) { 505 | Write-Host $s.ToString() 506 | if ($remote) { 507 | Invoke-Command -Session $remote -ScriptBlock $s 508 | } 509 | } 510 | Write-Host "<< complete on $addr" -Fore "Green" 511 | } 512 | Write-Progress -Activity "Completed $(Get-Date)" -Completed 513 | } 514 | function LoopRemoteCmd($msg, $cmd) { 515 | if (!$cmd) { 516 | return 517 | } 518 | 519 | # Clean up 520 | Get-PSSession | Remove-PSSession -Confirm:$false 521 | 522 | # Loop servers 523 | $counter = 0 524 | foreach ($server in $global:servers) { 525 | Write-Host $server.Address -Fore Yellow 526 | 527 | # Script block 528 | if ($cmd.GetType().Name -eq "String") { 529 | $sb = [ScriptBlock]::Create($cmd) 530 | } 531 | else { 532 | $sb = $cmd 533 | } 534 | 535 | # Progress 536 | $addr = $server.Address 537 | $prct = [Math]::Round(($counter / $global:servers.Count) * 100) 538 | if ($prct) { 539 | Write-Progress -Activity $msg -Status "$addr ($prct %) $(Get-Date)" -PercentComplete $prct 540 | } 541 | $counter++ 542 | 543 | # Remote Posh 544 | Write-Host ">> invoke on $addr" -Fore "Green" 545 | 546 | # Dynamic open PSSesion 547 | if ($remoteSessionPort -and $remoteSessionSSL) { 548 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL 549 | } 550 | elseif ($remoteSessionPort) { 551 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort 552 | } 553 | elseif ($remoteSessionSSL) { 554 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL 555 | } 556 | else { 557 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp 558 | } 559 | 560 | # Merge script block array 561 | $mergeSb = $sb 562 | $mergeCmd = "" 563 | if ($sb -is [array]) { 564 | foreach ($s in $sb) { 565 | $mergeCmd += $s.ToString() + "`n" 566 | } 567 | $mergeSb = [Scriptblock]::Create($mergeCmd) 568 | } 569 | 570 | # Invoke 571 | Start-Sleep 3 572 | if ($remote) { 573 | Write-Host $mergeSb.ToString() 574 | Invoke-Command -Session $remote -ScriptBlock $mergeSb 575 | } 576 | Write-Host "<< complete on $addr" -Fore "Green" 577 | } 578 | Write-Progress -Activity "Completed $(Get-Date)" -Completed 579 | } 580 | 581 | function ChangeDC() { 582 | Write-Host "===== ChangeDC OFF ===== $(Get-Date)" -Fore "Yellow" 583 | 584 | # Distributed Cache 585 | $sb = { 586 | try { 587 | Use-CacheCluster 588 | Get-AFCacheClusterHealth -ErrorAction SilentlyContinue 589 | $computer = [System.Net.Dns]::GetHostByName($env:computername).HostName 590 | $counter = 0 591 | $maxLoops = 60 592 | 593 | $cache = Get-CacheHost | Where-Object { $_.HostName -eq $computer } 594 | if ($cache) { 595 | do { 596 | try { 597 | # Wait for graceful stop 598 | $hostInfo = Stop-CacheHost -Graceful -CachePort 22233 -HostName $computer -ErrorAction SilentlyContinue 599 | Write-Host $computer $hostInfo.Status 600 | Start-Sleep 5 601 | $counter++ 602 | } 603 | catch { 604 | break 605 | } 606 | } 607 | while ($hostInfo -and $hostInfo.Status -ne "Down" -and $counter -lt $maxLoops) 608 | 609 | # Force stop 610 | Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null 611 | Stop-SPDistributedCacheServiceInstance 612 | } 613 | } 614 | catch { 615 | } 616 | } 617 | LoopRemoteCmd "Stop Distributed Cache on " $sb 618 | } 619 | 620 | function ChangeServices($state) { 621 | Write-Host "===== ChangeServices $state ===== $(Get-Date)" -Fore "Yellow" 622 | $ver = (Get-SPFarm).BuildVersion.Major 623 | 624 | # Logic core 625 | if ($state) { 626 | $action = "START" 627 | $sb = { 628 | @("IISADMIN", "W3SVC", "SPAdminV4", "SPTimerV4", "SQLBrowser", "Schedule", "SPInsights", "DocAve 6 Agent Service") | ForEach-Object { 629 | if (Get-Service $_ -ErrorAction SilentlyContinue) { 630 | Set-Service -Name $_ -StartupType Automatic -ErrorAction SilentlyContinue 631 | Start-Service $_ -ErrorAction SilentlyContinue 632 | } 633 | } 634 | @("OSearch$ver", "SPSearchHostController") | ForEach-Object { 635 | Start-Service $_ -ErrorAction SilentlyContinue 636 | } 637 | Start-Process 'iisreset.exe' -ArgumentList '/start' -Wait -PassThru -NoNewWindow | Out-Null 638 | } 639 | } 640 | else { 641 | $action = "STOP" 642 | $sb = { 643 | Start-Process 'iisreset.exe' -ArgumentList '/stop' -Wait -PassThru -NoNewWindow | Out-Null 644 | @("IISADMIN", "W3SVC", "SPAdminV4", "SPTimerV4", "SQLBrowser", "Schedule", "SPInsights", "DocAve 6 Agent Service") | ForEach-Object { 645 | if (Get-Service $_ -ErrorAction SilentlyContinue) { 646 | Set-Service -Name $_ -StartupType Disabled -ErrorAction SilentlyContinue 647 | Stop-Service $_ -ErrorAction SilentlyContinue 648 | } 649 | } 650 | @("OSearch$ver", "SPSearchHostController") | ForEach-Object { 651 | Stop-Service $_ -ErrorAction SilentlyContinue 652 | } 653 | } 654 | } 655 | 656 | # Search Crawler 657 | Write-Host "$action search crawler ..." 658 | try { 659 | $ssa = Get-SPEenterpriseSearchServiceApplication 660 | if ($state) { 661 | $ssa.resume() 662 | } 663 | else { 664 | $ssa.pause() 665 | } 666 | } 667 | catch { 668 | } 669 | 670 | LoopRemoteCmd "$action services on " $sb 671 | } 672 | 673 | function RunConfigWizard() { 674 | Write-Host "===== RunConfigWizard =====" -Fore Yellow 675 | 676 | # Shared 677 | $shared = { 678 | Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null 679 | $ver = (Get-SPFarm).BuildVersion.Major 680 | $psconfig = "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\$ver\BIN\psconfig.exe" 681 | } 682 | 683 | # Save B2B shortcut 684 | $b2b = { 685 | $file = $psconfig.replace("psconfig.exe", "psconfigb2b.cmd") 686 | if (!(Test-Path $file)) { 687 | "psconfig.exe -cmd upgrade -inplace b2b -force" | Out-File $file -Force 688 | } 689 | } 690 | LoopRemoteCmd "Save B2B shortcut on " @($shared, $b2b) 691 | 692 | # Run Config Wizard - https://blogs.technet.microsoft.com/stefan_gossner/2015/08/20/why-i-prefer-psconfigui-exe-over-psconfig-exe/ 693 | $wiz = { 694 | & "$psconfig" -cmd "upgrade" -inplace "b2b" -wait -cmd "applicationcontent" -install -cmd "installfeatures" -cmd "secureresources" -cmd "services" -install 695 | } 696 | LoopRemoteCmd "Run Config Wizard on " @($shared, $wiz) 697 | } 698 | 699 | function ChangeContent($state) { 700 | Write-Host "===== ContentDB $state ===== $(Get-Date)" -Fore "Yellow" 701 | # Display 702 | [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") | Out-Null 703 | $c = (Get-SPContentDatabase).Count 704 | Write-Host "Content Databases Online: $c" 705 | 706 | if (!$state) { 707 | # Remove content 708 | $dbs = Get-SPContentDatabase 709 | if ($dbs) { 710 | $dbs | ForEach-Object { $wa = $_.WebApplication.Url; $_ | Select-Object Name, NormalizedDataSource, @{n = "WebApp"; e = { $wa } } } | Export-Csv "$logFolder\contentdbs-$when.csv" -NoTypeInformation 711 | $dbs | ForEach-Object { 712 | "$($_.Name),$($_.NormalizedDataSource)" 713 | Dismount-SPContentDatabase $_ -Confirm:$false 714 | } 715 | } 716 | } 717 | else { 718 | # Add content 719 | $files = Get-ChildItem "$logFolder\contentdbs-*.csv" | Sort-Object LastAccessTime -Desc 720 | if ($files -is [Array]) { 721 | $files = $files[0] 722 | } 723 | 724 | # Loop databases 725 | if ($files) { 726 | Write-Host "Content DB - Mount from CSV $($files.Fullname)" -Fore Yellow 727 | $dbs = @() 728 | $dbs += Import-Csv $files.Fullname 729 | $counter = 0 730 | if ($dbs) { 731 | $dbs | Where-Object { 732 | $name = $_.Name 733 | $name 734 | 735 | # Progress 736 | $prct = [Math]::Round(($counter / $dbs.Count) * 100) 737 | if ($prct) { 738 | Write-Progress -Activity "Add database" -Status "$name ($prct %) $(Get-Date)" -PercentComplete $prct 739 | } 740 | $counter++ 741 | 742 | $wa = [Microsoft.SharePoint.Administration.SPWebApplication]::Lookup($_.WebApp) 743 | if ($wa) { 744 | Mount-SPContentDatabase -WebApplication $wa -Name $name -DatabaseServer $_.NormalizedDataSource | Out-Null 745 | } 746 | } 747 | } 748 | } 749 | else { 750 | Write-Host "Content DB - CSV not found" -Fore Yellow 751 | } 752 | } 753 | } 754 | #endregion 755 | 756 | #region general 757 | function EnablePSRemoting() { 758 | $ssp = Get-WSManCredSSP 759 | if ($ssp[0] -match "not configured to allow delegating") { 760 | # Enable remote PowerShell over CredSSP authentication 761 | Enable-WSManCredSSP -DelegateComputer * -Role Client -Force 762 | Restart-Service WinRM 763 | } 764 | } 765 | 766 | function ReadIISPW { 767 | Write-Host "===== Read IIS PW ===== $(Get-Date)" -Fore "Yellow" 768 | 769 | # Current user (ex: Farm Account) 770 | $domain = $env:userdomain 771 | $user = $env:username 772 | Write-Host "Logged in as $domain\$user" 773 | 774 | # Start IISAdm` if needed 775 | $iisadmin = Get-Service IISADMIN 776 | if ($iisadmin.Status -ne "Running") { 777 | # Set Automatic and Start 778 | Set-Service -Name IISADMIN -StartupType Automatic -ErrorAction SilentlyContinue 779 | Start-Service IISADMIN -ErrorAction SilentlyContinue 780 | } 781 | 782 | # Attempt to detect password from IIS Pool (if current user is local admin and farm account) 783 | Import-Module WebAdministration -ErrorAction SilentlyContinue | Out-Null 784 | $m = Get-Module WebAdministration 785 | if ($m) { 786 | # PowerShell ver 2.0+ IIS technique 787 | $appPools = Get-ChildItem "IIS:\AppPools\" 788 | foreach ($pool in $appPools) { 789 | if ($pool.processModel.userName -like "*$user") { 790 | Write-Host "Found - "$pool.processModel.userName 791 | $pass = $pool.processModel.password 792 | if ($pass) { 793 | break 794 | } 795 | } 796 | } 797 | } 798 | else { 799 | # PowerShell ver 3.0+ WMI technique 800 | $appPools = Get-CimInstance -Namespace "root/MicrosoftIISv2" -ClassName "IIsApplicationPoolSetting" -Property Name, WAMUserName, WAMUserPass | Select-Object WAMUserName, WAMUserPass 801 | foreach ($pool in $appPools) { 802 | if ($pool.WAMUserName -like "*$user") { 803 | Write-Host "Found - "$pool.WAMUserName 804 | $pass = $pool.WAMUserPass 805 | if ($pass) { 806 | break 807 | } 808 | } 809 | } 810 | } 811 | 812 | # Prompt for password 813 | if (!$pass) { 814 | $sec = Read-Host "Enter password " -AsSecureString 815 | } 816 | else { 817 | $sec = $pass | ConvertTo-SecureString -AsPlainText -Force 818 | } 819 | 820 | # Save global 821 | $global:cred = New-Object System.Management.Automation.PSCredential -ArgumentList "$domain\$user", $sec 822 | } 823 | 824 | function DisplayCA() { 825 | # Version DLL File 826 | $sb = { 827 | Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null; 828 | $ver = (Get-SPFarm).BuildVersion.Major; 829 | [System.Diagnostics.FileVersionInfo]::GetVersionInfo("C:\Program Files\Common Files\microsoft shared\Web Server Extensions\$ver\ISAPI\Microsoft.SharePoint.dll") | Select-Object FileVersion, @{N = 'PC'; E = { $env:computername } } 830 | } 831 | LoopRemoteCmd "Get file version on " $sb 832 | 833 | # Display Version 834 | ShowVersion 835 | 836 | # Open Central Admin 837 | $ca = (Get-SPWebApplication -IncludeCentralAdministration) | Where-Object { $_.IsAdministrationWebApplication -eq $true } 838 | $pages = @("PatchStatus.aspx", "UpgradeStatus.aspx", "FarmServers.aspx") 839 | $pages | ForEach-Object { Start-Process ($ca.Url + "_admin/" + $_) } 840 | } 841 | function ShowVersion() { 842 | # Version Max Patch 843 | $maxv = 0 844 | $f = Get-SPFarm 845 | $p = Get-SPProduct 846 | foreach ($u in $p.PatchableUnitDisplayNames) { 847 | $n = $u 848 | $v = ($p.GetPatchableUnitInfoByDisplayName($n).patches | Sort-Object version -desc)[0].version 849 | if (!$maxv) { 850 | $maxv = $v 851 | } 852 | if ($v -gt $maxv) { 853 | $maxv = $v 854 | } 855 | } 856 | 857 | # Control Panel Add/Remove Programs 858 | 859 | 860 | # IIS UP/DOWN Load Balancer 861 | Write-Host "IIS UP/DOWN Load Balancer" 862 | $coll = @() 863 | $global:servers | ForEach-Object { 864 | try { 865 | $addr = $_.Address; 866 | $root = (Get-Website "Default Web Site").PhysicalPath.ToLower().Replace("%systemdrive%", $env:SystemDrive) 867 | $remoteRoot = "\\$addr\" 868 | $remoteRoot += MakeRemote $root 869 | $status = (Get-Content "$remoteRoot\status.html" -ErrorAction SilentlyContinue)[1]; 870 | $coll += @{"Server" = $addr; "Status" = $status } 871 | } 872 | catch { 873 | # Suppress any error 874 | } 875 | } 876 | $coll | Format-Table -AutoSize 877 | 878 | # Database table 879 | $d = Get-SPWebapplication -IncludeCentralAdministration | Get-SPContentDatabase 880 | $d | Sort-Object NeedsUpgrade, Name | Select-Object NeedsUpgrade, Name | Format-Table -AutoSize 881 | 882 | # Database summary 883 | $d | Group-Object NeedsUpgrade | Format-Table -AutoSize 884 | "---" 885 | 886 | # Server status table 887 | (Get-SPProduct).Servers | Select-Object Servername, InstallStatus -Unique | Group-Object InstallStatus, Servername | Sort-Object Name | Format-Table -AutoSize 888 | 889 | # Server status summary 890 | (Get-SPProduct).Servers | Select-Object Servername, InstallStatus -Unique | Group-Object InstallStatus | Sort-Object Name | Format-Table -AutoSize 891 | 892 | # Display data 893 | if ($maxv -eq $f.BuildVersion) { 894 | Write-Host "Max Product = $maxv" -Fore Green 895 | Write-Host "Farm Build = $($f.BuildVersion)" -Fore Green 896 | } 897 | else { 898 | Write-Host "Max Product = $maxv" -Fore Yellow 899 | Write-Host "Farm Build = $($f.BuildVersion)" -Fore Yellow 900 | } 901 | } 902 | function IISStart() { 903 | # Start IIS pools and sites 904 | $sb = { 905 | Import-Module WebAdministration 906 | 907 | # IISAdmin 908 | $iisadmin = Get-Service "IISADMIN" 909 | if ($iisadmin) { 910 | Set-Service -Name $iisadmin -StartupType Automatic -ErrorAction SilentlyContinue 911 | Start-Service $iisadmin -ErrorAction SilentlyContinue 912 | } 913 | 914 | # W3WP 915 | Start-Service w3svc | Out-Null 916 | Get-ChildItem "IIS:\AppPools\" | ForEach-Object { $n = $_.Name; Start-WebAppPool $n | Out-Null } 917 | Get-WebSite | Start-WebSite | Out-Null 918 | } 919 | LoopRemoteCmd "Start IIS on " $sb 920 | } 921 | 922 | function ProductLocal() { 923 | # Sync local SKU binary to config DB 924 | $sb = { 925 | Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null 926 | Get-SPProduct -Local 927 | } 928 | LoopRemoteCmd "Product local SKU on " $sb 929 | 930 | # Display server upgrade 931 | Write-Host "Farm Servers - Upgrade Status " -Fore "Yellow" 932 | (Get-SPProduct).Servers | Select-Object Servername, InstallStatus | Sort-Object Servername | Format-Table -AutoSize 933 | } 934 | 935 | function UpgradeContent() { 936 | Write-Host "===== Upgrade Content Databases ===== $(Get-Date)" -Fore "Yellow" 937 | 938 | # Tracking table - assign DB to server 939 | $maxWorkers = 4 940 | $track = @() 941 | $dbs = Get-SPContentDatabase 942 | $i = 0 943 | foreach ($db in $dbs) { 944 | # Assign to SPServer 945 | $mod = $i % $global:servers.count 946 | $pc = $global:servers[$mod].Address 947 | 948 | # Collect 949 | $obj = New-Object -TypeName PSObject -Prop (@{"Name" = $db.Name; "Id" = $db.Id; "UpgradePC" = $pc; "JID" = 0; "Status" = "New" }) 950 | $track += $obj 951 | $i++ 952 | } 953 | $track | Format-Table -Auto 954 | 955 | 956 | # Clean up 957 | Get-PSSession | Remove-PSSession -Confirm:$false 958 | Get-Job | Remove-Job 959 | 960 | # Open sessions 961 | foreach ($server in $global:servers) { 962 | $addr = $server.Address 963 | 964 | # Dynamic open PSSesion 965 | if ($remoteSessionPort -and $remoteSessionSSL) { 966 | New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL | Out-Null 967 | } 968 | elseif ($remoteSessionPort) { 969 | New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort | Out-Null 970 | } 971 | elseif ($remoteSessionSSL) { 972 | New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL | Out-Null 973 | } 974 | else { 975 | New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp | Out-Null 976 | } 977 | } 978 | 979 | # Monitor and Run loop 980 | do { 981 | # Get latest PID status 982 | $active = @($track | Where-Object { $_.Status -eq "InProgress" }) 983 | foreach ($db in $active) { 984 | # Monitor remote server job 985 | if ($db.JID) { 986 | $job = Get-Job $db.JID 987 | if ($job.State -eq "Completed") { 988 | # Update DB tracking 989 | $db.Status = "Completed" 990 | } 991 | elseif ($job.State -eq "Failed") { 992 | # Update DB tracking 993 | $db.Status = "Failed" 994 | } 995 | else { 996 | Write-host "-" -NoNewline 997 | } 998 | } 999 | } 1000 | 1001 | # Ensure workers are active 1002 | foreach ($server in $global:servers) { 1003 | # Count active workers per server 1004 | $active = @($track | Where-Object { $_.Status -eq "InProgress" -and $_.UpgradePC -eq $server.Address }) 1005 | if ($active.count -lt $maxWorkers) { 1006 | 1007 | # Choose next available DB 1008 | $avail = $track | Where-Object { $_.Status -eq "New" -and $_.UpgradePC -eq $server.Address } 1009 | if ($avail) { 1010 | if ($avail -is [array]) { 1011 | $row = $avail[0] 1012 | } 1013 | else { 1014 | $row = $avail 1015 | } 1016 | 1017 | # Kick off new worker 1018 | $id = $row.Id 1019 | $name = $row.Name 1020 | $remoteStr = "`$cmd = New-Object System.Diagnostics.ProcessStartInfo; " + 1021 | "`$cmd.FileName = 'powershell.exe'; " + 1022 | "`$internal = Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue | Out-Null; Upgrade-SPContentDatabase -Id $id -Confirm:`$false; " + 1023 | "`$cmd.Arguments = '-NoProfile -Command ""$internal""'; " + 1024 | "[System.Diagnostics.Process]::Start(`$cmd);" 1025 | 1026 | # Run on remote server 1027 | $remoteCmd = [Scriptblock]::Create($remoteStr) 1028 | $pc = $server.Address 1029 | Write-Host $pc -Fore "Green" 1030 | Get-PSSession | Format-Table -AutoSize 1031 | $session = Get-PSSession | Where-Object { $_.ComputerName -like "$pc*" } 1032 | if (!$session) { 1033 | # Dynamic open PSSession 1034 | if ($remoteSessionPort -and $remoteSessionSSL) { 1035 | $session = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL 1036 | } 1037 | elseif ($remoteSessionPort) { 1038 | $session = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort 1039 | } 1040 | elseif ($remoteSessionSSL) { 1041 | $session = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL 1042 | } 1043 | else { 1044 | $session = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp 1045 | } 1046 | } 1047 | $result = Invoke-Command $remoteCmd -Session $session -AsJob 1048 | 1049 | # Update DB tracking 1050 | $row.JID = $result.Id 1051 | $row.Status = "InProgress" 1052 | } 1053 | 1054 | # Progress 1055 | $prct = 0 1056 | if ($track) { 1057 | $prct = [Math]::Round(($counter / $track.Count) * 100) 1058 | } 1059 | if ($prct) { 1060 | Write-Progress -Activity "Upgrade database" -Status "$name ($prct %) $(Get-Date)" -PercentComplete $prct 1061 | } 1062 | $track | Format-Table -AutoSize 1063 | } 1064 | } 1065 | 1066 | # Latest counter 1067 | $remain = @($track | Where-Object { $_.status -ne "Completed" -and $_.status -ne "Failed" }) 1068 | } 1069 | while ($remain) 1070 | Write-Host "===== Upgrade Content Databases DONE ===== $(Get-Date)" 1071 | $track | Group-Object status | Format-Table -AutoSize 1072 | $track | Format-Table -AutoSize 1073 | 1074 | # GUI 1075 | $msg = "Upgrade Content DB Complete (100 %)" 1076 | 1077 | # Clean up 1078 | Get-PSSession | Remove-PSSession -Confirm:$false 1079 | Get-Job | Remove-Job 1080 | } 1081 | 1082 | function ShowMenu($prod) { 1083 | # Choices 1084 | $csv = Import-Csv "$root\SPPatchify-Download-CU.csv" | Select-Object -Property @{n = 'MonthInt'; e = { [int]$_.Month } }, * 1085 | $choices = $csv | Where-Object { $_.Product -eq $prod } | Sort-Object Year, MonthInt -Desc | Select-Object Year, Month -Unique 1086 | 1087 | # Menu 1088 | Write-Host "Download CU Media to \media\ - $prod" -Fore "Yellow" 1089 | Write-Host "---------" 1090 | $menu = @() 1091 | $i = 0 1092 | $choices | ForEach-Object { 1093 | $n = (getMonth($_.Month)) + " " + ($_.Year) 1094 | $menu += $n 1095 | if ($i -eq 0) { 1096 | $default = $n 1097 | $n += "[default] <==" 1098 | Write-Host "$i $n" -Fore "Green" 1099 | } 1100 | else { 1101 | Write-Host "$i $n" 1102 | } 1103 | $i++ 1104 | } 1105 | 1106 | # Return 1107 | $sel = Read-Host "Select month. Press [enter] for default" 1108 | if (!$sel) { 1109 | $sel = $default 1110 | } 1111 | else { 1112 | $sel = $menu[$sel] 1113 | } 1114 | $global:selmonth = $sel 1115 | } 1116 | 1117 | function GetMonth($mo) { 1118 | # Convert integer to three letter month name 1119 | try { 1120 | $mo = (Get-Culture).DateTimeFormat.GetAbbreviatedMonthName($mo) 1121 | } 1122 | catch { 1123 | return $mo 1124 | } 1125 | return $mo 1126 | } 1127 | 1128 | function GetMonthInt($name) { 1129 | # Convert three letter month name to integer 1130 | $found = $false 1131 | 1 .. 12 | ForEach-Object { 1132 | if ($name -eq (Get-Culture).DateTimeFormat.GetAbbreviatedMonthName($_)) { 1133 | $found = $true 1134 | return $_ 1135 | } 1136 | } 1137 | if (!$found) { return $name } 1138 | } 1139 | function PatchRemoval() { 1140 | # Remove patch media 1141 | $files = Get-ChildItem "$root\media\*.exe" -ErrorAction SilentlyContinue | Out-Null 1142 | $files | Format-Table -AutoSize 1143 | $files | Remove-Item -Confirm:$false -Force 1144 | } 1145 | function PatchMenu() { 1146 | # Ensure folder 1147 | mkdir "$root\media" -ErrorAction SilentlyContinue | Out-Null 1148 | 1149 | # Skip if we already have media 1150 | $files = Get-ChildItem "$root\media\*.exe" 1151 | if ($files) { 1152 | Write-Host "Using EXE found in \media\.`nTo trigger download GUI first delete \media\ folder and run script again." 1153 | $files | Format-Table -Auto 1154 | Return 1155 | } 1156 | 1157 | # Download CSV of patch URLs 1158 | $source = "https://raw.githubusercontent.com/spjeff/sppatchify/master/SPPatchify-Download-CU.csv" 1159 | $local = "$root\SPPatchify-Download-CU.csv" 1160 | $wc = New-Object System.Net.Webclient 1161 | $dest = $local.Replace(".csv", "-temp.csv") 1162 | $wc.DownloadFile($source, $dest) 1163 | 1164 | # Overwrite if downloaded OK 1165 | if (Test-Path $dest) { 1166 | Copy-Item $dest $local -Force 1167 | Remove-Item $dest 1168 | } 1169 | $csv = Import-Csv $local 1170 | 1171 | # SKU - SharePoint or Project? 1172 | $sku = "SP" 1173 | $ver = "15" 1174 | if ($downloadVersion) { 1175 | $ver = $downloadVersion 1176 | } 1177 | if (Get-Command Get-SPFarm -ErrorAction SilentlyContinue) { 1178 | # Local farm 1179 | $farm = Get-SPFarm -ErrorAction SilentlyContinue 1180 | if ($farm) { 1181 | $ver = $farm.BuildVersion.Major 1182 | $sppl = (Get-SPProduct -Local) | Where-Object { $_.ProductName -like "*Microsoft Project*" } 1183 | if ($sppl) { 1184 | if ($ver -ne 16) { 1185 | $sku = "PROJ" 1186 | } 1187 | } 1188 | } 1189 | else { 1190 | # Detect binary folder - fallback if not joined to farm 1191 | $detect16 = Get-ChildItem "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16" 1192 | if ($detect16) { 1193 | $ver = "16" 1194 | } 1195 | } 1196 | } 1197 | 1198 | # Product and menu 1199 | $prod = "$sku$ver" 1200 | Write-Host "Product = $prod" 1201 | ShowMenu $prod 1202 | 1203 | # Filter CSV for selected CU month 1204 | Write-Host "SELECTED = $($global:selmonth)" -Fore "Yellow" 1205 | $year = $global:selmonth.Split(" ")[1] 1206 | $month = GetMonthInt $global:selmonth.Split(" ")[0] 1207 | Write-Host "$year-$month-$sku$ver" 1208 | $patchFiles = $csv | Where-Object { $_.Year -eq $year -and $_.Month -eq $month -and $_.Product -eq "$sku$ver" } 1209 | $patchFiles | Format-Table -Auto 1210 | 1211 | # Download patch files 1212 | $bits = (Get-Command Start-BitsTransfer -ErrorAction SilentlyContinue) 1213 | foreach ($file in $patchFiles) { 1214 | # Parameters 1215 | $splits = $file.URL.Split("/") 1216 | $name = $splits[$splits.Count - 1] 1217 | $dest = "$root\media\$name" 1218 | 1219 | # Download file if missing 1220 | if (Test-Path $dest) { 1221 | Write-Host "Found $name" 1222 | } 1223 | else { 1224 | Write-Host "Downloading $name" 1225 | if ($bits) { 1226 | # pefer BITS 1227 | Write-Host "BITS $dest" 1228 | Start-BitsTransfer -Source $file.URL -Destination $dest 1229 | } 1230 | else { 1231 | # Dot Net 1232 | Write-Host "WebClient $dest" 1233 | (New-Object System.Net.WebClient).DownloadFile($file.URL, $dest) 1234 | } 1235 | } 1236 | } 1237 | 1238 | # Halt if Farm is PROJ and media is not 1239 | $files = Get-ChildItem "$root\media\*prj*.exe" 1240 | if ($sku -eq "PROJ" -and !$files) { 1241 | Write-Host "HALT - have Project Server farm and \media\ folder missing PRJ. Download correct media and try again." -Fore Red 1242 | Stop-Transcript 1243 | Exit 1244 | } 1245 | 1246 | # Halt if have multiple EXE and not SP2016 1247 | $files = Get-ChildItem "$root\media\*.exe" 1248 | if ($files -is [System.Array] -and $ver -ne 16) { 1249 | # HALT - multiple EXE found - require clean up before continuing 1250 | $files | Format-Table -AutoSize 1251 | Write-Host "HALT - Multiple EXEs found. Clean up \media\ folder and try again." -Fore Red 1252 | Stop-Transcript 1253 | Exit 1254 | } 1255 | } 1256 | 1257 | function DetectAdmin() { 1258 | # Are we running as local Administrator 1259 | $wid = [System.Security.Principal.WindowsIdentity]::GetCurrent() 1260 | $prp = New-Object System.Security.Principal.WindowsPrincipal($wid) 1261 | $adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator 1262 | $IsAdmin = $prp.IsInRole($adm) 1263 | if (!$IsAdmin) { 1264 | (Get-Host).UI.RawUI.Backgroundcolor = "DarkRed" 1265 | Clear-Host 1266 | Write-Host "===== SPPatchify - Not Running as Administrator =====`nStarting an elevated PowerShell window...`n" 1267 | $arguments = "& '" + $rootCmd + "' -phaseTwo" 1268 | $arguments 1269 | Start-Process powershell -Verb runAs -ArgumentList $arguments 1270 | Break 1271 | } 1272 | } 1273 | 1274 | function SaveServiceInst() { 1275 | # Save config to CSV 1276 | $sos = Get-SPServiceInstance | Where-Object { $_.Status -eq "Online" } | Select-Object Id, TypeName, @{n = "Server"; e = { $_.Server.Address } } 1277 | $sos | Export-Csv "$logFolder\sos-before-$when.csv" -Force -NoTypeInformation 1278 | } 1279 | 1280 | function StartServiceInst() { 1281 | # Restore config from CSV 1282 | $files = Get-ChildItem "$logFolder\sos-before-*.csv" | Sort-Object LastWriteTime -Descending 1283 | $sos = Import-Csv $files[0].FullName 1284 | if ($sos) { 1285 | foreach ($row in $sos) { 1286 | $si = Get-SPServiceInstance $row.Id 1287 | if ($si) { 1288 | if ($si.Status -ne "Online") { 1289 | $row | Format-Table -AutoSize 1290 | Write-Host "Starting ... " -Fore Green 1291 | if ($si.TypeName -ne "User Profile Synchronization Service") { 1292 | # UPS needs password input to start via Central Admin GUI 1293 | $si.Provision() 1294 | } 1295 | if ($si.TypeName -eq "Distributed Cache") { 1296 | # Special command to initialize 1297 | Add-SPDistributedCacheServiceInstance 1298 | $si.Provision() 1299 | } 1300 | Write-Host "OK" 1301 | } 1302 | } 1303 | } 1304 | } 1305 | } 1306 | #endregion 1307 | 1308 | function VerifyRemotePS() { 1309 | try { 1310 | Write-Host "Test Remote PowerShell " -Fore Green 1311 | # Loop servers 1312 | foreach ($server in $global:servers) { 1313 | $addr = $server.Address 1314 | if ($addr -ne $env:computername) { 1315 | # Dynamic open PSSession 1316 | if ($remoteSessionPort -and $remoteSessionSSL) { 1317 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort -UseSSL 1318 | } 1319 | elseif ($remoteSessionPort) { 1320 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -Port $remoteSessionPort 1321 | } 1322 | elseif ($remoteSessionSSL) { 1323 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp -UseSSL 1324 | } 1325 | else { 1326 | $remote = New-PSSession -ComputerName $addr -Credential $global:cred -Authentication Credssp 1327 | } 1328 | } 1329 | } 1330 | Write-Host "Succeess" -Fore Green 1331 | return $true 1332 | } 1333 | catch { 1334 | throw 'ERROR - Not able to connect to one or more computers in the farm. Please make sure you have run [Enable-PSRemoting] and [Enable-WSManCredSSP -Role Server]' 1335 | } 1336 | } 1337 | 1338 | function ClearCacheIni() { 1339 | Write-Host "Clear CACHE.INI " -Fore Green 1340 | 1341 | # Stop the SharePoint Timer Service on each server in the farm 1342 | Write-Host "Change SPTimer to OFF" -Fore Green 1343 | ChangeSPTimer $false 1344 | 1345 | # Delete all xml files from cache config folder on each server in the farm 1346 | Write-Host "Clear XML cache" 1347 | DeleteXmlCache 1348 | 1349 | # Start the SharePoint Timer Service on each server in the farm 1350 | Write-Host "Change SPTimer to ON" -Fore Red 1351 | ChangeSPTimer $true 1352 | Write-Host "Succeess" -Fore Green 1353 | } 1354 | 1355 | # Stops the SharePoint Timer Service on each server in the SharePoint Farm. 1356 | function ChangeSPTimer($state) { 1357 | # Constants 1358 | $timer = "SPTimerV4" 1359 | $timerInstance = "Microsoft SharePoint Foundation Timer" 1360 | 1361 | # Iterate through each server in the farm, and each service in each server 1362 | foreach ($server in $global:servers) { 1363 | foreach ($instance in $server.ServiceInstances) { 1364 | # If the server has the timer service then stop the service 1365 | if ($instance.TypeName -eq $timerInstance) { 1366 | # Display 1367 | $addr = $server.Address 1368 | if ($state) { 1369 | $change = "Running" 1370 | } 1371 | else { 1372 | $change = "Stopped" 1373 | } 1374 | 1375 | Write-Host -Foregroundcolor DarkGray -NoNewline "$timer service on server: " 1376 | Write-Host -Foregroundcolor Gray $addr 1377 | 1378 | # Change 1379 | $svc = Get-Service -ComputerName $addr -Name $timer 1380 | $svc | Set-Service -StartupType Automatic 1381 | if ($state) { 1382 | $svc | Start-Service 1383 | } 1384 | else { 1385 | $svc | Stop-Service 1386 | } 1387 | 1388 | # Wait for service stop/start 1389 | WaitSPTimer $addr $timer $change $state 1390 | break; 1391 | } 1392 | } 1393 | } 1394 | } 1395 | 1396 | 1397 | # Waits for the service on the server to reach the required service state. 1398 | function WaitSPTimer($addr, $service, $change, $state) { 1399 | Write-Host -foregroundcolor DarkGray -NoNewLine "Waiting for $service to change to $change on server $addr" 1400 | 1401 | do { 1402 | # Display 1403 | Start-Sleep 3 1404 | Write-Host -Foregroundcolor DarkGray -NoNewLine "." 1405 | 1406 | # Get Service 1407 | $svc = Get-Service -ComputerName $addr -Name $timer 1408 | 1409 | # Modify Service 1410 | $svc | Set-Service -StartupType Automatic 1411 | if ($state) { 1412 | $svc | Start-Service 1413 | } 1414 | else { 1415 | $svc | Stop-Service 1416 | } 1417 | } 1418 | while ($svc.Status -ne $change) 1419 | Write-Host -Foregroundcolor DarkGray -NoNewLine " Service is " 1420 | Write-Host -Foregroundcolor Gray $change 1421 | } 1422 | 1423 | 1424 | # Removes all xml files recursive on an UNC path 1425 | function DeleteXmlCache() { 1426 | Write-Host -foregroundcolor DarkGray "Delete xml files" 1427 | 1428 | # Iterate through each server in the farm, and each service in each server 1429 | foreach ($server in $global:servers) { 1430 | foreach ($instance in $server.ServiceInstances) { 1431 | # If the server has the timer service delete the XML files from the config cache 1432 | if ($instance.TypeName -eq $timerServiceInstanceName) { 1433 | [string]$serverName = $server.Name 1434 | 1435 | Write-Host -foregroundcolor DarkGray -NoNewline "Deleting xml files from config cache on server: $serverName" 1436 | Write-Host -foregroundcolor Gray $serverName 1437 | 1438 | # Remove all xml files recursive on an UNC path 1439 | $path = "\\" + $serverName + "\c$\ProgramData\Microsoft\SharePoint\Config\*-*\*.xml" 1440 | Remove-Item -path $path -Force 1441 | 1442 | # 1 = refresh all cache settings 1443 | $path = "\\" + $serverName + "\c$\ProgramData\Microsoft\SharePoint\Config\*-*\cache.ini" 1444 | Set-Content -path $path -Value "1" 1445 | 1446 | break 1447 | } 1448 | } 1449 | } 1450 | } 1451 | 1452 | function TestRemotePS() { 1453 | # Prepare 1454 | Get-PSSession | Remove-PSSession -Confirm:$false 1455 | ReadIISPW 1456 | 1457 | # Connect 1458 | foreach ($f in $global:servers) { 1459 | New-PSSession -ComputerName $f.Address -Authentication Credssp -Credential $global:cred 1460 | } 1461 | 1462 | # WMI Uptime 1463 | $sb = { 1464 | $wmi = Get-WmiObject -Class Win32_OperatingSystem; 1465 | $t = $wmi.ConvertToDateTime($wmi.LocalDateTime) – $wmi.ConvertToDateTime($wmi.LastBootUpTime); 1466 | $t | Select-Object Days, Hours, Minutes 1467 | } 1468 | Invoke-Command -Session (Get-PSSession) -ScriptBlock $sb | Format-Table -AutoSize 1469 | 1470 | # Display 1471 | Get-PSSession | Format-Table -AutoSize 1472 | if ($global:servers.Count -eq (Get-PSSession).Count) { 1473 | $color = "Green" 1474 | } 1475 | else { 1476 | $color = "Red" 1477 | } 1478 | Write-Host "Farm Servers : $($global:servers.Count)" -Fore $color 1479 | Write-Host "Sessions : $((Get-PSSession).Count)" -Fore $color 1480 | } 1481 | 1482 | function VerifyWMIUptime() { 1483 | # WMI Uptime 1484 | $sb = { 1485 | $wmi = Get-WmiObject -Class Win32_OperatingSystem; 1486 | $t = $wmi.ConvertToDateTime($wmi.LocalDateTime) – $wmi.ConvertToDateTime($wmi.LastBootUpTime); 1487 | $t; 1488 | } 1489 | $result = Invoke-Command -Session (Get-PSSession) -ScriptBlock $sb 1490 | 1491 | # Compare threshold and suggest reboot 1492 | $warn = 0 1493 | foreach ($r in $result) { 1494 | $TotalMinutes = [int]$r.TotalMinutes 1495 | if ($TotalMinutes -gt $maxrebootminutes) { 1496 | Write-Host "WARNING - Last reboot was $TotalMinutes minutes ago for $($r.PSComputerName)" -Fore Black -Backgroundcolor Yellow 1497 | $warn++ 1498 | } 1499 | } 1500 | 1501 | # Suggest reboot 1502 | if ($warn) { 1503 | # Prompt user 1504 | $Readhost = Read-Host "Do you want to reboot above servers? [Type R to Reboot. Anything else to continue.]" 1505 | if ($ReadHost -like 'R*') { 1506 | # Reboot all 1507 | Get-PSSession | Format-Table -Auto 1508 | Write-Host "Rebooting above servers ... " 1509 | $sb = { Restart-Computer -Force } 1510 | Invoke-Command -ScriptBlock $sb -Session (Get-PSSession) 1511 | } 1512 | } 1513 | } 1514 | 1515 | function MountContentDatabases() { 1516 | $csv = Import-Csv $mount 1517 | foreach ($row in $csv) { 1518 | # Mount CDB 1519 | Write-Host "Mount " $row.Name "," $row.NormalizedDataSource "," $row.WebApp -Fore "Yellow" 1520 | $wa = Get-SPWebApplication $row.WebApp 1521 | Mount-SPContentDatabase -WebApplication $wa -Name $row.Name -DatabaseServer $row.NormalizedDataSource 1522 | } 1523 | } 1524 | 1525 | function AppOffline ($state) { 1526 | # Deploy App_Offline.ht to peer IIS instances across the farm 1527 | $ao = "app_offline.htm" 1528 | $folders = Get-SPWebApplication | ForEach-Object { $_.IIsSettings[0].Path.FullName } 1529 | # Start Jobs 1530 | foreach ($server in $global:servers) { 1531 | $addr = $server.Address 1532 | if ($addr -ne $env:computername) { 1533 | foreach ($f in $folders) { 1534 | # IIS Home Folders 1535 | $remoteRoot = MakeRemote $f 1536 | if ($state) { 1537 | # Install by HTM file copy 1538 | # Dynamic command 1539 | $dest = "\\$addr\$remoteroot\app_offline.htm" 1540 | Write-Host "Copying $ao to $dest" -Fore Yellow 1541 | ROBOCOPY $ao $dest /Z /MIR /W:0 /R:0 1542 | } 1543 | else { 1544 | # Uinstall by HTM file delete 1545 | # Dynamic command 1546 | $dest = "\\$addr\$remoteroot\app_offline.htm" 1547 | Write-Host "Deleting $ao to $dest" -Fore Yellow 1548 | Remove-ChildItem $dest -Confirm:$false 1549 | } 1550 | } 1551 | } 1552 | } 1553 | } 1554 | 1555 | function Main() { 1556 | # Clean up 1557 | Get-PSSession | Remove-PSSession -Confirm:$false 1558 | 1559 | # Local farm servers 1560 | $global:servers = Get-SPServer | Where-Object { $_.Role -ne "Invalid" } | Sort-Object Address 1561 | $remoteRoot = MakeRemote $root 1562 | 1563 | # List - Target servers 1564 | if ($targetServers) { 1565 | $global:servers = Get-SPServer | Where-Object { $targetServers -contains $_.Name } | Sort-Object Address 1566 | } 1567 | Write-Host "Servers Online: $($global:servers.Count)" 1568 | 1569 | # Save Service Instance 1570 | if ($saveServiceInstance) { 1571 | SaveServiceInst 1572 | Exit 1573 | } 1574 | 1575 | # Run SPPL to detect new binary patches 1576 | if ($productlocal) { 1577 | TestRemotePS 1578 | LoopRemoteCmd "Add-PSSnapIn Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue; Get-SPProduct -Local" 1579 | Exit 1580 | } 1581 | 1582 | # Test PowerShell 1583 | if ($testRemotePS) { 1584 | TestRemotePS 1585 | Exit 1586 | } 1587 | 1588 | # Download media 1589 | if ($downloadMediaOnly) { 1590 | PatchRemoval 1591 | PatchMenu 1592 | Exit 1593 | } 1594 | 1595 | # Display version 1596 | if ($showVersion) { 1597 | ShowVersion 1598 | Exit 1599 | } 1600 | 1601 | # Mount Databases 1602 | if ($mount) { 1603 | MountContentDatabases 1604 | Exit 1605 | } 1606 | 1607 | # Change Services 1608 | if ($changeServices.ToUpper() -eq "TRUE") { 1609 | changeServices $true 1610 | Exit 1611 | } 1612 | if ($changeServices.ToUpper() -eq "FALSE") { 1613 | changeServices $false 1614 | Exit 1615 | } 1616 | 1617 | # Install App_Offline 1618 | if ($appOffline.ToUpper() -eq "TRUE") { 1619 | AppOffline $true 1620 | Exit 1621 | } 1622 | if ($appOffline.ToUpper() -eq "FALSE") { 1623 | AppOffline $false 1624 | Exit 1625 | } 1626 | 1627 | # Start LOG 1628 | $start = Get-Date 1629 | $when = $start.ToString("yyyy-MM-dd-hh-mm-ss") 1630 | $logFile = "$logFolder\SPPatchify-$when.txt" 1631 | mkdir "$logFolder" -ErrorAction SilentlyContinue | Out-Null 1632 | mkdir "$logFolder\msp" -ErrorAction SilentlyContinue | Out-Null 1633 | Start-Transcript $logFile 1634 | 1635 | # Version 1636 | "SPPatchify version 0.150 last modified 01-03-2020" 1637 | 1638 | # Parameters 1639 | $msg = "=== PARAMS === $(Get-Date)" 1640 | $msg += "download = $downloadMediaOnly" 1641 | $msg += "copy = $copyMediaOnly" 1642 | $msg += "version = $showVersion" 1643 | $msg += "phaseTwo = $phaseTwo" 1644 | Write-Host "Content Databases Online: $((Get-SPContentDatabase).Count)" 1645 | 1646 | # Halt if no servers detected 1647 | if (($global:servers).Count -eq 0) { 1648 | Write-Host "HALT - POWERSHELL ERROR - No SharePoint servers detected. Close this window and run from new window." -Fore Red 1649 | Exit 1650 | } 1651 | 1652 | # Read IIS Password 1653 | ReadIISPW 1654 | 1655 | # Verify Remote PowerShell 1656 | if (-not (VerifyRemotePS)) { 1657 | return 1658 | } 1659 | 1660 | # WMI Uptime 1661 | VerifyWMIUptime 1662 | 1663 | # Prepare \LOG\ folder 1664 | LoopRemoteCmd "Create log directory on" "mkdir '$logFolder' -ErrorAction SilentlyContinue | Out-Null" 1665 | LoopRemoteCmd "Create log directory on" "mkdir '$logFolder\msp' -ErrorAction SilentlyContinue | Out-Null" 1666 | 1667 | # Core steps 1668 | if (!$phaseTwo -and !$phaseThree) { 1669 | if ($copyMediaOnly) { 1670 | # Copy media only (switch -C) 1671 | CopyEXE "Copy" 1672 | } 1673 | else { 1674 | # Phase One - Binary EXE. Quick mode EXE only. 1675 | if ($quick) { 1676 | RunEXE 1677 | WaitReboot 1678 | } 1679 | else { 1680 | PatchMenu 1681 | EnablePSRemoting 1682 | ClearCacheIni 1683 | CopyEXE "Copy" 1684 | SafetyEXE 1685 | SaveServiceInst 1686 | ChangeServices $true 1687 | if (!$skipProductLocal) { 1688 | ProductLocal 1689 | } 1690 | ChangeDC 1691 | ChangeServices $false 1692 | IISStart 1693 | RunEXE 1694 | WaitReboot 1695 | } 1696 | if (!$skipProductLocal) { 1697 | ProductLocal 1698 | } 1699 | if (!$phaseOneBinary) { 1700 | # Reboot and queue Phase two 1701 | LocalReboot 1702 | } 1703 | } 1704 | } 1705 | # Phase Two - SP Config Wizard 1706 | if ($phaseTwo) { 1707 | SafetyInstallRequired 1708 | DetectAdmin 1709 | if (!$onlineContent) { 1710 | ChangeContent $false 1711 | } 1712 | ChangeServices $true 1713 | if (!$skipProductLocal) { 1714 | ProductLocal 1715 | } 1716 | RunConfigWizard 1717 | # Content Online 1718 | if (!$onlineContent) { 1719 | ChangeContent $true 1720 | } 1721 | # Launch new window - Phase Three 1722 | LaunchPhaseThree 1723 | } 1724 | # Phase Three - Add Content 1725 | if ($phaseThree) { 1726 | if (!$onlineContent) { 1727 | ChangeContent $true 1728 | } 1729 | UpgradeContent 1730 | IISStart 1731 | StartServiceInst 1732 | DisplayCA 1733 | } 1734 | 1735 | # Calculate Duration and Run Cleanup 1736 | CalcDuration 1737 | FinalCleanUp 1738 | Write-Host "DONE" 1739 | } 1740 | Main -------------------------------------------------------------------------------- /app_offline.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | Down for Maintenance 9 | 125 | 126 | 127 | 128 |
 
129 |
130 | 131 |
132 |
133 | 134 |
135 | 136 | 138 | 139 | 140 |

Down for maintenance

141 | 142 |

143 | We're currently undergoing scheduled maintenance. Please check back in one hour. 144 |
145 | Thank you for your patience. 146 |

147 | 148 |
149 |
150 |
151 |
152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /doc/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/1.png -------------------------------------------------------------------------------- /doc/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/10.png -------------------------------------------------------------------------------- /doc/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/2.png -------------------------------------------------------------------------------- /doc/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/3.png -------------------------------------------------------------------------------- /doc/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/4.png -------------------------------------------------------------------------------- /doc/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/5.png -------------------------------------------------------------------------------- /doc/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/6.png -------------------------------------------------------------------------------- /doc/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/7.png -------------------------------------------------------------------------------- /doc/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/8.png -------------------------------------------------------------------------------- /doc/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/9.png -------------------------------------------------------------------------------- /doc/Harley Davidson Rider.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/Harley Davidson Rider.jpg -------------------------------------------------------------------------------- /doc/SPPatchify.vsdx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/SPPatchify.vsdx -------------------------------------------------------------------------------- /doc/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/download.png -------------------------------------------------------------------------------- /doc/download.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spjeff/sppatchify/661534ebfb1671cfd8500a9d1ad0bd787241473e/doc/download.xlsx --------------------------------------------------------------------------------