Lacerte silent install + updates

There has been a request for Lacerte silent install if possible + updates if possible

Software for Complex Tax Returns | Intuit Lacerte

So far we are not aware of any demand from the community for this, please add your votes/comments if this would assist your team!

We have a handful of clients running Lacerte and would definitely welcome some automation there.

One thing of note, in every case for our clients they tend to need the last 10 years or so of versions installed on their machines so they can reference old client data.

1 Like

Also would love to see this! Could assist with testing or needing access to anything

Just to bump this, I would absolutely love to test this as well if it gets setup. Have quite a few clients with Lacerte.

We’ve got some clients with Lacerte as well

We have at least 5-10 customers that use Lacerte.

1 Like

Lacerte is a tricky one. Unfortunately, in most cases the update is done on an RDS or file share. Then the users need to access the file share and run the installer from the share.

This would be extremely helpful if it was possible as manually installing across large clients can be difficult.

We are a large multi-office Lacerte user (230 folks, 5 offices) and one of our senior engineers fought this out. Been working so far, but it can be a LONG install time.

#Store the workstation host name to determine which Lacerte server to get the installer from
$Hostname = $env:COMPUTERNAME

#Set the uninstall reg path for the targeted tax year
$UninstallPath = “HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\2021 Lacerte Tax”

#Set the Lacerte silent install arguments
$args = @"

/TargetDir="C:\Lacerte\21tax" /AutoInstall /AutoExit /q /norestart

"@

#Check the hostname for a match to a specific office and whether the uninstall path exists
IF(($Hostname -like “OFFICEINITIALS*”) -and (!(Test-Path $UninstallPath))) {

Start-Process -Wait “\officelacerteserver\lacerte\21tax\Setup21\TaxSetup.exe” -ArgumentList $args

}

ELSEIF through as many offices as you need.

@Chris_White how are you connecting to the server via SYSTEM context? If I had to guess, you’re running this script as a user?

Some updates on Lacerte 2024 as well as inconsistencies encountered.

Our setup is our server F:\ Lacerte holds the Lacerte server portion ( folder setup24 etc.) G:\Lacerte holds the data and two remote desktops Server1 and Server2 have the workstation portion of Lacerte 2024 C:\apps\Lacerte\24tax

The info lacerte provides is lacking to say the least, even on the bottom, where it has "more technical details (select to expand)

Chris_White’s script works beautifully. I modified it so it does not look at the hostname because I only have 2 workstations in my environment, mainly the two remote desktop servers. Still, it is only to install the workstation portion. The thing is, we have to automate downloading of the updates and applying the server portion to the F:\Lacerte drive in my environment so that when we run the taxsetup.exe programmatically, it updates to the new version.

By using process explorer and monitoring the Intuit background updater I created these scripts.

All those commands were gleamed by using Process Explorer, selecting properties when the background updater program was running.

Powershell Script 1: Enables the Lacerte Bacgrround updater scheduler task and after the update is downloaded, disables it again. More info later on why I have it disabled.

The task name will be different for you. Under the task scheduler libary it is under subfolder Intuit_BU. It is a user that in Lacerte 2024 has Lacerte Update Trustee rights and also Admin rights in windows to Run the script. More info on that below.

Script1:

$taskName = “lacerte_tax_2024_WSBAL_ADMINUSER_Updater”
$taskPath = “\Intuit_BU”

Enable the scheduled task

Enable-ScheduledTask -TaskPath $taskPath -TaskName $taskName

Start the scheduled task

Start-ScheduledTask -TaskPath $taskPath -TaskName $taskName

while ($true) {
$taskStatus = (Get-ScheduledTask | Where-Object {$_.TaskName -eq $taskName}).State
if ($taskStatus -eq “Running”) {
Write-Host “Task ‘$taskName’ is Running…”
Start-Sleep -Seconds 5 # Wait 5 seconds before checking again
} elseif ($taskStatus -eq “Ready”) {
Write-Host “Task ‘$taskName’ has changed to Ready.”
break # Exit the loop when the status changes to Ready
} else {
Write-Host “Task ‘$taskName’ is in state ‘$taskStatus’.”
break
}
}

Write-Output “Task $taskName completed.”

Disable the scheduled task

Disable-ScheduledTask -TaskPath $taskPath -TaskName $taskName

Powershell Script 2:

This one basically runs the updater.exe with the switches to copy the downloaded updates to the F:\Lacerte\24tax as well as the C:\apps\Lacerte\24Tax. It is based on which folder under the Lacerte_tax_downloads is the most recent.

