切换导航
简历
工具
演示
查询
导航菜单
服务端
30
前端
114
数据库
82
进阶开发
8
桌面程序
2
QA
15
软件使用
36
规范协议
5
操作系统
11
AI
0
复用资源
6
硬件
0
标签
Git
办公软件
开发工具
浏览器
工具箱
Web服务器
Gitee
Github
SVN
SQL Server / SSMS
Visual Studio
VS Code
nginx
微信
PS
SSH
Hyper
gitblit
Monorepo
VMware
IntelliJ IDEA
DataGrip
外部链接
.NET Core SDK和运行时安装包
淘宝 NPM 镜像
查询网
Tables Generator线上表格转换工具
引用cdn在线脚本和样式
首页
软件使用
Hyper-V 使用之 PowerShell 操作 Hyper-V
[TOC] ## 1. Hyper-V 模块列表 运行以下命令以显示适用于 Hyper-V PowerShell 模块的 PowerShell 命令的可搜索列表 ```shell Get-Command -Module hyper-v | Out-GridView ``` 运行上面命令后会弹出下面窗口,通过筛选可以查看Hyper-V的模块  ## 2. 查看 Hyper-V 命令详细 通过在 PowerShell 中使用 `Get-Help 加 Hyper-V 命令` 可以查看 Hyper-V 相关命令的详细信息,如构建命令的方法、必需和可选参数定义以及可以使用的别名,例如下面示例查看 Hyper-V 中 `Get-VM` 命令 ```shell # Hyper-V 命令 Get-Help Get-VM ``` **结果展示:** ```shell 名称 Get-VM 摘要 Gets the virtual machines from one or more Hyper-V hosts. 语法 Get-VM [[-Name] <String[]>] [-CimSession <CimSession[]>] [-ComputerName <String[]>] [-Credential <PSCredential[]>] [<CommonParameters>] Get-VM [[-Id] <Guid>] [-CimSession <CimSession[]>] [-ComputerName <String[]>] [-Credential <PSCredential[]>] [<CommonParameters>] Get-VM [-ClusterObject] <PSObject> [<CommonParameters>] 说明 The Get-VM cmdlet gets the virtual machines from one or more Hyper-V hosts. 相关链接 Online Version: https://learn.microsoft.com/powershell/module/hyper-v/get-vm?view=windowsserver2025-ps&wt.mc_id=ps-gethelp 备注 若要查看示例,请键入: "get-help Get-VM -examples". 有关详细信息,请键入: "get-help Get-VM -detailed". 若要获取技术信息,请键入: "get-help Get-VM -full". 有关在线帮助,请键入: "get-help Get-VM -online" ``` > Get-Help 运行时会检查本机的帮助文档,如果不存在对应的文档,会进行对应帮助文档的下载 ## 3. 查看 Hyper-V 虚拟机列表 **查看所有虚拟机列表** ```shell PS C:\WINDOWS\system32> Get-VM Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- Ubuntu 18.04 LTS Running 0 7270 4.05:28:06.6860000 正常运行 12.0 ``` **查看已启动的虚拟机列表** ```shell PS C:\WINDOWS\system32> Get-VM | where {$_.State -eq 'Running'} Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- Ubuntu 18.04 LTS Running 0 7240 02:21:59.9790000 正常运行 12.0 ``` **查看关机状态的虚拟机** ```shell PS C:\WINDOWS\system32> Get-VM | where {$_.State -eq 'Off'} Name State CPUUsage(%) MemoryAssigned(M) Uptime Status Version ---- ----- ----------- ----------------- ------ ------ ------- Ubuntu 18.04 LTS Off 0 0 00:00:00 正常运行 12.0 ``` ## 4. 启动和关机虚拟机 **启动命令:** ```shell # 语法:Start-VM -Name <virtual machine name> # 注意名称这个参数要使用双引号 PS C:\WINDOWS\system32> Start-VM -Name "Ubuntu 18.04 LTS" ``` **关机命令:** ```shell PS C:\WINDOWS\system32> Stop-VM -Name "Ubuntu 18.04 LTS" ``` **批量启用关机状态虚拟机命令:** ```shell PS C:\WINDOWS\system32> Get-VM | where {$_.State -eq 'Off'} | Start-VM ``` **批量关机启用状态虚拟机命令:** ```shell PS C:\WINDOWS\system32> Get-VM | where {$_.State -eq 'Running'} | Stop-VM ``` > 注意启动和关机命令,虚拟机的名称需要使用双引号,否则会报错。Start-VM和Stop-VM也可以省略-Name,直接使用Start-VM "Ubuntu 18.04 LTS" 也可以启动虚拟机 ## 5. 新建虚拟机 新建虚拟机需要在PowerShell 集成脚本环境 (ISE) 中创建,在开始菜单这种查找 `PowerShell ISE` 打开后输出下面代码便可创建一个新的虚拟机 ```shell $VMName = "VMNAME" $VM = @{ Name = $VMName MemoryStartupBytes = 2147483648 Generation = 2 NewVHDPath = "C:\Virtual Machines\$VMName\$VMName.vhdx" NewVHDSizeBytes = 53687091200 BootDevice = "VHD" Path = "C:\Virtual Machines\$VMName" SwitchName = (Get-VMSwitch).Name } New-VM @VM ``` 上面是使用 PowerShell 中的 Hyper-V 模块创建新虚拟机的脚本,通过 splatting 技术(参数哈希表)简化了命令调用。下面详细分析如下: ### 5.1. 变量定义 ```powershell $VMName = "VMNAME" ``` - 定义了一个变量 `$VMName`,用于存储虚拟机的名称(此处为 `"VMNAME"`,实际使用时需替换为具体名称,如 `"WebServer01"`)。 ### 5.2. 参数哈希表 `$VM` 通过哈希表 `$VM` 定义了创建虚拟机所需的所有参数,键为参数名,值为参数值,后续通过 `@VM` 传递给 `New-VM` 命令。 | 参数名| 示例值| 含义说明| |--|--|--| | `Name`| `$VMName`(即 `"VMNAME"`)| 虚拟机的名称,对应变量 `$VMName` 的值。| | `MemoryStartupBytes` | `2147483648`| 虚拟机的启动内存大小(单位:字节)。<br>示例值 `2147483648` 等于 2GB(1GB = 1073741824 字节)。 | | `Generation`| `2`| 虚拟机的代系(Generation)。<br>- `1`:支持 BIOS 启动,兼容旧系统;<br>- `2`:支持 UEFI 启动,支持 Secure Boot,性能更优(推荐现代系统)。 | | `NewVHDPath`| `"C:\Virtual Machines\$VMName\$VMName.vhdx"` | 新建虚拟硬盘(VHDX)的完整路径。<br>示例中路径为 `C:\Virtual Machines\VMNAME\VMNAME.vhdx`(会自动创建父目录)。 | | `NewVHDSizeBytes`| `53687091200`| 新建虚拟硬盘的大小(单位:字节)。<br>示例值 `53687091200` 等于 50GB(1GB = 1073741824 字节)。 | | `BootDevice`| `"VHD"`| 虚拟机的启动设备。<br>`"VHD"` 表示从虚拟硬盘启动(其他可选值:`"CD"` 从光驱启动、`"NetworkAdapter"` 从网络启动)。 | | `Path`| `"C:\Virtual Machines\$VMName"`| 虚拟机配置文件(如 .vmcx、.vmgs 等)的存储路径。<br>示例中为 `C:\Virtual Machines\VMNAME`。 | | `SwitchName`| `(Get-VMSwitch).Name`| 虚拟机要连接的虚拟交换机名称。<br>`(Get-VMSwitch).Name` 表示自动获取主机上第一个可用的虚拟交换机(若有多个,可能需要指定具体名称)。 | ### 5.3. 创建虚拟机命令 ```powershell New-VM @VM ``` - `New-VM` 是 Hyper-V 模块中用于创建虚拟机的核心命令。 - `@VM` 是 splatting 语法,将哈希表 `$VM` 中的键值对作为参数传递给 `New-VM`,等价于: ```powershell New-VM -Name "VMNAME" -MemoryStartupBytes 2147483648 -Generation 2 ...(其他参数) ``` ### 5.4. 总结 这段代码的作用是:在本地 Hyper-V 主机上创建一个名为 `VMNAME` 的第 2 代虚拟机,配置 2GB 启动内存、50GB 虚拟硬盘,存储路径为 `C:\Virtual Machines\VMNAME`,并自动连接到主机上的虚拟交换机,启动设备为虚拟硬盘。 实际使用时,通常需要修改 `$VMName`、存储路径、内存/硬盘大小等参数以适应需求。
扫一扫手机看
点击排行
windows 文件资源管理器使用
Layui 弹窗open使用说明
SQL Server 中字符串函数使用
C# 使用QQ邮箱代理做邮件接收功能
SQL Server关于apply的两种形式cross apply 和 outer apply
ASP.NET MVC 模型的自定义验证
nvm安装及常用命令
SQL Server 中数据类型转换
SQL Server 中WITH AS短语的使用
IE浏览器下AJAX缓存问题导致数据不更新的解决办法
订阅号