为什么命令行参数不被识别?

我有一个用C#for .NET 4.0编写的小型控制台应用程序。 该应用程序需要2个参数,可以是“-run”或“-clr”。 所以这会通过命令行来调用

MyConsoleApp.exe -run 

我已经在Windows 8.1(多台机器),Server 2012,Windows 7和7 SP1中testing了这个应用程序。 我已经在这些机器上testing了它作为pipe理员和一个没有提高权限的标准用户。 它正在所有这些情况下工作。

我有一个客户端在Windows 7 SP1上运行它,当他们通过命令行运行时,它不能识别参数。 如果他们通过计划任务运行它,它的工作。

怪异的部分是参数正在读取,因为应用程序将在命令窗口中显示一个错误,指示错误的参数。 例如

 MyConsoleApp.exe -abc 

会输出

 Invalid switch/value found [-abc]. Program has stopped. 

当客户端运行我提到的第一个命令“-run”参数,他们收到

 Invalid switch/value found [-run]. Program has stopped. 

他们在试图运行它之后提供了命令窗口的截图,并且正确input了所有内容。 如果应用程序通过“计划任务”运行,则在应用程序中工作正常,在设置“操作”时在“添加参数”字段中input“-run”参数。

我最初提交的问题作为编程问题在这里https://stackoverflow.com/questions/29109764/net-console-app-args-not-matching-case,但因为它适用于我所有的testing环境,当客户端使用它在一个计划任务中,在代码中看起来没有错。

有没有人有任何想法,为什么它可能无法在命令提示符下工作,但工作在计划任务? 我认为这可能与命令提示符窗口设置有关,但所有的设置都是特定于窗口的外观。 是否有可能为第三方应用程序(也许是反病毒或其他),以防止这个工作正常?

编辑:客户肯定是input参数在所有的小写。 我已经用他们提供的截图证实了这一点。