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.
Before you install QuickBooks using Shell Apps, ensure you set up the following:
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.
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
To add the QuickBooks shell app to your customer's environment, complete the following steps:
First, import the QuickBooks app from the Nerdio library.
To import QuickBooks:
-
At the MSP level, navigate to Applications > Shell Apps.
-
From the Add action menu, select Add from Nerdio Library.
-
In the new dialog box, from the Name drop-down menu, select Quickbooks.
-
Select OK.
The Import QuickBooks dialog box opens.
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:
-
In the Import QuickBooks dialog box, go to the General area.
-
In the Name field, edit the app name to reflect the version of QuickBooks (e.g., QuickBooks Enterprise 2024).
-
In the Description field, provide more details about the shell app.
-
Turn the Public option On.
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 Enterpriseand the year with.0appended (e.g.,24.0). -
For Premier and PremierSub, it matches app names containing
QuickBooks Premierand 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.
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.exeorQuickBooksPremier2024.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.datINI 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.
Adjust the uninstall script's variable mapping if needed.
To configure the uninstall script:
-
In the Import QuickBooks dialog box, go to the Uninstall area.
-
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.
-
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.
-
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:
-
Navigate to Unified Catalog, and then search for QuickBooks.
Tip
You can also filter apps by shell apps using the Repository dropdown.
-
Locate the app, and then from the Properties drop-down menu, select Assign.
-
Select Add Assignments, and then in the Select assignments field, select All or choose specific account(s) you want to assign the app to.
-
Select Confirm > Apply and close.
-
When prompted, select Confirm.
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.
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.
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.
-
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.
-
Verify that qbversionname exactly matches one of the three accepted values:
Enterprise,Premier, orPremierSub(case-sensitive). -
Verify that qbversionyear is the correct two-digit year (e.g.,
24, not2024). -
For Enterprise, the detection script looks for the year with
.0appended in the registry (e.g.,24.0). This is handled automatically by the script, but confirms the registry entry must include the.0suffix.
-
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.
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.
Comments (0 comments)