通过 vNext 构建触发的 Powershell 脚本在 Hyper-V 服务器上创建虚拟机

Create virtual machine on Hyper-V Server through a Powershell Script triggered by a vNext build

我想这个问题已经很清楚了,如果不是我再解释一下。
我正在尝试使用 build vNext 在虚拟机上部署测试代理。为此,我需要在 Hyper-V 服务器上创建一个虚拟机。

我通过在 Powershell vNext 任务中执行 Powershell 脚本来做到这一点。

当我在我的电脑上执行脚本时,没有问题。但是当我在构建代理中执行它时,我得到了一个错误,似乎是因为一个参数。

这是我的 powershell 脚本:

Import-Module virtualmachinemanager
Import-Module virtualmachinemanagercore

$VMName= "VMTestName"
$cloud= "testCloud"
$Template= "testTemplate"
$VMMComputer = "testServer"
$VMMPort = 8100

$secpasswd = ConvertTo-SecureString "passWord!" -AsPlainText -Force
$credentials = New-Object System.Management.Automation.PSCredential ("useR", $secpasswd)

$VMMServer = Get-SCVMMServer -ComputerName $VMMComputer -TCPPort $VMMPort -ConnectAs Administrator -Credential $credentials -UserRoleName "Administrator"

$TemplateObj = Get-SCVMTemplate -VMMServer $VMMServer -All | where { $_.Name -eq $Template }
$virtualMachineConfiguration = New-SCVMConfiguration -VMTemplate $TemplateObj -Name $VMName
$cloudObj = Get-SCCloud -Name $cloud

Write-Verbose "Creating VM $VMName in cloud $cloud"
New-SCVirtualMachine -Name $VMName -VMConfiguration $virtualMachineConfiguration -Cloud $cloudObj -Computername $VMName| out-null

Start-VM $VMName

错误是:

Get-SCVMMServer:VMM 遇到异常格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数 http://tempuri.org/:ConnectAs 时出错。 InnerException 消息是“预期状态 'Element'.. 遇到 'Text' 名称为“”,名称空间为“”。 '.有关详细信息,请参阅 InnerException。并且无法完成请求。 (错误 ID:20414)

提前致谢。

您可以使用适用于 TFS 2015 的 SCVMM 插件

https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.scvmmapp

  • SCVMM 服务连接 *: Select 上面从下拉列表中定义的 SCVMM 服务连接。
  • 操作 *:Select - 恢复检查点。
  • 虚拟机名称:提供虚拟机的名称或逗号分隔的虚拟机列表,如 fabrikamdev、fabrikamqa、prod05 等
  • 虚拟机模板名称:要使用模板创建虚拟机,请提供虚拟机模板名称
  • VM 的放置路径:指定虚拟机放置期间要使用的虚拟机路径。例如宿主机上的路径:C:\ProgramData\Microsoft\Windows\Hyper-V
  • 附加参数:使用模板创建新虚拟机的附加参数。例如,-StartVM -StartAction NeverAutoTurnOnVM -StopAction SaveVM 等
  • 脚本路径:要执行的 PowerShell 脚本的路径。应该是完全限定路径或相对于默认工作目录
  • 脚本参数:传递给 PowerShell 脚本的参数。序数参数或命名参数
  • 工作文件夹:脚本为运行时的当前工作目录。默认为脚本所在的文件夹。
  • 等待时间:让虚拟机进入就绪状态的等待时间。
  • 检查点名称:对于'Create CheckPoint',输入将应用于虚拟机的检查点的名称。在 'Delete Checkpoint' 或 'Restore Checkpoint' 的情况下,确保检查点名称有效。
  • Select 来自的虚拟机:您可以从 VMM 云或 VMM 主机中确定虚拟机的源范围。
  • 设置VM模板中定义的计算机名称:您可以选中此框以设置指定VM模板中定义的计算机名称。如果未选中,计算机名称将与 'Virtual Machine Names'.
  • 的计算机名称相同