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/