Sage 50 UKI Ideas Portal

Network Deployment Tool

Sage50 Accounts update rollouts have always been an absolute nightmare while working with companies that have restricted access to their machines for security purposes however the biggest nightmare tends to come from having to push out a client update manually on customers that have numerous devices with Sage installations. 

By default, the Sage installation files do not have a silent install/upgrade option available or any ability for a check-in with the primary server for centralised deployment of updates. 

It'd be extremely ideal if there was a mass deployment option available for system administrators. 

The closest I've gotten was with the powershell deployment script I've written (Below) however while it worked okay, there are still some issues with how the files themselves install via a silent script. The below is based upon extracting and collecting the relevant EXEs and extracting the contents to reveal the unique installation files. 

If there is an available option that we can use or some recommendations for improving the below for mass deployment, it'd be appreciated.

$Path1 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_DataAccess.msi";
$Path2 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_ODBC_x64.msi";
$Path3 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_Client.msi";
$Path4 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_ReportPack.msi";
$Path5 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_ODBC_x86.msi";
$Path6 = Join-Path -Path "C:\Temp" -ChildPath "Sage50Accounts_SDO.msi";

$MSIArguments1 = @(
"/package $Path1"
"/quiet"
"/norestart"
);

$MSIArguments2 = @(
"/package $Path2"
"/quiet"
"/norestart"
);

$MSIArguments3 = @(
"/package $Path3"
"ENABLEUPGRADE=1"
"UPGRADEVERSION=1"
"/quiet"
"/norestart"
);

$MSIArguments4 = @(
"/package $Path4"
"/quiet"
"/norestart"
);

$MSIArguments5 = @(
"/package $Path5"
"/quiet"
"/norestart"
);

$MSIArguments6 = @(
"/package $Path6"
"/quiet"
"/norestart"
);

Start-Process "msiexec" -ArgumentList $MSIArguments1 -wait -NoNewWindow;
Start-Process "msiexec" -ArgumentList $MSIArguments2 -wait -NoNewWindow;
Start-Process "msiexec" -ArgumentList $MSIArguments3 -wait -NoNewWindow;
Start-Process "msiexec" -ArgumentList $MSIArguments4 -wait -NoNewWindow;
Start-Process "msiexec" -ArgumentList $MSIArguments5 -wait -NoNewWindow;
Start-Process "msiexec" -ArgumentList $MSIArguments6 -wait -NoNewWindow;

Copy-Item -Recurse -Path "C:\ProgramData\Sage\Accounts\2021\Company.000" -Destination "C:\ProgramData\Sage\Accounts\2022\Company.000" -Force;
Copy-Item -Recurse -Path "C:\ProgramData\Sage\Accounts\2021\CompanyTemplate" -Destination "C:\ProgramData\Sage\Accounts\2022\CompanyTemplate" -Force;

$useraccounts = gci "C:\Users\"

Foreach ($account in $useraccounts) {
$joinedpath1 = Join-Path "C:\Users" "$account";
$joinedpath2 = Join-Path "$Joinedpath1" "Appdata\Local\Sage\Sage Report Designer\SageLine50v27\Favourites\";
$joinedpath3 = Join-Path "$Joinedpath1" "Appdata\Local\Sage\Sage Report Designer\SageLine50v28\";
Copy-Item "$Joinedpath2" "$Joinedpath3" -force -recurse;
}

  • Guest
  • Mar 9 2022