powershell 操作 hyper-v 命令

发布时间 2023-10-29 02:12:27作者: suv789

powershell

查询
Get-WindowsFeature
安装
Install-WindowsFeature -Name Hyper-V
Install-WindowsFeature -Name RSAT-Hyper-V-Tools
Install-WindowsFeature -Name Hyper-V-Tools
Install-WindowsFeature -Name Hyper-V-PowerShell
Restart-Computer

PowerShell 中配置本机的 Hyper-V 虚拟交换网络,可以使用以下命令:

powershell
New-VMSwitch -Name "虚拟交换机名称" -SwitchType "交换机类型"
请将以下参数替换为适当的值:

"虚拟交换机名称":要创建的虚拟交换机的名称。
"交换机类型":虚拟交换机的类型。常见的类型包括 "External"(外部网络)、"Internal"(内部网络)和 "Private"(私有网络)。
以下是几个示例命令:

创建一个外部网络交换机,连接到物理网络上:
powershell
New-VMSwitch -Name "ExternalSwitch" -SwitchType External
创建一个内部网络交换机,用于虚拟机之间的通信:
powershell
New-VMSwitch -Name "InternalSwitch" -SwitchType Internal
创建一个私有网络交换机,仅供虚拟机内部使用:
powershell
New-VMSwitch -Name "PrivateSwitch" -SwitchType Private
运行这些命令后,将创建相应类型的虚拟交换机,并可以在 Hyper-V 管理器中进行配置和管理。

PowerShell 中创建一个带有镜像 ISO 的 Hyper-V 虚拟机,可以使用以下命令:

powershell
New-VM -Name "虚拟机名称" -MemoryStartupBytes 内存大小 -NewVHDSizeBytes 硬盘大小 -Path "虚拟机路径" -SwitchName "虚拟交换机名称"
Set-VMDvdDrive -VMName "虚拟机名称" -Path "ISO文件路径"
请将以下参数替换为适当的值:

"虚拟机名称":要创建的虚拟机的名称。
内存大小:虚拟机的初始内存大小,以字节为单位。例如,可以使用 1GB 的内存,表示为 1GB 或 1GB -as [Byte]。
硬盘大小:虚拟机的硬盘大小,以字节为单位。例如,可以使用 100GB 的硬盘,表示为 100GB 或 100GB -as [Byte]。
"虚拟机路径":虚拟机的保存路径。
"虚拟交换机名称":虚拟机连接的虚拟交换机的名称。
"ISO文件路径":要挂载到虚拟机的镜像 ISO 文件的路径。
以下是一个示例命令:

powershell
New-VM -Name "MyVM" -MemoryStartupBytes 1GB -NewVHDSizeBytes 100GB -Path "C:\Virtual Machines" -SwitchName "ExternalSwitch"
Set-VMDvdDrive -VMName "MyVM" -Path "C:\ISO\myiso.iso"
运行此命令后,将在指定的路径下创建名为 "MyVM" 的新虚拟机,并分配 1GB 的内存和 100GB 的硬盘空间。该虚拟机将连接到名为 "ExternalSwitch" 的虚拟交换机,并挂载位于 "C:\ISO\myiso.iso" 的镜像 ISO 文件。

请注意,在创建虚拟机之前,请确保已安装 Hyper-V 角色并配置好所需的网络设置和存储位置。根据需要,您可以根据特定的环境和需求进行调整。

启动 开机
Start-VM -Name "虚拟机名称"

关闭 关机
Stop-VM -Name "虚拟机名称" -Force

创建 检查点(快照)
Checkpoint-VM -Name "虚拟机名称" -SnapshotName "检查点名称"

主检查点是虚拟机的状态的完整副本,包括内存、磁盘和配置。创建主检查点后,可以还原到该检查点的状态。

子检查点是基于主检查点创建的附加检查点,它记录了主检查点之后的更改。子检查点只能应用于先前的主检查点,而不能直接创建子检查点。

创建主检查点:
powershell
Checkpoint-VM -Name "虚拟机名称" -SnapshotName "主检查点名称"

在主检查点的基础上创建子检查点:
powershell
New-VMSnapshot -VMName "虚拟机名称" -Name "子检查点名称" -SnapshotName "主检查点名称"

还原 检测点(快照)
Restore-VMSnapshot -VMName "虚拟机名称" -Name "检查点名称"

