Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 为什么此命令不在TFS生成中执行?_Powershell_Tfs - Fatal编程技术网

Powershell 为什么此命令不在TFS生成中执行?

Powershell 为什么此命令不在TFS生成中执行?,powershell,tfs,Powershell,Tfs,我有2个powershell脚本 script1.ps1包含对Vault的REST调用,该调用返回包含一些键/值的json响应 Function getValues($token) { $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("X-Vault-Token", $token) $response = Invoke-RestMet

我有2个powershell脚本

script1.ps1
包含对Vault的REST调用,该调用返回包含一些键/值的json响应

Function getValues($token) {
    $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
    $headers.Add("X-Vault-Token", $token)
    $response = Invoke-RestMethod  -method GET -uri "https://vault.com:8243/v1/secret/vault/development" -ContentType 'application/json' -headers $headers
    $response.data| ConvertTo-Json  -depth 100
}
getValues $token
假设响应中的其中一个键如下所示:

key1:value123
script2.ps1
这样调用
scrip1.ps1

$currentDirectory = "D:\\Scripts"
$response = & "$currentDirectory\script1.ps1" | ConvertFrom-Json
$pass = $response[1]."key1"
$pass
如果我在本地进行测试,并且获得了预期的
value123
输出,则该块执行得很好

现在,我在TFS上设置了一个WinRM远程powershell任务,作为调用
script2.ps1
的构建的一部分

当然,我在
script2
中将几乎所有内容都记录到日志文件中,这样我就可以看到除了响应之外的所有输出。无论如何都不会返回响应

当我运行TFS构建时,$pass没有打印任何内容,但在本地它打印得很好


对于TFS,是否有一些特殊的东西需要专门包装此命令?我是不是遗漏了什么???

我终于找到了问题所在

我们将令牌保存在脚本无法从中调用的用户环境变量中。我认为,当我以上述用户的身份登录服务器进行测试时,脚本之所以能够工作是因为它能够识别用户并能够获取环境变量

但是,当我使用远程Powershell从TFS运行时,它无法识别user env变量


在系统环境变量中设置环境变量标记有效

写输出可能吗?@lloyd nope,不起作用。我不明白的是,我甚至没有试图将其打印到TFS控制台,而是获取存储在变量中的值并在其他地方使用它。它没有存储任何东西响应包含什么?@lloyd key1:value123$然后,pass应该包含value123。它在本地非常有效,但从TFS构建,nope@lloyd我在这里遵循了答案,从那以后,这个答案在当地一直运作良好:?