community.syncromsp.com
Open in
urlscan Pro
184.105.99.43
Public Scan
URL:
https://community.syncromsp.com/t/office-365-critical-update-deployment-help/10327
Submission: On February 15 via manual from AU — Scanned from AU
Submission: On February 15 via manual from AU — Scanned from AU
Form analysis
1 forms found in the DOMPOST /login
<form id="hidden-login-form" method="post" action="/login" style="display: none;">
<input name="username" type="text" id="signin_username">
<input name="password" type="password" id="signin_password">
<input name="redirect" type="hidden">
<input type="submit" id="signin-button" value="Log In">
</form>
Text Content
Syncro System Status: operational Issues 100% UptimeNo events for 6 days! There are currently no reported issues. View Status Page Skip to main content * Submit Support Ticket * Knowledge Base Log In * * Syncro is introducing this Known Issue Board to openly share details about specific defects that we are either tracking, investigating, fixing, or working on and to allow our partners visibility into more behind-the-scenes topics that are top of mind. Syncro’s ongoing mission is to make life better for MSPs. Communication and transparency are vital for helping you run the most efficient MSP possible. This Known Issue Board project is in its early stages of development. While we are under development, we appreciate everyone’s understanding that not all defects will be instantly posted. It will take us time to establish a good triage rhythm and process. We will be continuing to add specific items to this board along with workflow enhancement and engagement opportunities utilizing this board as we move into the 2023 Calendar year. Our goal is to improve proactive communication and engagement within the Syncro Community providing more awareness and knowledge to our partners of our top priority items. How this Known Issue Board will work: * Each specific defect will receive its own post by the Syncro Team. * As a Partner you have the opportunity to do the following: * Add a emoji to the post to indicate you are impacted by this known issue. * Note: By adding this emoji here, you will no longer need to open a Support Incident Case. Syncro will be tracking both Support Cases and Impact numbers on the KIB. * Add a emoji to indicate if you would like to volunteer your environment if the opportunity comes for EA, beta testing, or QA workarounds. * You can Follow the Known Issue Post to receive up to date notifications and alerts to any changes made to the post. Do this by upgrading your Notification Status on the specific post of interest to WATCHING. * Add a comment: The only comments for the KIB should be for providing found workarounds or if you found additional items specific to the reported issue. OFFICE 365 - CRITICAL UPDATE DEPLOYMENT HELP You have selected 0 posts. select all cancel selecting Mar 2023 1 / 13 Mar 2023 Mar 2023 ian6 Mar '23 Hi, Having received an email this morning stating Microsoft are releasing a critical patch for Outlook for Windows, I wondered how other MSPs are rolling out fixes like this? I have been search this forum and the web to find an automated way to do this via Syncro, Chocolatey or PowerShell but am finding nothing works. I am aware I can instruct customer to use the Click to Run feature within Outlook to prompt for the upgrade but it doesn’t look great. If I can say Microsoft have released a critical security update but if you are a managed customer this has already be done. It not only looks good but may encourage other customers to see the value of having our RMM service. Any help would be very much appreciated. Solved by Neil in post #6 > Good catch! I forgot about 32-bit Office on 64-bit Windows. Here’s an updated > version for anyone that needs it. Import-Module $env:SyncroModule # Check if > running as System $sid = > ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value if > ($sid -ne "S-1-5-18") { Write-Host "This… 1 * CREATED Mar '23 * LAST REPLY Mar '23 * 12 REPLIES * 2.1k VIEWS * 8 USERS * 4 LIKES * 3 3 2 Neil Mar '23 I haven’t dug into the Outlook issue yet but we have a script to force Office Click to Run versions to update. Take note that the “forceappshutdown=true” option will close any open Office apps. Either run it after-hours or change it to false. # Check if running as System $sid = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value if ($sid -ne "S-1-5-18") { Write-Host "This script needs to be run as System." Exit 1 } $updateExePath = "$($env:ProgramFiles)\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" # Exit if execuatable not found $pathExists = Test-Path -Path $updateExePath -PathType Leaf if(!($pathExists)) { Write-Host "Office C2R not found on this system." Exit 0 } # Update Office using ClickToRun try { Write-Host "Updating Office..." $result = Start-Process -FilePath $updateExePath -ArgumentList "/update user displaylevel=false forceappshutdown=true" -PassThru -Wait if($result.ExitCode -eq 0) { Write-Host "Office was sucessfully updated." } else { Write-Host "Office was not updated successfully." Exit 1 } } catch { Write-Host "An error occurred while updating Office." Exit 1 } 2 Replies 1 ian6 Mar '23 Amazing, thank you very much. I will try that shortly. ian6 Mar '23 Neil: > # Check if running as System > $sid = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value > if ($sid -ne "S-1-5-18") { > Write-Host "This script needs to be run as System." > Exit 1 > } > > $updateExePath = "$($env:ProgramFiles)\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" > > # Exit if execuatable not found > $pathExists = Test-Path -Path $updateExePath -PathType Leaf > if(!($pathExists)) { > Write-Host "Office C2R not found on this system." > Exit 0 > } > > # Update Office using ClickToRun > try { > Write-Host "Updating Office..." > $result = Start-Process -FilePath $updateExePath -ArgumentList "/update user displaylevel=false forceappshutdown=true" -PassThru -Wait > if($result.ExitCode -eq 0) { > Write-Host "Office was sucessfully updated." > } else { > Write-Host "Office was not updated successfully." > Exit 1 > } > } catch { > Write-Host "An error occurred while updating Office." > Exit 1 > } This worked amazingly, thank you very much. isaacg Mar '23 FYI, C2R can be in two possible locations, so you probably want to wrap that all in a foreach something like this: $C2RPaths = @( "$env:SystemDrive\Program Files (x86)\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" "$env:SystemDrive\Program Files\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" ) $C2RPaths | ForEach-Object { if (Test-Path -Path $_) { yadayada } Neil Mar '23 Good catch! I forgot about 32-bit Office on 64-bit Windows. Here’s an updated version for anyone that needs it. Import-Module $env:SyncroModule # Check if running as System $sid = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value if ($sid -ne "S-1-5-18") { Write-Host "This script needs to be run as System." Exit 1 } $c2rPaths =@( "$($env:ProgramFiles)\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" "${env:ProgramFiles(x86)}\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" ) # Check each path to see which is correct foreach ($c2rPath in $c2rPaths) { $pathExists = Test-Path -Path $c2rPath -PathType Leaf if ($pathExists) { Write-Host "Updating Office using C2R located at '$($c2rPath)'." try { $result = Start-Process -FilePath $c2rPath -ArgumentList "/update user displaylevel=false forceappshutdown=true" -PassThru -Wait } catch { Write-Host "An error occurred updating Office." Exit 1 } if ($result.ExitCode -eq 0) { Write-Host "Successfully called the Office C2R updater." } else { Write-Host "The Office C2R updater was not called successfully. Please investigate." Rmm-Alert -Category "Windows | Application Management" -Body "The Office C2R updater was not called successfully. Please investigate." } } } 1 Reply 3 Solution adam.jones Mar '23 We have had a few computers I cannot get this to run on. I log in and click update in the actual Office app and it updates fine, so I’m perplexed why some machines just will not take it with no apparent error. paul8 Mar '23 We have found that this script needs one more variable or it doesn’t always work. updatepromptuser=false displaylevel=false forceappshutdown=true The updatepromptuser=false also needed to be there. And if you wanted to NOT force apps shutdown, then displaylevel=true because the user has to push OK or the update won’t work. 2 Replies anon67100344 Mar '23 So to be clear, and for those of us without the Powershell skills you folks possess, the command should look like this? $result = Start-Process -FilePath $c2rPath -ArgumentList “/update user updatepromptuser=false displaylevel=false forceappshutdown=true” -PassThru -Wait Thanks for this. Takes a long time to learn to use Powershell, and this sort of thing really helps. 1 Neil paul8 Mar '23 Out of curiosity, what was happening when the “updatepromptuser=false” parameter was not included? You’ve got to love Microsoft for it’s edge cases! paul8 Mar '23 That’s a great question. Nothing! With no logs, feedback, output from the command, or evidence otherwise. It looks like the CTR executable runs and “does a bunch of stuff”. I THINK that the failure is when people are using Office and never do anything, something like … “times out”? Others are reporting that this may actually work but require a PC reboot to be updated anyhow. If this is true, then my comment should just be modified to “this works AFTER a PC reboot”. However, I wasn’t testing for that. It might work great by the time everyone restarts their PC. anon83661907 Neil Mar '23 Thanks Neil, works like a charm. cw1 1 Mar '23 I had chatGPT 4 read the Syncro scripting documentation and update this script with the correct error code status. Let me know what you all think. Title: Update Microsoft Office Using RMM Tool with Error Handling Description: This PowerShell script is designed to update Microsoft Office installations using the Click-to-Run (C2R) technology via a Remote Monitoring and Management (RMM) tool, specifically Syncro. The script first checks if it is running as System, as this is required for the update process. If not running as System, the script exits with an error code of 1. It then searches for the OfficeC2RClient.exe file, which is responsible for handling C2R updates, in two possible locations (both 32-bit and 64-bit Program Files directories). The script iterates through each potential path and, if the file is found, attempts to update Office with the appropriate command-line arguments. These arguments ensure that the update process runs silently, without prompting the user, and forces the shutdown of Office applications to apply the updates. If the update is successful, the script outputs a success message. If an error occurs during the update process, the script outputs an error message, sends an RMM alert, and exits with an error code of 1. The script includes a flag to track whether the update was performed or not. If the script iterates through all paths but doesn’t find the OfficeC2RClient.exe file, it outputs a message indicating that the file wasn’t found and the update couldn’t be performed. In this case, the script exits with an error code of 2. These error codes help the Syncro RMM tool correctly report the script’s status based on the provided error codes, ensuring proper monitoring and error reporting. Import-Module $env:SyncroModule # Check if running as System $sid = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value if ($sid -ne "S-1-5-18") { Write-Host "This script needs to be run as System." Exit 1 } $c2rPaths =@( "$($env:ProgramFiles)\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" "${env:ProgramFiles(x86)}\Common Files\Microsoft Shared\ClickToRun\OfficeC2RClient.exe" ) # Add a flag to indicate whether the update was performed or not $updatePerformed = $false # Check each path to see which is correct foreach ($c2rPath in $c2rPaths) { $pathExists = Test-Path -Path $c2rPath -PathType Leaf if ($pathExists) { Write-Host "Updating Office using C2R located at '$($c2rPath)'." try { $result = Start-Process -FilePath $c2rPath -ArgumentList "/update user displaylevel=false updatepromptuser=false forceappshutdown=true" -PassThru -Wait } catch { Write-Host "An error occurred updating Office." Exit 1 } if ($result.ExitCode -eq 0) { Write-Host "Successfully called the Office C2R updater." $updatePerformed = $true # Set the flag to true when the update is successful } else { Write-Host "The Office C2R updater was not called successfully. Please investigate." Rmm-Alert -Category "Windows | Application Management" -Body "The Office C2R updater was not called successfully. Please investigate." Exit 1 } } } # Output a message if the OfficeC2RClient.exe file wasn't found and exit with error code 2 if (-not $updatePerformed) { Write-Host "OfficeC2RClient.exe was not found. Unable to update Office." Exit 2 } Reply RELATED TOPICS Topic Replies Views Activity Windows Feature Updates 5 319 7d Is it possibel to update Powershell version through Syncro 5 406 Sep '22 The February CyberDrain Community Event Is Now Live! Other 15 1.4k Mar '22 Scripted install of Office 2016 Pro Plus (Not 365) 5 1.0k Dec '21 Windows Update restart Scheduling Other 11 691 Dec '22 Invalid date Invalid date