[英]Remote TFS Checkin via Powershell
我们目前在每台本地 PC 上都有一个计划任务,当使用 schtasks 远程触发时运行命令“TF.exe /checkin”。 这样一来,当有人忘记签到时,我们可以远程进行。
但我们想将其集成到 PowerShell 脚本中,只需输入计算机名称即可远程触发该脚本,但由于某种原因,它似乎不起作用。
这在本地电脑上运行良好
Invoke-Command -ScriptBlock {& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe' checkin /recursive}
但是,当添加 -ComputerName 时,它无法使用以下错误。
Invoke-Command -ComputerName *ComputerName* -ScriptBlock {& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe' check-in /recursive}
无法确定工作区。 您可以通过运行“tf workspaces /collection:TeamProjetCollectionURL”来纠正此问题。 +CategoryInfo: NotSpecified (无法阻止...ColletionUrl'.:string [], Remoteexpection
有想法该怎么解决这个吗? 我已经尝试过 /collection:https://tfsserver:port/collectionanme 但它也不起作用
错误:如果没有选项 /shelveset,则无法使用选项 /collection,这很奇怪,因为我没有使用 /shelveset。
- - -更新 - -
见下图,在运行 powershell 脚本之前,我在本地电脑上签出了一个文件,然后在远程计算机上运行 Enter-PSSession,然后运行 invoke-command 仍然只签入我的本地文件而不是远程计算机上。
---更新04/12---
您需要使用以下代码在远程 session 上指定工作区路径:
$session = New-PSSession -ComputerName ComputerName
Invoke-Command -Session $session -ScriptBlock { Set-Location D:\workspace}
Enter-PSSession -Session $session
然后运行 tf 命令:
Invoke-Command -ScriptBlock {& 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe' checkin /recursive}
整体结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.