This one is a bit more rough in the sense that sometimes updates are downloaded under two different locations.

Location1: C:\Users\ADMINUSER\AppData\Roaming\Lacerte\lacerte_tax-downloads

Location2: C:\Users\ADMINUSER\AppData\Roaming\Intuit\lacerte_tax-downloads

Let’s assume the update in question is 2024.4.52.0
The confusing bit is that on that update , it created a folder under location 1 called 2024.4.52.0 with the CSRM_ProductCatalog.json file only and no other folders and files (usually the new states, etc.).

On Location2, it created the same 2024.4.52.0 but under it had the same CSRM_ProductCatalog.json but also all the other folders and files that are the actual updates.

$folderPath = “C:\Users\ADMINUSER\AppData\Roaming\Lacerte\lacerte_tax-downloads”
$folderPathALT = “C:\Users\ADMINUSER\AppData\Roaming\Intuit\lacerte_tax-downloads”

#Script 2:

Get the subfolders and their last modified date

$subFolders = Get-ChildItem -Path $folderPath -Directory | Sort-Object LastWriteTime -Descending
$subFoldersALT = Get-ChildItem -Path $folderPathALT -Directory | Sort-Object LastWriteTime -Descending

Get the most recently modified subfolder

$mostRecentFolder = $subFolders | Select-Object -First 1
$mostRecentFolderALT = $subFoldersALT | Select-Object -First 1

Store only the folder name in a string variable

$mostRecentFolderName = $mostRecentFolder.Name
$mostRecentFolderNameALT = $mostRecentFolderALT.Name

Construct the command with the folder name

$command = “C:\Apps\Lacerte\24tax$mostRecentFolderName\UpdatePreparer.exe "C:\Apps\Lacerte\24tax\$mostRecentFolderName\CSRM_ProductCatalog.json"C:\Users\ADMINUSER\AppData\Roaming\Lacerte\lacerte_tax-downloads\$mostRecentFolderName" "F:\Lacerte\24tax\Setup24\" "tax""
$commandALT = “C:\Apps\Lacerte\24tax$mostRecentFolderNameALT\UpdatePreparer.exe "C:\Apps\Lacerte\24tax\$mostRecentFolderNameALT\CSRM_ProductCatalog.json"C:\Users\ADMINUSER\AppData\Roaming\Intuit\lacerte_tax-downloads\$mostRecentFolderNameALT" "F:\Lacerte\24tax\Setup24\" "tax""

Output the command to check it

Write-Output $command
Write-Output $commandALT

You can run the command like this:

Invoke-Expression $command
Invoke-Expression $commandALT

After that, the goal would be to terminate any W24tax.exe on Server1 and server2, run the taxsetup.exe with the argument list and I also like to copy the shortcut to the public desktop with the Lacerte 24 tax running on MAXIMIZED. Lacerte does not like multiple monitors and disappears from all of them requiring the WINDOWS key + SHIFT Key + Arrow keys left or right to make it re-appear.

More info on why I disable Background updater task.
Mostly it is about control.

Before an update on 2/4/2025 there was only one scheduled task with the ADMINUSER because only that user had the Lacerte update Trustee rights. After that update the background updater ignored the trustee rights and EVERY user that logged into Lacerte created a task to download the Lacerte updates. Some of those updates are 1.5GB per user. Having an alarm of low disk space is was more exciting than I would want. Had to disable the Background updater tasks on Server1 and Server2. Please do note that they get re-enabled for the specific user that installed the program under SERVER1 and SERVER2 (ADMINUSER) so that they will need to be disabled.

Enabling or disabling background updates inside the Lacerte software did not seem to have an effect. All users that login now state that background updates are enabled.

I have a case open with Intuit on it, but they are stalling. I also find this idea of not provising enough documentation on updates infuriating. Part of me attributes this to actual incompetence, and another to strategic incompetence to create enough uncertainty and frustration to force people on their cloud offering, a-la Qbooks Desktop.

In addition to that, the background updater requires a user to be logged in from my testing. I will continue to run more tests and when I have a workable solution, I will post it here. This website was the first to provide real info on program switches to help me get closer to a workable solution, so I am grateful for that.

Some updates. Intuit removed the new background updater. They switched back to the old updater. I will try to get the commands for the old updater for downloading the updates and copying them on the setup24 folder. The taxsetup command that Chris mentioned still works for installing the workstation portion.