0

之前包装了一个进程退出我有我在旋转起来vstest.console.exe的某些情况下,并公布测试结果,以一个带有.trx文件或TFS C#创建自定义的PowerShell命令行。 本命令在本地使用PowerShell时独立工作。运行远程PowerShell命令行开关即完成

然而,当我运行远程命令行开关使用V3 PowerShell远程处理,将调用命令完成,但有2个问题:

  1. 的试运行处理不完整的,因为是公布
  2. 没有结果文件
  3. 我没有得到远程控制台上的结果,而来自新启动的进程

在这里,在当地的情况下,他们冒泡是我在远程PowerShell使用远程调用调用脚本

$j = Invoke-Command -Session $currentPSSession -AsJob -ScriptBlock { 
    Add-PSSnapin "IntegrationTestTools" 
    Start-IntegrationTests -someotherUnimportantArgs 
} | Wait-Job 

$results = $j | Receive-Job 

从单步执行脚本开始,它确实在等待作业,但结果是空的。

要注意我已经安装了远程按Keith Hill's post 。我也安装了Wsman

set-item WSMan:\localhost\Shell\MaxMemoryPerShellMB 0 
set-item WSMan:\localhost\Shell\MaxProcessesPerShell 0 
set-item WSMan:\localhost\Shell\MaxShellsPerUser 0 

所以进程和允许的内存不应该限制这个特定的练习。

任何想法?

+1

为了确保你引用了正确的作业对象,可以这样做:$ job = Invoke-Command ... -AsJob ...'。然后是“等待作业$作业”和“接收作业作业”。另外,snapin特定位(32位或64位)? – 2013-05-01 20:21:59

+0

感谢基思,我没有真正改变我如何得到你的回应之前,作业对象,我在上面更新。管理单元在目标机器上的x64和x86中注册。从监控任务管理器中,我的命令行程序调用的过程准确地旋转了60秒,然后终止。所以我试图确定是什么原因导致超时。你知道任何WSMan设置可能会导致子进程吗? – JoeKir 2013-05-01 20:51:49

+0

你认为这可能是它的原因吗? http://msdn.microsoft.com/en-us/library/e0c5127e-b10c-4be5-9e03-346806fb7a28#endNote130 – JoeKir 2013-05-01 20:56:30

回答

2

我想我会分享的情况下,任何人是不幸有这种情况发生在一些点。如果您连接到远程PowerShell会话时所使用的CredSSP身份验证枚举,您的用户令牌被标记为“模拟”,这意味着你是网络用户组,这意味着无命名管道WCF的知名度作为SID 5-1的一部分-5-2(more commonly known as the Network SID)被拒绝访问命名管道。这是一个关于这个问题的启发性文章:KennyW's blog

我被远程与我的PowerShell命令行启动该进程启动了命名管道:(通信子进程
所以最终不得不psexec(Sysinternals的)的系统,以获得该进程在远程会话中本地执行。!不优雅,但它是所有我可以

也感谢Keith Hill他与PowerShell的故障排除帮助

我的博客文章中详细介绍我的发现 - http://josephkirwin.com/2013/05/06/the-named-pipes-had-a-party-and-imposters-were-not-invited/