I'd like to understand the changes that impacted CMD when Windows moved to Terminal.

Jameson Turner 0 Reputation points
2024-05-29T13:42:20.2033333+00:00

With the release of Windows 11 22H2 moving to Terminal as the default, I am seeing changes to the way CMD is now processing the commands. I have two computers one on Windows 11 21H2 and one on Windows 11 23H2. The older version will process the command, as it has for many years, but now in Terminal there has been a change, and it only offers help options for the command as if it doesn't get the parameter is it being passed.

I have attempted to setup and run CMD as the default, and also tried legacy mode, both of which did nothing.

I am looking for the details behind what changed, and how these are being parsed as this could have larger impacts.

The command is :

SC CONFIG ThisProgram binPath= """"C:\Program Files (x86)\ThisProgram\ThisProgram.exe""""

Now on the older version we are getting a response of :

[SC] OpenService FAILED 1060: The specified service does not exist as an installed service.

Which is expected. However now that we are on the newer version of Windows we are getting a help message as if the parameter is not even there:

DESCRIPTION:

Modifies a service entry in the registry and Service Database.

USAGE:

sc <server> config [service name] <option1> <option2>...

OPTIONS:

NOTE: The option name includes the equal sign.

A space is required between the equal sign and the value.

To remove the dependency, use a single / as dependency value.

type= <own|share|interact|kernel|filesys|rec|adapt|userown|usershare>

start= <boot|system|auto|demand|disabled|delayed-auto>

error= <normal|severe|critical|ignore>

binPath= <BinaryPathName to the .exe file>

group= <LoadOrderGroup>

tag= <yes|no>

depend= <Dependencies(separated by / (forward slash))>

obj= <AccountName|ObjectName>

DisplayName= <display name>

password= <password>

Windows 11
Windows 11
A Microsoft operating system designed for productivity, creativity, and ease of use.
8,988 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. MotoX80 32,911 Reputation points
    2024-05-29T17:06:44.7866667+00:00

    You have 4 double quote characters around the parameter. I've always used 3 to include a single double quote as data.

    On Win 11 22H2 using a cmd prompt and terminal. Just using a single double quote sets the path, but does not put any quotes around it. Using 3 double quotes puts a single double quote around the path.

    If using 4 did not error out, then it may not have set the binpath to the correct value. You would need to run an "sc qc" to verify.

    User's image

    User's image