导出 (备份)
Export-VM -Name "虚拟机名称" -Path "导出路径"

导入 (还原)
Import-VM -Path "导入路径"

增加CPU数量 为5 自定义
Set-VMProcessor -VMName "虚拟机名称" -Count 5

增加内存容量 为10G 自定义
Set-VMMemory -VMName "虚拟机名称" -StartupBytes 10GB

查询所有设备
Get-PnpDevice

查询GPU设备
Get-PnpDevice | Where-Object {$_.Class -eq "Display"} | Select-Object FriendlyName, InstanceId

GPU 分配给虚拟机
Add-VMAssignableDevice -VMName "虚拟机名称" -LocationPath "GPU的InstanceId"

在 Windows Server 2022 中,启用 Hyper-V 和 DDA 功能的命令
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform

PowerShell 中为指定的 Hyper-V 虚拟机创建群集,可以使用以下命令:

powershell
Add-ClusterVirtualMachineRole -VMName "虚拟机名称" -Cluster "群集名称"
请将以下参数替换为适当的值:

"虚拟机名称":要添加到群集的虚拟机的名称。
"群集名称":要将虚拟机添加到其中的群集的名称。
以下是一个示例命令:

powershell
Add-ClusterVirtualMachineRole -VMName "MyVM" -Cluster "MyCluster"
运行此命令后,指定的虚拟机将被添加到指定的群集中。

请注意,在将虚拟机添加到群集之前,必须先创建群集并配置其基础结构。

PowerShell 中为指定的 Hyper-V 虚拟机启用复制,可以使用以下命令:

powershell
Enable-VMReplication -VMName "虚拟机名称" -ReplicaServerName "复制服务器名称" -ReplicaServerPort 端口号 -AuthenticationType "认证类型"
请将以下参数替换为适当的值:

"虚拟机名称":要启用复制的虚拟机的名称。
"复制服务器名称":用于存储复制副本的复制服务器的名称或 IP 地址。
端口号:复制服务器上用于接收复制数据的端口号。通常情况下,默认端口号为 80。
"认证类型":指定用于身份验证的方法。常见的选项包括 Kerberos、Certificate 和 CredSSP。
以下是一个示例命令:

powershell
Enable-VMReplication -VMName "MyVM" -ReplicaServerName "ReplicaServer01" -ReplicaServerPort 80 -AuthenticationType "Kerberos"
运行此命令后,指定的虚拟机将启用复制,并将其副本发送到指定的复制服务器。

PowerShell 中将指定的 Hyper-V 虚拟机移动到不同的 Hyper-V 主机上,可以使用以下命令:

powershell
Move-VM -Name "虚拟机名称" -DestinationHost "目标主机名称" -IncludeStorage -DestinationStoragePath "目标存储路径"
请将以下参数替换为适当的值:

"虚拟机名称":要移动的虚拟机的名称。
"目标主机名称":要将虚拟机移动到其中的目标 Hyper-V 主机的名称或 IP 地址。
"目标存储路径":虚拟机的新存储位置。如果未指定,则使用与源主机相同的存储位置。
以下是一个示例命令:

powershell
Move-VM -Name "MyVM" -DestinationHost "NewHost" -IncludeStorage -DestinationStoragePath "D:\Virtual Machines\MyVM"
运行此命令后,指定的虚拟机将被移动到指定的目标主机和存储位置。

远程桌面 Mstsc RDP
@echo off
:: 启用将硬件图形适配器应用于所有远程桌面服务会话
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v "fEnableHardwareGraphicsAcceleration" /t REG_DWORD /d "1" /f
:: 启用配置远程桌面连接的 H.264/AVC 硬件编码
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v "fClientAllowHWCodec" /t REG_DWORD /d "1" /f
:: 启用为远程桌面连接设置 H.264/AVC 444 图形模式的优先级
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v "fClientSetAVC444Enabled" /t REG_DWORD /d "1" /f
:: 配置 Remote FX 数据压缩
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v "fClientRemoteFXCompression" /t REG_DWORD /d "1" /f
:: 启用为远程桌面连接使用 WDDM 图形显示驱动程序
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client" /v "fClientUseWddmDriver" /t REG_DWORD /d "1" /f
:: 解除30帧率限制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations" /v "DWMFRAMEINTERVAL" /t REG_DWORD /d "15" /f