#Requires -Version 5.1 <# JbTecWiz Support Centre -- generated fix script Fault : AutoSave is greyed out, or saving fails with "Upload Failed" Fix : Rescue the work first, then resolve the conflict Source: https://jbtecwiz.com/support/win-office-autosave-upload Run as : The Office application Expect : 20 minutes Risk : low Reversible : yes WHEN THIS IS THE RIGHT FIX Always do this before anything else. Everything below risks the unsaved changes that are sitting in the open window. HOW TO UNDO IT The local copy is the rollback -- keep it until the version in the service is confirmed correct. This script walks the fix one step at a time and asks before each one. Steps with no command are things you do yourself -- it prints those and waits. Run with -DryRun to print without executing. #> [CmdletBinding()] param( # Print every step and command without running anything. [switch]$DryRun, # Do not ask before each step. Read the script first if you use this. [switch]$Unattended ) $ErrorActionPreference = 'Stop' $script:Failed = 0 function Write-Rule { param([string]$Text) Write-Host '' Write-Host ('-' * 70) -ForegroundColor DarkGray if ($Text) { Write-Host $Text -ForegroundColor Cyan } } function Show-Prose { param([string]$Text, [string]$Colour = "Gray") if (-not $Text) { return } $words = $Text -split "\s+"; $line = " " foreach ($w in $words) { if (($line.Length + $w.Length) -gt 74) { Write-Host $line -ForegroundColor $Colour; $line = " " } $line += "$w " } if ($line.Trim()) { Write-Host $line -ForegroundColor $Colour } } function Invoke-Step { param( [int]$Number, [string]$Do, [string]$Why, [scriptblock]$Command, [switch]$Manual, [string]$Shell = "powershell" ) Write-Rule " Step $Number of 5" Show-Prose $Do "White" if ($Why) { Write-Host ""; Show-Prose $Why "DarkGray" } if ($Manual) { Write-Host '' Write-Host ' -> Do this yourself, then press Enter to carry on.' -ForegroundColor Yellow if (-not $Unattended -and -not $DryRun) { [void](Read-Host) } return } Write-Host '' foreach ($l in ($Command.ToString().Trim() -split "`n")) { Write-Host (" " + $l.Trim()) -ForegroundColor Green } Write-Host '' if ($DryRun) { Write-Host " (dry run -- not executed)" -ForegroundColor DarkGray; return } if (-not $Unattended) { $a = Read-Host " Run this step? [Y]es / [S]kip / [Q]uit" if ($a -match "^[Qq]") { Write-Host " Stopped at your request."; exit 0 } if ($a -match "^[Ss]") { Write-Host " Skipped." -ForegroundColor DarkGray; return } } try { & $Command } catch { $script:Failed++ Write-Host (" Step $Number failed: " + $_.Exception.Message) -ForegroundColor Red Show-Prose "The rest of the fix may depend on this. Read the write-up before carrying on." "Red" if (-not $Unattended) { $c = Read-Host " Carry on anyway? [y/N]" if ($c -notmatch "^[Yy]") { exit 1 } } } } Write-Rule Write-Host ' AutoSave is greyed out, or saving fails with "Upload Failed"' -ForegroundColor White Write-Host ' Rescue the work first, then resolve the conflict' -ForegroundColor Cyan Write-Host '' Write-Host ' Risk: low Reversible 20 minutes' Write-Rule if (-not $Unattended -and -not $DryRun) { $go = Read-Host ' Ready? [y/N]' if ($go -notmatch "^[Yy]") { Write-Host " Nothing was changed."; exit 0 } } Invoke-Step -Number 1 -Do 'Do not close the document, and do not restart anything. The only copy of the unsaved work is in memory in that window.' -Manual Invoke-Step -Number 2 -Do 'Use Save a Copy, or File -> Save As, and write the file to the local disk with a new name -- the desktop is fine.' -Why 'This is the single most important step on this page. Every other fix here involves closing the file or signing out, and any of them will discard the changes if they have not been written somewhere first.' -Manual Invoke-Step -Number 3 -Do 'Confirm the local copy opens and contains the work before going any further.' -Command { Get-ChildItem "$env:USERPROFILE\Desktop" -Filter '*.docx' | Sort-Object LastWriteTime -Descending | Select-Object -First 3 Name, LastWriteTime, Length } Invoke-Step -Number 4 -Do 'If a conflict pane is showing, work through it -- it shows your version against the server version and lets you choose per change. Resolve it before saving.' -Manual Invoke-Step -Number 5 -Do 'Once the work is safe locally, close the document and reopen it from the sync folder, then paste or merge the changes back.' -Manual Write-Rule " Confirm it worked" Show-Prose 'The document in OneDrive contains the work, version history shows the new save, and the local copy can be deleted.' 'White' Write-Rule if ($script:Failed -gt 0) { Write-Host (" Finished with " + $script:Failed + " failed step(s).") -ForegroundColor Yellow Show-Prose 'Read the full write-up at https://jbtecwiz.com/support/win-office-autosave-upload' 'Yellow' } else { Write-Host ' Finished.' -ForegroundColor Green } Write-Host '' Show-Prose 'To undo: The local copy is the rollback -- keep it until the version in the service is confirmed correct.' 'DarkGray' Write-Rule