通过 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'.
的计算机名称相同
我想这个问题已经很清楚了,如果不是我再解释一下。
我正在尝试使用 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'. 的计算机名称相同