# CapaWinUpgrade 5.0 - Release Notes

> What changed in CapaWinUpgrade 5.0, released 9 November 2021, including Windows 11 support, upgrade phases, and redesigned installation screen handling.

Source: https://docs.capaone.com/capainstaller/capawinupgrade/capawinupgrade-release-notes/capawinupgrade-5-0-release-notes/  
Product: CapaInstaller — a separate CapaSystems product; do not apply this page to any other.

*Released on November 9, 2021 - Updated on August 24, 2023*

---

:::note
To fully utilize CapaWinUpgrade, endpoints must be able to communicate with the CapaOne API.
:::

---

### New Features

<details>
<summary>Windows 11</summary>

Windows 11 is now supported.

The compatibility scan included with the product also scans for compatibility of hardware components.

</details>

<details>
<summary>Upgrade Phases</summary>

*Upgrade phases* give complete control over the sequence of packages and functions that need to be executed during a feature upgrade.

![Diagram of the three upgrade phases - PreUpgrade, Upgrade, and PostUpgrade - spanning the CapaWinUpgrade Upgrade and Post Upgrade packages](/attachments/capainstaller/capawinupgrade-upgrade-phases.png)

Upgrade phases have made it possible to keep the package status as *Installing* in the console, for the "Upgrade" package, during the actual upgrade.

![CapaInstaller Console showing the CapaWinUpgrade Upgrade package with status Installing](/attachments/capainstaller/capawinupgrade-upgrade-phase-console-installing.png)

![CapaWinUpgrade installation screen shown on the endpoint during the upgrade](/attachments/capainstaller/capawinupgrade-upgrade-phase-install-screen.png)

</details>

<details>
<summary>Force prompt before upgrade</summary>

It's now possible to force an upgrade prompt, when no end-user is logged on.

The logfile clearly indicates if and why the prompt is shown:

![Log output explaining that the upgrade prompt is shown](/attachments/capainstaller/capawinupgrade-force-prompt-log-1.png)

![Further log output about the forced upgrade prompt](/attachments/capainstaller/capawinupgrade-force-prompt-log-2.png)

![CapaWinUpgrade dialog asking the user to upgrade now, noting the upgrade can be postponed 4 times and usually takes 60-90 minutes](/attachments/capainstaller/capawinupgrade-force-prompt-dialog.png)

</details>

<details>
<summary>Push or Publish</summary>

The product now contains 2 separate computer packages, that can be used to either *push* the feature upgrade to computers or to *publish* the feature upgrade in the software catalog.

![Package list showing CapaWinUpgrade - Publish Upgrade and CapaWinUpgrade - Push Upgrade, both v5.0](/attachments/capainstaller/capawinupgrade-push-publish-packages.png)

![The published upgrade shown as an entry the end-user can start](/attachments/capainstaller/capawinupgrade-publish-catalog-entry.png)

Using separate computer packages makes it possible to differentiate how each package behaves.

</details>

<details>
<summary>Set & Forget</summary>

Our *Set & Forget* mentality is now fully supported.

This means that the product will automatically detect if a content package has already been applied, and then skip job execution accordingly.

The changes will probably not have a huge impact on daily operations, because the product automatically checks if the expected Windows feature upgrade has already been installed, and only proceeds if that's not the case.

</details>

---

### Improvements

<details>
<summary>Installation Screen Handling</summary>

Previously, the product backed up the existing installation screen and forced the use of the installation screen that is included in the product. After a feature upgrade the original installation screen was restored.

The procedure caused a lot of weird issues, and that's why we have completely redesigned how the installation screen is handled.

- If a working installation screen v2.x is already installed, that installation screen will be used.
- If no installation screen is installed, the installation screen included in the product will be used.
- If an existing installation screen is installed, but one or more components are missing, the product will fail with an error indicating which components are missing.

The new procedure to handle the installation screen is included in both the *Check PreRequisites* and the *Upgrade* packages, and is now executed before involving the end-user.

:::note
CapaInstaller installation screen v1.x (released before 2016) is no longer supported.
:::

</details>

<details>
<summary>Installation Screen Language</summary>

Previously, only the messagebox language could be controlled.

