【问题标题】:TeamCity error 'tscon.exe' is not recognized as an internal or external commandTeamCity 错误“tscon.exe”未被识别为内部或外部命令
【发布时间】:2014-10-03 08:26:25
【问题描述】:

我正在使用 tscon.exe 在本地解锁远程计算机,然后才能运行自动化测试。当我通过 RDC 运行命令时,它按预期工作并在本地解锁远程机器:

C:>tscon.exe %sessionname% /dest:console

但我需要将其作为我的第一个 TeamCity 构建步骤运行。作为直接的 TeamCity 自定义脚本或启动 .bat 文件执行此操作都会返回错误:

[16:50:22][步骤 1/11] 在目录中:C:\BuildAgent\work\e4249c2d6a4e9e8d [16:50:22][Step 1/11] 'tscon.exe' 未被识别为内部或外部命令,

为什么通过 TeamCity 使用 tscon.exe 时无法识别?

【问题讨论】:

  • tscon.exe 存在于 %windir%\System32\ 中。您是否检查过您的构建代理 tscon.exe 是否存在。
  • tscon.exe 确实存在于 %windir%\System32\ 中,这就是为什么当我通过 RDC 运行命令时它可以工作的原因。
  • 尝试将工作目录设置为 %windir%\System32\
  • 事实证明,TeamCity 无法从 %windir%\System32\ 位置运行 exe(我想是出于安全原因)。一旦我将 tscon.exe 移动到另一个位置,构建步骤就为我工作了。

标签: teamcity


【解决方案1】:

我刚遇到同样的问题,将 exe 移出 System32 对我来说不是一个选择。所以我必须深入挖掘。

原来问题不在于 Teamcity。是窗户。

“Windows 文件系统重定向强制 32 位应用程序尝试安装到 %windir%\System32 或从其访问,被拦截并被重定向或重新指向 %windir%\SysWOW64。”

解决方案是为该目录使用别名 ( %windir%\Sysnative ),不会重定向窗口。

试试这个:

 C:\Windows\Sysnative\tscon.exe %sessionname% /dest:console

更详细的参考:http://www.tipandtrick.net/how-to-suppress-and-bypass-system32-file-system-redirect-to-syswow64-folder-with-sysnative/

【讨论】:

    【解决方案2】:

    解决办法如下:

    • 将 tscon.exe 复制到 %windir%\System32\ 以外的任何位置
    • 即C:\TeamCity\tscon.exe
    • 添加 TC 构建步骤如下(确保包括工作目录):

    • 现在远程机器将在完成 TC 步骤之前在本地登录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      相关资源
      最近更新 更多