TFS在具有管理员权限的远程服务器上运行批处理脚本

时间:2018-10-17 08:16:36

标签: batch-file tfs build-definition

我目前有服务器A,这是我的TFS和构建代理所在的位置。然后,我拥有服务器B,这是我的源代码站点。我试图建立一个构建定义,并将文件从服务器B中的位置复制到另一个服务器,然后构建解决方案。

但是,当我将此批处理文件作为构建定义的一部分运行时,它并没有在需要的位置创建文件夹。我相信由于代理人没有正确的权限。

有没有一种方法可以运行以下批处理脚本,以在具有构建定义的Admin权限的情况下运行。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以尝试以下解决方法:

  1. 将批处理脚本转换为PowerShell脚本,然后复制 将PowerShell脚本定位到目标计算机,并使用PowerShell on Target Machines任务运行脚本。您可以输入管理员用户 和使用任务的密码。参考下面的屏幕截图。
  2. 添加一个PowerShell任务并运行以下脚本以调用cmd.exe 在目标计算机上使用管理员用户帐户运行批处理脚本 (在示例I下,首先将批处理脚本复制到目标计算机 将批处理脚本复制到C:\Scripts\Test.bat):

    Param(
      [string]$computerName = "v-tinmo-12r2",
    )
    $Username = "Domain\user"
    $Password = ConvertTo-SecureString "password-here" -AsPlainText -Force
    
    $cred = New-Object System.Management.Automation.PSCredential($Username,$password)
    
    Invoke-Command -ComputerName $computerName  -Credential $cred -ErrorAction Stop -ScriptBlock {Invoke-Expression -Command:"cmd.exe /c 'C:\Scripts\Test.bat'"}
    

enter image description here