Set-SCVirtualCOMPort

修改虚拟机、虚拟机模板或硬件配置文件的虚拟 COM 端口的属性。

语法

Set-SCVirtualCOMPort
   [-VMMServer <ServerConnection>]
   -GuestPort <Byte>
   -VMHostCOMPort <Byte>
   [-WaitForModem <Boolean>]
   -JobGroup <Guid>
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VMMServer <ServerConnection>]
   -GuestPort <Byte>
   -TextFile <String>
   -JobGroup <Guid>
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VMMServer <ServerConnection>]
   -GuestPort <Byte>
   [-NoAttach]
   -JobGroup <Guid>
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VMMServer <ServerConnection>]
   -GuestPort <Byte>
   -NamedPipe <String>
   -JobGroup <Guid>
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VirtualCOMPort] <VirtualCOMPort>
   -TextFile <String>
   [-JobGroup <Guid>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VirtualCOMPort] <VirtualCOMPort>
   [-NoAttach]
   [-JobGroup <Guid>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VirtualCOMPort] <VirtualCOMPort>
   -VMHostCOMPort <Byte>
   [-WaitForModem <Boolean>]
   [-JobGroup <Guid>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
Set-SCVirtualCOMPort
   [-VirtualCOMPort] <VirtualCOMPort>
   -NamedPipe <String>
   [-JobGroup <Guid>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]

说明

Set-SCVirtualCOMPort cmdlet 修改虚拟通信 (COM) 端口的一个或多个属性。 虚拟 COM 端口是 Virtual Machine Manager (VMM) 环境中使用的虚拟机、虚拟机模板或硬件配置文件的一部分。 使用 VirtualCOMPort 参数指定 COM 端口,或为 GuestPort 参数指定虚拟 COM 端口 ID。 GuestPort 的有效值为零 (0) ,一个 (1) 。

此 cmdlet 可以将虚拟 COM 端口连接到物理 COM 端口、文本文件或命名管道。 此 cmdlet 可以断开虚拟 COM 端口的连接。 如果将虚拟机上的虚拟 COM 端口连接到其主机上的物理 COM 端口,则虚拟机可以使用物理 COM 端口进行输入和输出。 主机类型支持以下虚拟 COM 端口连接类型:

  • Hyper-V。 仅连接到命名管道。
  • VMware ESX。 连接到物理 COM 端口、文本文件或命名管道。
  • Citrix XenServer。 。

WaitForModem 参数指定虚拟机上的虚拟 COM 端口在虚拟机启动时是否立即连接到主机上的物理 COM 端口。

如果为 WaitForModem 指定$True值,则仅当虚拟机上运行的程序将调制解调器命令发送到物理 COM 端口时,虚拟机才会尝试连接到主机上的物理 COM 端口。 如果主机上的 COM 端口已经连接,则虚拟机无法连接到该端口。 如果虚拟机成功连接到物理 COM 端口,则如果使用 COM 端口的虚拟机上的程序停止使用 COM 端口,虚拟机稍后会将物理 COM 端口释放回主机操作系统。

如果为 WaitForModem 指定$False值,则虚拟机会在虚拟机启动时尝试连接到主机上的物理 COM 端口。 如果已捕获主机上的 COM 端口,则虚拟机无法连接到该端口。 这与$True值的行为相同。 如果虚拟机成功连接到物理 COM 端口,则在虚拟机关闭之前,虚拟机不会将物理 COM 端口释放回主机操作系统。

示例

示例 1:将虚拟 COM 端口连接到命名管道

PS C:\> $VM = Get-SCVirtualMachine -Name "VM02"
PS C:\> $COM1 = Get-SCVirtualCOMPort -VM $VM | where {$_.Name -eq "COM1"}
PS C:\> Set-SCVirtualCOMPort -VirtualCOMPort $COM1 -NamedPipe "\\Contoso\Pipe\PipeName"

第一个命令获取名为 VM02 的虚拟机,然后将该对象存储在$VM变量中。

第二个命令从 VM02 获取名为 COM1 的虚拟 COM 端口,然后将该对象存储在 $COM 1 变量中。

最后一个命令将 $COM 1 中的虚拟 COM 端口连接到命名管道 \Contoso\Pipe\PipeName。

示例 2:断开虚拟 COM 端口的连接

PS C:\> $VM = Get-SCVirtualMachine -Name "VM04"
PS C:\> $COM1 = Get-SCVirtualCOMPort -VM $VM | where {$_.Name -eq "COM1"}
PS C:\> Set-SCVirtualCOMPort -VirtualCOMPort $COM1 -NoAttach

第一个命令获取名为 VM04 的虚拟机,然后将该对象存储在$VM变量中。

第二个命令获取 VM04 上名为 COM1 的虚拟 COM 端口,然后将该对象存储在 $COM 1 变量中。

最后一个命令指定 NoAttach 参数。 这会导致命令在 $COM 1 中断开虚拟 COM 端口的连接。 可以使用此命令断开虚拟 COM 端口与主机上的物理 COM 端口、命名管道或文本文件的当前连接。

参数

-GuestPort

指定虚拟机上的虚拟 COM 端口的 ID。 有效值为:0 和 1。

Type:Byte
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-JobGroup

指定一系列命令的标识符,这些命令在包含同一作业组标识符运行的最后一个命令之前作为集运行。

Type:Guid
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-JobVariable

指定在其中跟踪和存储作业进度的变量。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NamedPipe

指定虚拟 COM 端口连接到的命名管道。 典型用法包括将虚拟机连接到主机上的调试程序。 还可以在两个虚拟机之间创建虚拟 Null 调制解调器电缆。 使用以下格式指定管道:\.\ComputerName\Pipe\PipeName

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoAttach

指示此 cmdlet 指定主机上没有物理 COM 端口、命名管道或文件连接到虚拟 COM 端口。 如果指定此参数,该 cmdlet 会断开已连接到物理 COM 端口、命名管道或文本文件的虚拟 COM 端口。

Type:SwitchParameter
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PROTipID

指定触发此操作的性能和资源优化 (PRO) 提示的 ID。 这允许审核 PRO 提示。

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsynchronously

指示作业异步运行,以便控件立即返回到命令 shell。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TextFile

指定虚拟 COM 端口连接到的主机上的文本文件。 虚拟机从虚拟 COM 端口发送此参数指定的文本文件的输出。 该文本文件可以在主机上的任何有效的磁盘驱动器上。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VirtualCOMPort

指定此 cmdlet 修改的虚拟 COM 端口对象。 VMM 支持在虚拟机、模板或硬件配置文件上配置两个 COM 端口。

Type:VirtualCOMPort
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMHostCOMPort

指定虚拟机可以连接到虚拟 COM 端口的主机服务器上的物理 COM 端口对象。

Type:Byte
Aliases:HostPort
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-VMMServer

指定 VMM 服务器。

Type:ServerConnection
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WaitForModem

指示虚拟机上的虚拟 COM 端口在虚拟机启动时是否立即连接到主机上的物理 COM 端口。

如果指定值$True,虚拟 COM 端口将等待连接到主机上的物理 COM 端口。 如果指定值$False,则虚拟机启动时,虚拟 COM 端口会立即连接到主机上的物理 COM 端口。

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输出

VirtualCOMPort

此 cmdlet 返回 VirtualCOMPort 对象。

备注

  • 需要 VMM 虚拟 COM 端口对象。 可以使用 Get-SCVirtualCOMPort cmdlet 检索此对象。