How can I install and update QuickBooks using shell apps?

With the Shell Apps feature available in Nerdio Manager, you can script the install and uninstall of applications that were previously unscriptable. QuickBooks is a common use case, particularly during tax season when you may need to install or update QuickBooks on a weekly or sometimes daily basis.

The QuickBooks shell app uses inherited variables to supply the license key, product key, edition name, and version year at runtime. This means the scripts themselves do not need to be edited for different versions or customers -- all customization is handled through variables.

Note

Consider the following notes and limitations:

  • Currently, only Enterprise, Premier, and PremierSub (subscription) editions of QuickBooks for the last three years (years 22, 23, 24) are supported.

  • Once the app is installed, you need to manually sign in to the session hosts and select the industry-specific edition of QuickBooks.

  • If you need to install multiple versions of QuickBooks (e.g., Enterprise 2024 and Premier 2023), you must create a separate shell app for each version with its own set of inherited variables. For details, see Prerequisites.

  • Automatic updates are disabled by the install script by default. A separate scripted action is required to perform updates. Contact your Partner Success Manager for details, or see Update QuickBooks.

Prerequisites

Before you install QuickBooks using Shell Apps, ensure you set up the following:

Shell Apps repository

Create a Shell Apps repository at the MSP level. For details, see Unified Application Management: Manage Shell Apps.

Note

Currently, you can link only one Shell Apps repository per tenant.

Inherited variables

The QuickBooks shell app requires four inherited variables. These must be created at the MSP level before the shell app can be imported. For details, see Scripted Actions - MSP-Level Variables.

Important

If Inherited variables do not exist, you cannot import shell apps.

The following four variables are required. All four are mandatory - the install and detection scripts will fail if any are missing.

Variable Name

Format / Example

Description

qbversionname

Premier, PremierSub, or Enterprise

The QuickBooks edition to install. Must be one of the three accepted values exactly as shown (case-sensitive).

qbversionyear

22, 23, or 24

The two-digit year of the QuickBooks version to install.

qblicensekey

XXXX-XXXX-XXXX-XXX

The QuickBooks license key in the format shown. Must be exactly 4-4-4-3 digits separated by hyphens.

qbproductkey

XXX-XXX

The QuickBooks product key in the format shown. Must be exactly 3-3 digits separated by a hyphen.

Important

Variable names have a 20-character limit. Alphanumeric characters, hyphens (-), and underscores (_) are allowed. Special characters such as ~!@#$%^&*()[]{},.<>/?\|` are not allowed.

  • The default functionality requires the qblicensekey and qbproductkey Inherited variables with the following default values:

    • qblicensekey = XXXX-XXXX-XXXX-XXX 

    • qbproductkey = XXX-XXX 

    The values can be a combination of different characters.

  • If you need to manage multiple versions of QuickBooks across different accounts, create a separate pair of Inherited variables for each version, using descriptive names to distinguish them. For example:

    Variable Name

    Purpose

    Example Value

    qblicensekeyent24

    Enterprise 2024 license

    1234-5678-9012-345

    qbproductkeyent24

    Enterprise 2024 product

    123-456

    qblicensekeyprem23

    Premier 2023 license

    1234-5678-9012-345

    qbproductkeyprem23

    Premier 2023 product

    123-456

    qblicensekeyprem22

    Premier 2022 license

    1234-5678-9012-345

    qbproductkeyprem22

    Premier 2022 product

    123-456

Step 1: Import the QuickBooks app to Nerdio Manager

First, import the QuickBooks app from the Nerdio library.

To import QuickBooks:
  1. At the MSP level, navigate to Applications > Shell Apps.

  2. From the Add action menu, select Add from Nerdio Library.

    02-AddShellApp_FromNerdioLibrary.png
  3. In the new dialog box, from the Name drop-down menu, select Quickbooks.

  4. Select OK.

    03-ImportShellApp.png

    The Import QuickBooks dialog box opens.

Step 2: Modify the shell app name and description

If you need to install or uninstall multiple versions of QuickBooks, adjust the app name to reflect the version of QuickBooks this shell app should be used for.

To modify the shell app name:
  1. In the Import QuickBooks dialog box, go to the General area.

  2. In the Name field, edit the app name to reflect the version of QuickBooks (e.g., QuickBooks Enterprise 2024).

  3. In the Description field, provide more details about the shell app.

  4. Turn the Public option On.

    04-ShellAppName.png

Step 3: Configure the detection script

The detection script determines whether the correct version of QuickBooks is already installed on a session host. It accepts qbversionname and qbversionyear as mandatory inherited variable parameters and checks the Windows registry for a matching installation.

Important

The detection script no longer contains hardcoded variable values. Instead, it uses the mandatory inherited variable parameters you configured in Prerequisites. You do not need to edit the script body -- values are supplied at runtime.

How the detection script works:

  • It queries the registry at HKLM:\Software\...\Uninstall (both 32-bit and 64-bit paths).

  • For Enterprise, it matches app names containing QuickBooks Enterprise and the year with .0 appended (e.g., 24.0).

  • For Premier and PremierSub, it matches app names containing QuickBooks Premier and the two-digit year (e.g., 24).

  • It returns true if a match is found, false if not.

