Cómo encontrar si un espacio de trabajo TFS es un espacio de trabajo local o de server

¿Hay alguna forma de averiguar si una carpeta específica asignada en un espacio de trabajo tfs existente es un espacio de trabajo local o un espacio de trabajo del server ?

Me interesa sobre todo una respuesta utilizando el command tf.exe o powershell o incluso api (¡pero no con la GUI!).

Después de una larga búsqueda (¡horas y horas en la muy mala documentation de msdn sobre el command tf.exe !), ¡He encontrado la manera de get la información!

Primero debe usar el tf.exe workfold c:\your\path para averiguar en qué espacio de trabajo se encuentra la carpeta. El command dio como resultado algo así:

 ================================================================ Workspace : NameOfYourWorkspace (John Doe) Collection: https://tfs.yourtfs.com/tfs/defaultcollection $/: C:\your\path 

Luego tiene que extraer el 'espacio de trabajo' (nota: realmente no sabemos por qué aquí el command tf.exe no tf.exe el espacio de trabajo en el formatting aceptado en todas partes por el command tf.exe es decir, " tf.exe espacio de trabajo; Propietario" y, por consiguiente, debe ser adaptado!) y los datos de 'recostackción' para usarlo en el tf.exe workspaces /format:detailed command tf.exe workspaces /format:detailed , así:

 tf.exe" workspaces /format:detailed /collection:"https://tfs.yourtfs.com/tfs/defaultcollection" "NameOfYourWorkspace;John Doe" 

El command dio como resultado algo así:

 =============================================== Workspace : NameOfYourWorkspace Owner : John Doe Computer : YOU_COMPUTER Comment : Collection : yourtfs.com\DefaultCollection Permissions: Private Location : Local File Time : Current Working folders: $/: C:\your\path 

La información importante que quiero aquí es Location : Local (o Server )

He escrito un pequeño script de powershell, si podría ser de poca utilidad que alguien extraiga los datos en la salida para usarlos:

 function ExtractData($text, $key) { $pattern = "^$key *: *(.+)$" $filtenetworkingText= $text | Select-String $key $found = $filtenetworkingText -match $pattern if ($found) { return $matches[1] } exit 1 } $currentWorkspaceData = (& "$env:VS120COMNTOOLS..\IDE\tf.exe" workfold .) $workspace = ExtractData $currentWorkspaceData "Workspace" $found = $workspace -match "^(.+) \((.+)\)$" if (!$found) { exit 1 } $workspace = $matches[1] + ";" + $matches[2] $collection = ExtractData $currentWorkspaceData "Collection" $location=(ExtractData (& "$env:VS120COMNTOOLS..\IDE\tf.exe" workspaces /format:detailed /collection:$collection $workspace) "Location") $localServer = $location -eq "Local" if($localServer) { Write-Host "Local!!!" } else { Write-Host "Server!!!" } 

Este script da la respuesta solo para la carpeta actual, pero podría adaptarse fácilmente …