Upgrade considerations

We strive to maintain backward compatibility between versions so that you can upgrade within version 8 seamlessly. However, sometimes we are forced to break compatibility within some minor versions, although we try to keep breaking changes to a minimum.

This page covers all the changes that you need to be aware of when upgrading to version 8.7.3, including changes that can break your customizations (custom integrations, reports, views, etc.) you may have. Depending on which version you are upgrading from, review the following considerations as part of your upgrade planning.

TIP: If you have questions or need help, please contact Alloy Professional Services team at support@alloysoftware.com.

Version 8.6 or earlier

PowerShell instead of CMD in integrations

BREAKING CHANGE

Starting with version 8.7, Alloy Discovery uses PowerShell instead of CMD in integrations with external tools and utilities.

PowerShell is much more than just a shell. It is a powerful scripting environment that can run complex scripts and automate system administration tasks. Now you can leverage advanced PowerShell capabilities for more efficient solutions.

Among other things, PowerShell can be used to launch external programs, like CMD was used in previous versions. In most cases, native CMD commands are available in PowerShell through aliases. However, there are times when names or syntax of native CMD commands might be misinterpreted. That's why we strongly recommend that you review all your custom integrations after the upgrade to make sure that they work as expected.

The first thing to consider is the location of your external programs. The best practice is to add paths to directories where programs reside to the PATH environment variable. This will help PowerShell find the programs by the name of their executable files. Some standard programs, such as Ping or Remote Desktop, can be run just by typing the filename because their directory path (C:\Windows\System32) exists in the Windows search path by default. An alternative method is specifying full paths to programs.

See the table below for some issues with your custom integrations that you may experience after the upgrade and how to resolve them.

Issue Description Solution

PowerShell cannot understand the path enclosed with quotes and sends that path it to the output.

When the command contains parameters after the path, this error occurs:

Unexpected token 'Parameter' in expression or statement.

If you specify a path for an external program in CMD, and the path contains spaces, you must enclose the path with double quotation marks (").

PowerShell considers commands enclosed with quotation marks as PowerShell strings, or objects of the type "String."

PowerShell cannot execute strings. When passed a string, it simply attempts to send it to the output.

Add an ampersand character (&) before the first quotation mark in the path.

The ampersand is the Call operator that tells PowerShell to treat the string expression as a command to be executed.

For example:

INCORRECT:
"C:\Program Files\RealVNC\VNC4\vncviewer.exe" LT00054

CORRECT:
& "C:\Program Files\RealVNC\VNC4\vncviewer.exe" LT00054

NOTE: Make sure that the executable file exists on all computers from which the workflow action is initiated, and the path is the same.

Alternatively, add the path to the program to the PATH environment variable, and then delete the path with the quotes from your integration.

PowerShell cannot find the external program that you are trying to launch. This error occurs:

program.exe : The term 'program.exe' is not recognized as the name of a cmdlet, function, script file, or operable program.

Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

PowerShell cannot find programs when their paths are not specified, either explicitly or in the PATH environment variable.

For example, if your program is in the Bin directory of Alloy Discovery, it could be previously executed by just typing its name, because the product could find that program without the need to specify the path to it.

Now, when launching external programs is delegated to PowerShell, PowerShell knows nothing about where the executable file is located, and cannot find it.

Add the path to the program to the PATH environment variable.

Alternatively, specify the full path to the program, enclose it in double quotation marks if it contains spaces, and add an ampersand (&) before the first quotation mark.

TIP: Our native programs from the Bin directory, such as Alloy Screenshot or WakeOnLan, are not an exception. Now you should specify the full path to the Bin folder, or add it to PATH.

NOTE: Make sure that the executable file exists on all computers from which the workflow action is initiated, and the path is the same.

INFO: For additional information, see Administration Guide: Adding Integrations.

INFO: You can find the official product documentation for PowerShell at https://docs.microsoft.com/powershell/.