You've got a typo:
Wrong:
Code:
"^%LOGONSERVER%^\NETLOGON\KIX32.EXE ^%LOGONSERVER%^\NETLOGON\Utils\myscript.kix"


Right:
Code:
"^%LOGONSERVER^%\NETLOGON\KIX32.EXE ^%LOGONSERVER^%\NETLOGON\Utils\myscript.kix"



When typed correctly it works for me:
Code:
C:\Temp\KiXtart_OddsAndSods>echo %LOGONSERVER%
\\XXXDC00004

C:\Temp\KiXtart_OddsAndSods>echo ^%LOGONSERVER^%
%LOGONSERVER%




But be warned, MS have had a couple of goes at escaping special characters, all of which have been idiotic and overly complicated. Depending on the version of Windows and the prevailing direction of the wind either the "%%" or the "^%" technique should work.

Also, you need to know how the string is used. If there is a danger that environment strings might be expanded again, then you will need to keep adding the escape characters until it gets through.

If this is a one-off command to get the environment variables into a command then often the simplest technique is to unset the environment variable before you run the command, then set it back to the original value afterwards.

For example:
Code:

C:\Temp\KiXtart_OddsAndSods>echo %LOGONSERVER%
\\XXXDC00004

C:\Temp\KiXtart_OddsAndSods>set OLDLS=%LOGONSERVER%

C:\Temp\KiXtart_OddsAndSods>set LOGONSERVER=

C:\Temp\KiXtart_OddsAndSods>echo %LOGONSERVER%
%LOGONSERVER%

C:\Temp\KiXtart_OddsAndSods>set LOGONSERVER=%OLDLS%

C:\Temp\KiXtart_OddsAndSods>echo %LOGONSERVER%
\\XXXDC00004



BTW, how are you checking that the correct command is being stored?