Server 2012 Environment Variables not properly resolving

environment-variableswindows-server-2012-r2

I've got a Server 2012 R2 server with the RDS roles installed.

When attempting to add a new app I'm getting told that the server 'isn't online', despite the fact I am on that same server and am able to launch other applications.

I've narrowed it down to the environment variables not resolving correctly – as per this example:

C:\>ECHO %path%
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files (x86)\Sybase\SQL;C:\Program Files (x86)\Sybase\Shared\win32;C:\Program Files (x86)\sybase Central 4.0\java;N:\Autoauto\programs\common;N:\Autoauto\


C:\>ECHO %SYSTEMROOT%
C:\Windows

C:\>cd %Systemroot%\system32

C:\Windows\System32>cmd
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\System32>exit

C:\Windows\System32>cd\

C:\>cmd
'cmd' is not recognized as an internal or external command,
operable program or batch file.

I can replace %systemroot% with C:\Windows\ in PATH but I'm not happy that I should have too, why this is happening and that it won't mysteriously come back in the future.

Given that this prevents me deploying new applications and tha tI have deployed a new application in the last 2 months this is a new issue. Google turns nothing up (except someone who had hte same issue with regards to RDS).

Anyone have any thoughts on how this is happening?

Best Answer

I suspect it's broken syntax in your path environment variable.

C:\Program Files (x86)\Sybase\SQL:\Program Files (x86)\Sybase\Shared\win32;

Should be:

C:\Program Files (x86)\Sybase\SQL;C:\Program Files (x86)\Sybase\Shared\win32;

Note the missing ;C