![CapaWinUpgrade Push Upgrade message box shown in Danish, with Ja and Nej buttons and a countdown](/attachments/capainstaller/capawinupgrade-messagebox-language-variable.png)

Now it's also possible to control the installation screen language, independent of the messagebox language.

![CapaWinUpgrade installation screen reading "Please wait while Windows 10 2004 is upgraded to Windows 11 21H2", waiting for upgrade at step 1 of 4](/attachments/capainstaller/capawinupgrade-install-screen-language-variable.png)

Supported languages are still "DA" and "EN".

Danish characters are now presented properly on the installation screen.

</details>

<details>
<summary>Installation Screen Steps</summary>

The installation screen now shows the current step that the upgrade is processing. There are 4 steps.

![Installation screen status reading "Waiting for upgrade (step 1/4)"](/attachments/capainstaller/capawinupgrade-install-screen-step-1.png)

![Installation screen status reading "49% complete (step 2/4)"](/attachments/capainstaller/capawinupgrade-install-screen-step-2.png)

![Installation screen during step 3 of 4](/attachments/capainstaller/capawinupgrade-install-screen-step-3.png)
*Step 3 is solely controlled by Microsoft*

![Installation screen status reading "Waiting for cleanup (step 4/4)"](/attachments/capainstaller/capawinupgrade-install-screen-step-4.png)

</details>

<details>
<summary>Mandatory PreRequisite Checks</summary>

Some prerequisite checks are now mandatory and are always executed during the "PreUpgrade" phase.

- Power connection check
- Compatibility scan

Running the compatibility scan increases the total installation time by 5-10 minutes, but ensures a much higher success rate.

Below is an example, encountered when the hardware is **not** compatible with Windows 11.

![Log line showing the compatibility scan result code](/attachments/capainstaller/capawinupgrade-compat-scan-incompatible-log.png)

![Custom inventory entries showing Compatibility Scan Code 0xC1900200, and descriptions stating the computer is not ready for upgrade](/attachments/capainstaller/capawinupgrade-compat-scan-incompatible-detail.png)

</details>

<details>
<summary>Reboot Behavior</summary>

To raise the success rate of feature upgrades, workstations are now always rebooted, just before the actual upgrade is started.

</details>

<details>
<summary>Logging History</summary>

All relevant logfiles are now saved in a history folder, making it easier to obtain information about previous prerequisite checks or upgrades.

![Log history folder listing](/attachments/capainstaller/capawinupgrade-log-history-folder.png)

![Log files kept in the history folder](/attachments/capainstaller/capawinupgrade-log-history-files.png)

</details>

<details>
<summary>Logging Levels</summary>

The option to enable verbose logging has been deprecated.

Instead, a *simple* log and a *standard* log is always created.

During package installation, the simple log is updated simultaneously with the standard log.

![Two log files during installation - CapaWinUpgrade - Check PreRequisites.Log at 117 KB and the matching .Simple.Log at 21 KB](/attachments/capainstaller/capawinupgrade-log-levels-during.png)

When package installation ends, the log files are switched and renamed, as shown below.

![The same two log files after the switch - CapaWinUpgrade - Check PreRequisites.Log at 26 KB and the matching .Standard.Log at 170 KB](/attachments/capainstaller/capawinupgrade-log-levels-switched.png)

Afterwards, the log files are copied to the *CapaWinUpgrade* subfolder.

![Log files copied into the CapaWinUpgrade subfolder](/attachments/capainstaller/capawinupgrade-log-levels-subfolder.png)

The purpose of keeping log files with different levels of information is to show the contents of the simple log in the console, and still have the option to troubleshoot various issues using the more comprehensive information from the standard log on the workstations.

</details>

<details>
<summary>Logging Phases</summary>

Just before reboot in each upgrade phase, the relevant log files are renamed using the name of the current upgrade phase.

![Windows Explorer showing the CapaWinUpgrade log folder with simple and standard logs named per phase - PreUpgrade, Upgrade, and PostUpgrade](/attachments/capainstaller/capawinupgrade-log-phases.png)

This is done because when a package restarts installation, the log file is overwritten and the information would be lost.

</details>

<details>
<summary>Library Files</summary>

