2016-07-30 18 views
0

Ich kann keine PowerShell-Cmdlets ausführen, die mit TFS 2013 Power Tools für ein Team Services-Konto bereitgestellt werden. Problematische Befehle umfassen Get-TfsItemHistory und Get-TfsChangeset. Diese funktionieren gut mit nicht gehosteten Instanzen von TFS, aber nicht mit Team Services. Ich kann erfolgreich eine Verbindung zu Team Services mit tf.exe und tfpt.exe herstellen. Mein Skript wird unten zusammen mit der Ausnahme angezeigt, die geworfen wird. Können diese Befehle mit Team Services verwendet werden und wenn ja, was mache ich falsch? Danke.Abfragen von Visual Studio Team Services (VSO) mit Microsoft.TeamFoundation.PowerTools.PowerShell-Cmdlets

#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 

Fehler generiert:

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

ich mit Ihnen Code an meiner Seite gerade versucht, mit meinem VSTS/VSO-Konto, aber didn‘ Wenn Sie ein Problem sehen, kann der Change-Set erfolgreich ausgeführt werden. Der Fehler, den Sie bei "Get-TfsChangeset" gemeldet haben, tritt bei $ tfsCollection.Authenticate() auf? Ich habe auch das Powershell-Skript hinzugefügt, das ich zuvor verwendet habe, um das Changeset als Referenz zu erhalten. –

Antwort

0

In meinem Powershell-Skript für Ihre Referenz:

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

Ich bekomme genau das gleiche Verhalten. Die Einbeziehung der Add-PSSnapin-Anweisung ändert das Ergebnis in meinem speziellen Fall nicht, weil ich es als Teil meines Powershell-Profils (nicht oben gezeigt) lade. – undertherope

+0

Authentifizierung funktioniert gut. Interessanterweise kann ich mit Powershell auf die erforderlichen Daten zugreifen, wenn ich "Microsoft.TeamFoundation.Powershell" umgehe und stattdessen die Assembly 'Microsoft.TeamFoundation.VersionControl.Client' verwende. Dieser Ansatz ist jedoch sehr involviert und würde ich lieber vermeiden. – undertherope