2016-07-30 1 views
0

Je ne parviens pas à exécuter les applets de commande PowerShell fournies avec TFS 2013 Power Tools sur un compte Team Services. Les commandes problématiques incluent Get-TfsItemHistory et Get-TfsChangeset. Cela fonctionne bien avec les instances non hébergées de TFS mais pas avec les services d'équipe. Je peux me connecter avec succès aux services d'équipe en utilisant tf.exe et tfpt.exe. Mon script est montré ci-dessous avec l'exception qui est levée. Ces commandes peuvent-elles être utilisées avec Team Services et si oui, qu'est-ce que je fais de mal? Merci.Comment faire une requête sur Visual Studio Team Services (VSO) à l'aide des applets de commande Microsoft.TeamFoundation.PowerTools.PowerShell

#my Team Services credentials: 
$Username = "[email protected]" 
$tfsPath = "https://myname.visualstudio.com/" 
$passwordFile=".\ps-password.pwd" 

# read passsword from file 
# NOTE: password previously stored within file using command: 
# read-host -prompt Password -assecurestring | 
# convertfrom-securestring | 
# out-file ps-password.pwd -ErrorAction Stop 
if (!(test-path $passwordFile)) 
{ 
    throw [System.IO.FileNotFoundException] "$passwordFile" 
} 
$Password = Get-Content "$passwordFile" | ConvertTo-SecureString 

$creds = New-Object -typename System.Management.Automation.PSCredential -ArgumentList $Username,$Password 

$tfsServer = New-Object System.Uri("$tfsPath") 

$tfsCollection = New-Object Microsoft.TeamFoundation.Client.TfsTeamProjectCollection($tfsServer,$creds) 
$tfsCollection.Authenticate() 

# $tfsCollection | show-object # NOTE: content of collection looks good when viewed 

# PROBLEM COMMANDS: 
Get-TfsChangeset -latest -server $tfsCollection 
Get-TfsItemHistory "$/" -Server $tfsCollection -Version "D2010-01-01~D2016-08-01" -Recurse -IncludeItem 

Erreur générée:

Get-TfsChangeset : The filename, directory name, or volume label syntax is incorrect. 
At ~\myScript.ps1:30 char:1 
+ Get-TfsChangeset -latest -server $tfsCollection 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Get-TfsChangeset], IOException 
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.TeamFoundation.PowerTools.PowerShell.GetTfsChangesetCommand 
+0

Je viens d'essayer avec votre code à mes côtés avec mon VSTS/compte VSO, mais n » Si vous voyez un problème, l'ensemble de modifications peut être obtenu avec succès. L'erreur que vous avez fournie s'est produite lors de "Get-TfsChangeset", une erreur s'est-elle produite lors de l'exécution de $ tfsCollection.Authenticate()? J'ai également ajouté le script powershell que j'ai utilisé auparavant pour obtenir le changeset pour votre référence. –

Répondre

0

Ajouter mon script Powershell pour votre référence:

Add-PSSnapin Microsoft.TeamFoundation.PowerShell 

$tfsPath = "https://xxxxxx.visualstudio.com/" 

[Microsoft.TeamFoundation.Client.TfsTeamProjectCollection] $tfs = get-tfsserver $tfsPath 

Get-TfsChangeset -latest -Server $tfs 
Get-TfsItemHistory "$/" -Server $tfs -Version "D2016-07-27~D2016-08-01" -Recurse -IncludeItem 
+0

J'ai exactement le même comportement. L'inclusion de l'instruction Add-PSSnapin ne modifie pas le résultat dans mon cas particulier car je le charge dans le cadre de mon profil PowerShell (non illustré ci-dessus). – undertherope

+0

L'authentification fonctionne correctement. Fait intéressant, je peux accéder aux données requises en utilisant Powershell si je contourne 'Microsoft.TeamFoundation.Powershell' et utilise l'assembly' Microsoft.TeamFoundation.VersionControl.Client' à la place. Cette approche est cependant très impliquée et je préférerais éviter. – undertherope