The library files *CapaFactoryLib.cis* and *CapaWinUpgradeLib.cis* are now placed in the *Service Files* content package.

Placing the library files inside a content package, instead of placing them in the resources folder of each configuration management point (as before) has several benefits:

- Each version of each product can run on its own set of libraries. This makes it easier to release new versions that can co-exist with existing (older) versions.
- It minimizes the risk of interrupting the operation and functionality of other products or versions, that previously shared one or more library files.
- It removes the necessity of promoting and synchronizing the library files between configuration management points and servers.

</details>

<details>
<summary>Environment Initialization</summary>

The scripting environment is now always initialized at the start of each script execution.

The value of all global variables is written to the top of each log file, to make troubleshooting easier.

</details>

<details>
<summary>File Download Progress</summary>

The file download progress is now shown in the standard package log during download.

The progress is not shown in the simple log, because the timestamps can easily be used to identify the total download time, and we want to keep the simple log as short as possible.

![Standard log showing incremental file download progress](/attachments/capainstaller/capawinupgrade-download-progress.png)

</details>

<details>
<summary>Custom Inventory Errors</summary>

If a package installation fails, the error description is written to the top of the package log and is also saved in the "Job Error Description" field in custom inventory.

This makes it easier to keep an overview of the most frequent errors.

Below is an example, encountered when the computer has not been linked to a control group.

![Log line stating the computer has not been linked to a control group](/attachments/capainstaller/capawinupgrade-custom-inventory-error-log.png)

![The same message shown in the Job Error Description field in custom inventory](/attachments/capainstaller/capawinupgrade-custom-inventory-error-field.png)

</details>

<details>
<summary>Custom Inventory Collection</summary>

Custom inventory collection can be completely disabled using a global variable.

![CapaInstaller Console Inventory tab with the Custom sub-tab selected and no entries listed](/attachments/capainstaller/capawinupgrade-disable-custom-inventory.png)

The custom inventory values are still saved in the local registry on the workstations.

</details>

---

### Technical Stuff

<details>
<summary>Bug Fixes</summary>

- File and folder deletion errors related to the installation screen are no longer relevant, because the installation screen handling has been completely redesigned.
- The total upgrade run time is only calculated and shown if both start and end time values are present. On computers running some Eastern European native languages, such as Polish, this previously caused issues.
- The "Upgrade Ready" value is now solely controlled by the result of the compatibility check. Previously, the value was collected continuously, which caused issues for customers that used dynamic groups based on the value.

</details>

<details>
<summary>Scripting and Variables</summary>

- The "Upgrade Ready" value is no longer language dependent — instead it returns either "Yes" or "No". This makes it easier to generate assessment reports and to handle unit membership of dynamic groups.
- The library file versioning has been changed to contain dates, instead of sequential numbers. This makes it easier to identify how old a specific scripting library is.

  ![Library file version shown as a date](/attachments/capainstaller/capawinupgrade-library-version-date.png)

- The number of global variables "shared" between scripts is reduced. This makes it a lot easier to understand where values are coming from.

</details>

### Known Issues

:::danger[Caution]
Setting *gbDebug=True* will break the logging functionality
:::

### Retirements

:::caution[Warning]
The old installation screen v1.x (released before 2016) is no longer supported.

You can use the package from the [Remove Old Install Screen](/capainstaller/capawinupgrade/remove-old-install-screen/) page to remove old installation screen components, before running the CapaWinUpgrade packages.
:::

### Download and Upgrade

:::caution[Important]
As soon as you run the "Cloud Updater" package on your server, after November 9, 2021, the new CapaWinUpgrade 5.0 files will be available in your environment.

It doesn't require any implementation if you already have a previous version of CapaWinUpgrade.
:::

### Support

:::caution[Important]
When raising an incident regarding CapaWinUpgrade, please attach the following log files, from the *C:\Program Files\CapaInstaller\Client\Logs* folder on the workstation.

- CapaInstaller Agent.log
- CapaInstaller Agent.exe.log
- CapaInstaller BaseAgent.log
- CapaInstaller Stub.log
- CapaWinUpgrade\*.log
- CapaWinUpgrade (**entire folder**)

Get access to support from [portal.capaone.com](https://portal.capaone.com/)
:::
