4

当我直接在机器上运行以下 PowerShell 脚本时

Add-Type -Path "C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.VersionControl.Client.dll"

$basePath = "http://magv-dev-tfs:8080/tfs/MccCollection"
[Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($basePath)

我得到一个对象,其中设置了字段 AuthenticatedUserName、AuthenticatedUserDisplayName、AuthenticatedUserIdentity。

当我使用相同的凭据从同一台机器上的其他机器上的远程 PowerShellTab 中运行相同的脚本时,这 3 个字段是 emply:

AuthenticatedUserName           : 
AuthenticatedUserDisplayName    : 
AuthenticatedUserIdentity       : 
Uri                             : http://my-tfs:8080/tfs/mcccollection
TimeZone                        : System.CurrentSystemTimeZone
InstanceId                      : 
Name                            : my-tfs\MccCollection
Credentials                     : System.Net.SystemNetworkCredential
Culture                         : de-DE
SessionId                       : 7c76a150-f681-4b3c-9b0d-2836a3a5a908
ClientCacheDirectoryForInstance : 
HasAuthenticated                : False
TfsTeamProjectCollection        : magv-dev-tfs\MccCollection

编辑:

至少我找到了一个解决方法如何使用 [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer 和来自 Powershell 的凭据

4

2 回答 2

1

在调用命令调用中添加 -credential 参数?

于 2013-01-16T20:44:53.823 回答
1

使用 Visual Studio TFS 时,PowerShell 可以访问您在连接到项目时注册的连接。 RegisteredTfsConnections提供对已注册连接的访问​​,因此您不必费心将凭据放入代码中。

以下代码片段连接到 TFS 服务器,并返回一个 WorkItem。

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.WorkItemTracking.Client")
$regProjCollection = [Microsoft.TeamFoundation.Client.RegisteredTfsConnections]::GetProjectCollection("tfs2010\TFS2010-MyCollection")
$tfsTeamProjCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($regProjCollection)
$ws = $tfsTeamProjCollection.GetService([type]"Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore")
$ws.GetWorkItem(2525)
于 2013-12-17T17:49:43.027 回答