直接在计算机上运行以下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字段。
当我使用sam e凭据在同一台计算机上的其他计算机上运行远程PowerShellTab中的相同脚本时,这三个字段是真实的:
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
编辑:
的作品答案 0 :(得分:1)
在invoke-command调用中添加-credential参数?
答案 1 :(得分: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)