Office 365 32 to 64

Hi all,

Am currently looking to standardise our Office 365 versions across all our machines, thought this would also be a good time to standardise to 64bit office on all our machines too.

I’m thinking PSADT will be perfect for this and wondering if anyone has any experience, currently we have a bit of a mix / match of office 365 version numbers and even some Office 2016 out there - my thinking for the safest way / maybe most simple way will be to simply uninstall all traces of office on machines before then installing the desired 64bit version.

My worry is how this works with Visio / Project which some users use and i know can cause issues so am wondering if i should remove them at the same time too before re-installing?

Anyone who has done anything similar and has any tips from past experience would be great to hear how it went!

All 32-bit Office apps will need to be uninstalled before installing 64-bit. I usually just include Visio and Project installations within my 365 Apps package. I find about 1-2% of devices will need the Office scrub script manual run on them. can be added to the configuration.xml file to remove MSI apps during the 365 Apps installation. Here’s a structure to get you started.

Pre-Installation

if ( Get-InstalledApplication -Wildcard "Microsoft Visio * 201*" ) { 
     $IsVisioInstalled = $TRUE
}
if ( Get-InstalledApplication -Wildcard "Microsoft Project * 201*" ) { 
     $IsProjectInstalled = $TRUE
}


$OfficeCTR = Get-InstalledApplication -Wildcard "Microsoft 365 Apps for enterprise*"
if ( $OfficeCTR.InstallLocation -eq 'C:\Program Files (x86)\Microsoft Office' ) {
    Show-InstallationProgress -StatusMessage "Uninstalling Microsoft 365 Apps..."
    Write-Log "=====> Microsoft 365 Apps for enterprise x86 detected, uninstalling..."

    Execute-Process -Path "Setup.exe" -Parameters "/configure `"$dirSupportFiles\RemoveCTR.xml`"" -WindowStyle Hidden

    if ( (Get-Process -Name "OfficeC2RClient") -or (Get-Process -Name "ose00000") -or (Get-Process -Name "setup") ) {
        Start-Sleep -Seconds 60
    }
}
elseif ( $OfficeCTR.InstallLocation -eq 'C:\Program Files\Microsoft Office' ) {
    Write-Log "=====> Microsoft 365 Apps for enterprise x64 detected"
} 

Installation

If ($IsVisioInstalled) {
    Show-InstallationProgress -StatusMessage "Installing Microsoft Visio"
    
    Execute-Process -Path "Setup.exe" -Parameters "/configure `"$dirSupportFiles\Visio.xml`""

    if ((Get-Process -Name "OfficeC2RClient") -or (Get-Process -Name "ose00000") -or (Get-Process -Name "setup")) {
        Start-Sleep -Seconds 60
    }

}

If ($IsProjectInstalled) {
    Show-InstallationProgress -StatusMessage "Installing Microsoft Project"
    
    Execute-Process -Path "Setup.exe" -Parameters "/configure `"$dirSupportFiles\Project.xml`""

    if ((Get-Process -Name "OfficeC2RClient") -or (Get-Process -Name "ose00000") -or (Get-Process -Name "setup")) {
        Start-Sleep -Seconds 60
    }

}

We don’t have any Office 2016 in our environment, just Office 365 ProPlus (semi annual channel). Most of our clients use 32-bit, but we have a small number using 64-Bit. Over the years I’ve seen the improvements introduced from Microsoft with the XML config. I used to script the removal of Office 365 32-bit (and Visio/Project) before installing 64-bit. I think we used to tell users to re-install Visio/Project after the upgrade too. But then Microsoft introduced MigrateArch="TRUE"

Used in the following line, Office 365 64-bit will install and deal with the 32-bit apps automatically. If Visio or Project were installed, they’d also be upgraded to 64-bit in the same process.

Add OfficeClientEdition=“64” Channel=“SemiAnnual” OfficeMgmtCOM=“TRUE” MigrateArch=“TRUE”

I don’t know off the top of my head if this works for “Office 2016”, but if it’s installed from Click-to-run (C2R) media, then perhaps it will?