Forum Discussion

0000000000's avatar
0000000000
New Contributor
2 years ago

Scripting Limitations/unable to run certain commands in C:\WINDOWS\System32

I have the following script that I am deploying to a LogMeIn session with private session mode (using link to download LogMeIn agent and not calling card). The LogMeIn technician console and the agent are on the same machine. I am running both as the same AD user:

 

@echo off
C:\WINDOWS\System32\cmd.exe /c echo cmd test
C:\WINDOWS\System32\msg.exe "%username%" /time:0 Hello World

When I try deploying it via LogMeIn I will see the output of the 2nd line "cmd test" but for line 3 I get the following I get 'C:\WINDOWS\System32\msg.exe' is not recognized as an internal or external command, operable program or batch file.

 

 

Why am I able to run C:\WINDOWS\System32\cmd.exe but not C:\WINDOWS\System32\msg.exe?

  • I am able to run the 3rd line if I manually run it directly on command line outside of LogMeIn agent.
  • I still have this issue if I give UAC permission to the LogMeIn agent.
  • When I deploy a script that runs whoami I get the same output as running the command directly on cmd outside of LogMeIn.
  • If I deploy msg instead of the full path I get 'msg' is not recognized as an internal or external command,
    operable program or batch file. I don't get this when I run it directly on the command line outside of LogMeIn.

I'm stumped why this is happening and wonder if this means scripting is more limited than meets the eye.

  • Hi 0000000000, welcome to the community.

     

    I have been informed that the best practice is to check if path C:\Windows\Sysnative\msg.exe exists and then refer msg.exe this way in the shell, otherwise you may call simply msg.exe. 

     

     

    It is recommended to use the following code in a CMD file:
    "
    if exist C:\Windows\Sysnative\msg.exe (
         C:\Windows\Sysnative\msg.exe blabla........
    ) else (
         msg.exe blabbla...
    )
    "

    I hope this helps.

     

2 Replies

  • 0000000000's avatar
    0000000000
    New Contributor
    2 years ago
    The OS I am running this on is Windows 11. What is weird is that running C:\Windows\Sysnative\msg.exe outside of LogMeIn shows that the file doesn't exist and trying to dir C:\Windows\Sysnative shows the directory doesn't exist.

    Running it in LogMeIn works. I guess the LogMeIn applet is running as 32-bit process or running 32-bit command prompt and this folder is a virtual folder only accessible to 32 bit programs so they can run 64-bit programs if the virtual folder is specified in path if these resources are to be believed:
    https://www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm
    https://learn.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector
  • GlennD's avatar
    GlennD
    GoTo Manager
    2 years ago

    Hi 0000000000, welcome to the community.

     

    I have been informed that the best practice is to check if path C:\Windows\Sysnative\msg.exe exists and then refer msg.exe this way in the shell, otherwise you may call simply msg.exe. 

     

     

    It is recommended to use the following code in a CMD file:
    "
    if exist C:\Windows\Sysnative\msg.exe (
         C:\Windows\Sysnative\msg.exe blabla........
    ) else (
         msg.exe blabbla...
    )
    "

    I hope this helps.