No manual edits to the detection script are required. Ensure the inherited variables are set correctly before deploying.

05-ShellAppDetection.png

Step 4: Configure the install script

Like the detection script, the install script receives all four required values as mandatory inherited variable parameters. You do not need to edit the script body.

Important

If you are using version-specific variable names (e.g., qblicensekeyent24), update the CMD bindings in the shell app to map the correct inherited variable to the qblicensekey and qbproductkey parameters.

What the install script does:

  • Validates the license key format (XXXX-XXXX-XXXX-XXX) and product key format (XXX-XXX). The script throws an error if either format is incorrect.

  • Downloads the QuickBooks installer from Intuit's servers for the specified edition and year (e.g., QuickBooksEnterprise24.exe or QuickBooksPremier2024.exe).

  • Installs QuickBooks silently using the provided license and product keys.

  • Installs the Microsoft XPS Document Writer if not already present (required for QuickBooks printing).

  • Starts the QBWCMonitor service if present (prevents a known first-launch bug).

  • Downloads and runs the Nerdio QuickBooks update tool to apply the latest patches.

  • Disables automatic QuickBooks updates by modifying qbchan.dat INI files in ProgramData and removing auto-launch shortcuts from the Windows Startup folder.

Note

Automatic update disabling is hardcoded to enabled in the current script version. This prevents QuickBooks updates from running during active sessions, which can render the software unusable until reboot.

06-ShellAppInstall.png

Step 5: Configure the uninstall script

Adjust the uninstall script's variable mapping if needed.

To configure the uninstall script:
  1. In the Import QuickBooks dialog box, go to the Uninstall area.

  2. If you are using version-specific variable names, update the CMD bindings so that qblicensekey and qbproductkey map to the correct variables for this version.

  3. Select Import.

    Note

    If the Import button is disabled, do the following:

    • Ensure you have completed the necessary Prerequisites.

    • Confirm that no inherited variable names referenced in the scripts contain typos or unsupported characters.

    07-ShellAppsUninstall.png

Step 6: Assign the shell app to an account

After you have created the shell app, you're ready to assign it to your account(s).

To assign the shell app to an account:
  1. Navigate to Unified Catalog, and then search for QuickBooks.

    Tip

    You can also filter apps by shell apps using the Repository dropdown.

  2. Locate the app, and then from the Properties drop-down menu, select Assign.

    08-AssignQuickbooks.png
  3. Select Add Assignments, and then in the Select assignments field, select All or choose specific account(s) you want to assign the app to.

    09-AssignAccounts_part2.png
  4. Select Confirm > Apply and close.

  5. When prompted, select Confirm.

    10-ConfirmAssignments.png

Step 7: Set the account-level Inherited variable values

Once you have imported the QuickBooks shell app and assigned it to the account(s), you can set it up for the account(s).

The first step is to set at the Account level the actual Inherited variables values that you previously created at the MSP level. For details, see Scripted Actions - Account-Level Variables.

The MSP-level variables define the variable names; the account-level variables supply the real values for each customer.

Step 8: Schedule the deployment policies

After the QuickBooks shell app is assigned to the account(s), and you've created the variables, you're ready to schedule the deployment of that shell app. For more information about creating the deployment policies, see Unified Application Management: Manage Applications.

Update QuickBooks

Once QuickBooks is installed, the install script automatically applies the latest available update as part of the initial installation, using the Nerdio-hosted QuickBooks update tool.

For ongoing updates after the initial installation, you need to set up a separate scripted action. Contact your Partner Success Manager for details on configuring automated QuickBooks update tasks.

Note

Automatic in-app QuickBooks updates are disabled by the install script. This is intentional -- QuickBooks updates triggered during an active session can make the application unusable until the session host is rebooted.

Troubleshooting

Import button is disabled

  • Confirm all four required inherited variables (qbversionname, qbversionyear, qblicensekey, qbproductkey) exist at the MSP level.

  • Check that no inherited variable names referenced in the scripts contain typos or unsupported characters.

  • Ensure you have a Shell Apps repository linked at the MSP level.

Detection script returns false after install

  • Verify that qbversionname exactly matches one of the three accepted values: Enterprise, Premier, or PremierSub (case-sensitive).

  • Verify that qbversionyear is the correct two-digit year (e.g., 24, not 2024).

  • For Enterprise, the detection script looks for the year with .0 appended in the registry (e.g., 24.0). This is handled automatically by the script, but confirms the registry entry must include the .0 suffix.

License or product key validation error

  • License key must match the format XXXX-XXXX-XXXX-XXX (4-4-4-3 digits).

  • Product key must match the format XXX-XXX (3-3 digits).

  • Confirm the account-level inherited variable values are set and contain no extra spaces or incorrect characters.

QuickBooks requires a reboot on launch

This is typically caused by a QuickBooks update running during an active session. The install script disables automatic updates to prevent this, but if updates were re-enabled or ran before the script could disable them, a reboot is required. Verify that the qbchan.dat files in C:\ProgramData\Intuit have BackgroundEnabled set to 0.

Was this article helpful?

2 out of 2 found this helpful
Have more questions? Submit a request

Comments (0 comments)

Article is closed for comments.