基本的Hyper-V PowerShell命令

管理Hyper-V环境可能是一项艰巨的任务。因此,您需要一个功能强大的管理工具,该工具可让您从中央控制台配置和控制虚拟基础架构。即使您可以使用高级GUI工具(Hyper-V管理器,服务器管理器或System Center虚拟机管理器),但如果不使用PowerShell,您仍将无法完全享受Hyper-V体验并探索虚拟机监控程序的功能。与上述工具不同,PowerShell允许您自动化所有核心任务,从而为您提供更大的灵活性和效率。

今天的博客文章探讨了PowerShell的工作原理,哪些Hyper-V PowerShell命令可以提高虚拟机(VM)性能以及此CLI工具如何大大简化Hyper-V管理过程。这是每个IT管理员都应该知道的Hyper-V PowerShell命令列表:

Get-Command

Get-Help

Get-VM

Start-VM

Stop-VM

Checkpoint-VM

Test-VHD

Measure-VM

Get-VMNetworkAdapter

Update-VMVersion

Get-Process

Where-Object

什么是PowerShell?

PowerShell是Microsoft开发的任务自动化和配置管理框架,其中包括基于.NET Framework和.NET Core的命令行外壳和相关脚本语言。该工具是专门为系统管理员设计的,它包括一个交互式提示和一个脚本环境,可以单独使用或组合使用。

通过在单个PowerShell脚本中排列多个cmdlet,PowerShell命令(也称为cmdlet)可用于自动执行各种任务。Microsoft已经开发了一百多个可用于执行基本或复杂任务的PowerShell核心命令。

但是,PowerShell是一个开源工具,这意味着任何第三方开发人员都可以添加新的cmdlet。因此,任何人都可以通过在GitHub上共享自己的PowerShell命令来为Microsoft PowerShell代码库做出贡献。

PowerShell可以做什么?

新手和经验不足的Hyper-V用户通常更喜欢运行GUI工具,因为它很容易找到所需的功能和设置以及使用图形界面来发现任何问题。但是,GUI工具不会启用自动化,这意味着要将更改应用于所有VM,您将必须分别配置每个Hyper-V VM。例如,在创建新的VM之后,您将必须手动更新其某些默认设置。

PowerShell可以帮助Hyper-V管理员快速自动化管理操作系统(Linux,macOS和Windows)以及相关进程的任务。与GUI工具不同,PowerShell允许您仅使用命令行来管理整个系统。

此外,您可以将所需的Hyper-V PowerShell命令保存到文本文件(扩展名为.ps1),然后运行此脚本来执行某些任务。此外,您可以使用任务计划程序来计划在特定时间启动的PowerShell脚本。

如何打开PowerShell

要在基于GUI的操作系统中打开PowerShell,您需要单击“开始”,然后在搜索栏中键入PowerShell。右键单击PowerShell图标,然后选择“以管理员身份运行”以提升模式打开PowerShell。

如果运行Windows Server Core或Hyper-V Server,则必须在命令提示符下键入PowerShell,然后按Enter。之后,“命令提示符”窗口中的Windows PowerShell会话应自动启动。然后,将PS前缀添加到命令提示符,以指示您已启动Windows PowerShell会话。

最佳Hyper-V PowerShell命令

在您了解PowerShell是什么以及它如何工作之后,就该学习如何使用Hyper-V PowerShell命令来发挥自己的优势了。有许多有效的Hyper-V PowerShell命令可简化管理Hyper-V的过程。

现在,让我们了解Hyper-V PowerShell命令可以为您的虚拟基础架构打开的各种可能性。

Get-Command

此Hyper-V PowerShell命令对不熟悉PowerShell且不知道应使用哪些cmdlet以及如何使用它们的用户特别有用。通过运行Get-Command cmdlet,可以查看计算机上安装的所有可用cmdlet,功能和别名的完整列表。

但是,如果希望缩小搜索范围并获取符合特定条件的Hyper-V PowerShell命令列表,则可以使用Get-Command * -VM cmdlet查找允许您控制和配置VM的命令列表。通过将VM参数更改为VHD,可以获取用于管理虚拟硬盘的cmdlet的完整列表。因此,您可以尝试各种搜索参数以获得所需的结果。

Get-Help

确定要使用的Hyper-V PowerShell命令后,您可以了解有关cmdlet的更多信息。为此,可以使用Get-Help cmdlet。例如,要查找有关Get-VM cmdlet的更多信息,请键入以下内容:

Get-Help Get-VM

Get-VM

通过以下Hyper-V PowerShell命令,您可以查看一个或多个Hyper-V主机上所有可用的VM。要查看本地Hyper-V主机上的所有VM,应运行Get-VM cmdlet。

在PowerShell屏幕上,您可以看到可用VM的列表,包括它们的名称,状态,CPU使用率,分配的内存,正常运行时间,状态和版本。

Start-VM

此特定的cmdlet可帮助您启动所选的VM。为此,请运行以下Hyper-V PowerShell命令:

Start-VM -Name 'Windows Server 2016'

因此,应在本地Hyper-V主机上启动名为Windows Server 2016的VM。让我们通过运行Get-VM cmdlet来检查VM是否已真正启动。

此外,您可以使用Start-VM cmdlet的修改版本,该版本允许您仅在VM名称以Hyper-V开头时启动VM:

Start-VM -Name Hyper-V*

如您所见,名为Hyper-V Server Desktop的VM已成功启动。但是,另一台VM(Hyper-V Server 2012)已经处于运行状态,PowerShell会通知您这一事实。

Stop-VM

Stop-VM cmdlet允许您关闭或关闭选定的VM。为此,可以运行以下cmdlet:

Stop-VM -Name 'Windows Server 2016'

如您所见,所选的VM已通过客户机OS成功关闭。

另一个示例是,您可以关闭名称以Hyper-V开头的VM:

Stop-VM -Name Hyper-V* –TurnOff

如果发现您的VM没有响应,则可以强制其关闭。为此,运行以下PowerShell cmdlet:

Stop-VM -Name 'Windows Server 2016' –Force

请注意,强制关机类似于拉物理机上的电源,这意味着它可能会导致未保存的应用程序数据丢失。在这种情况下,建议您保存虚拟机,以避免潜在的数据丢失。为此,您需要运行Save-VM cmdlet,它等同于休眠物理计算机:

Save-VM -Name 'Windows Server 2016'

如果选择保存名称以Hyper-V开头的VM,请运行以下Hyper-V PowerShell命令:

Get-VM -Name Hyper-V* | Save-VM

Checkpoint-VM

另一个对管理虚拟环境至关重要的Hyper-V PowerShell命令是Checkpoint-VM cmdlet。Checkpoint-VM cmdlet可帮助您创建所选VM的Hyper-V快照(也称为Hyper-V快照)。运行以下cmdlet来创建特定VM(Windows Server 2016)的名为Update1的检查点。

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName Update1

要验证是否已成功创建VM,请使用以下Hyper-V PowerShell命令:

Get-VMSnapshot -VMName 'Windows Server 2016'

另一方面,如果要删除某些Hyper-V快照,则可以使用Remove-VMSnapshot cmdlet。例如,如果要删除名称以“ Testing”开头的所有VM快照,则应运行以下cmdlet:

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name Testing*

上面的屏幕快照演示了删除所选Hyper-V快照的整个过程。

Test-VHD

此Hyper-V PowerShell命令用于验证虚拟硬盘文件是否确实存在,并且可用于Hyper-V部署。该cmdlet如下所示:

Test-VHD -Path C:\Testing.vhd

在VHD路径有效的情况下,您将在屏幕上看到以下输出。

Measure-VM

通过此Hyper-V PowerShell命令,您可以收集特定VM的资源利用率数据。例如,运行以下cmdlet来了解名为Windows Server 2016的VM的CPU使用率,RAM使用率,磁盘容量和网络流量:

Measure-VM -VMName 'Windows Server 2016'

请注意,仅在所选VM上启用资源计量后,Measure-VM cmdlet才能报告所需的数据。要启用资源计量,请使用以下Hyper-V PowerShell命令:

Enable-VMResourceMetering -VMName 'Windows Server 2016'

Get-VMNetworkAdapter

另一个有用的PowerShell cmdlet是Get-VMNetworkAdapter,它使您可以识别所选VM的虚拟网络适配器。例如,如果要从所有虚拟机以及管理操作系统中查找虚拟网络适配器,则应运行以下Hyper-V PowerShell命令:

Get-VMNetworkAdapter –All

如果一切正确,那么您应该在PowerShell屏幕上看到以下信息:

使用Hyper-V PowerShell命令,可以使用Hyper-V网络适配器执行各种简单和复杂的任务。查看我们的博客文章之一,找出哪些cmdlet可以帮助您在Hyper-V环境中管理和配置虚拟网络适配器。

Update-VMVersion

PowerShell具有一个cmdlet,可用于更新所选VM的版本:

Update-VMVersion -Name 'TestVM'

运行Hyper-V PowerShell命令后,可以将名为TestVM的VM更新为当前的VM版本。

Get-Process

此Hyper-V PowerShell命令可以帮助您查看本地计算机上的所有当前进程。运行Get-Process cmdlet之后,您可以在屏幕上获取以下信息:

该表包含有关进程已打开多少句柄的信息;该进程正在使用多少非页面内存;进程正在使用多少可分页内存;流程工作集的大小;进程正在使用多少虚拟内存;已为所有处理器分配了多少处理器时间;进程ID;进程名称。

要缩小搜索范围并找到特定的进程,应键入进程名称或ID。例如,如果您想了解Microsoft Word当前的工作方式,则应浏览所有正在运行的进程的列表,并找到包含有关Microsoft Word(即WinWord)的信息(包括其进程ID)的行。使用进程ID,可以运行以下cmdlet来获取必要的数据:

Get-Process -ID 8892

此外,有关当前WinWord进程的数据可以用另一种格式表示,即作为属性列表。运行此cmdlet可获得更详细的输出:

Get-Process WINWORD | Format-List *

掌握了流程数据之后,您可以运行以下cmdlet:

Stop-Process,它使您可以停止一个或多个正在运行的进程。

Wait-Process,它允许您等待一个或多个正在运行的进程停止,然后再启用任何其他输入。

Start-Process,它使您可以在本地计算机上启动一个或多个进程。

Debug-Process,它允许您将调试器附加到本地计算机上的一个或多个正在运行的进程。

例如,如果要从PowerShell启动记事本应用程序,则应运行以下cmdlet:

Start-Process -FilePath "notepad.exe"

另一个示例是当您以“普通”模式打开PowerShell,但是需要以提升模式运行PowerShell才能访问管理权限。在这种情况下,请运行以下Hyper-V PowerShell命令:

Start-Process -FilePath "powershell" -Verb RunAs

另一方面,如果正在运行的进程之一停止响应,则可以运行Stop-Process cmdlet暂停失败的应用程序:

Stop-Process -Name "notepad"

在这种情况下,本地计算机上的记事本应用程序的所有实例都将停止。

每个记事本实例都有其自己的进程ID。如果要停止特定的记事本实例,则应使用Stop-Process cmdlet中的ID参数。为此,您首先需要运行Get-Process cmdlet,找到所需的活动进程,并标识要停止的进程ID。

例如,您可以通过标识特定的记事本进程的进程ID并运行以下Hyper-V PowerShell命令来停止该进程:

Stop-Process -ID 5052

因此,仅应停止选定的记事本进程。

Where-Object

通过此Hyper-V PowerShell命令,可以筛选管道对象并找到所需的确切数据。在这种情况下,您需要创建一个PowerShell脚本,在其中指定可以沿管道传递哪些对象。使用各种搜索条件,您可以在本地计算机上找到任何对象。

例如,如果要查找已停止运行的进程,请使用此cmdlet:

Get-Service | Where-Object {$_.Status -eq 'Stopped'}

当您要查找特定的cmdlet时,使用Where-Object cmdlet的另一个示例。以下Hyper-V PowerShell命令可以帮助您找到所有以Wait开头的cmdlet:

Get-Command | Where-Object {$_.Name -like '*wait*'}

下一个Where-Object cmdlet可以帮助您仅基于其名称来查找特定进程。通过运行以下命令,可以获得名称以sys开头的所有进程的列表:

Get-Process | Where-Object {$_.ProcessName -Match "^sys.*"}

如您所见,使用这些cmdlet可以执行的任务数量令人印象深刻,您绝对应该更加注意Hyper-V PowerShell命令。PowerShell cmdlet允许您同时使用多个VM执行各种任务,并充分利用Hyper-V功能。尽管PowerShell乍一看似乎令人生畏,但是一旦您了解如何使用它,您就可以快速发现如何使用Hyper-V PowerShell命令来发挥自己的优势。

基本的Hyper-V PowerShell命令相关推荐

  1. 服务器不知道循环生成文件,Windows服务器下PowerShell命令往服务器共享文件夹进行文件拷贝、循环文件重命名...

    由于项目需要,接触到了PowerShell命令,但是苦于以前没有接触过,几句话的代码百度搜索了很长时间. 主要功能是Windows服务器下利用PowerShell命令实现文件拷贝.文件重命名(去掉文件 ...

  2. PowerShell命令免杀思路

    文章目录 前言 powershell变形方法 大小写 管道符 修改函数名 命令拆分 反引号处理 base64免杀 组合拳 其他思路 低版本powershell 前言 powershell是一种命令行外 ...

  3. w7虚拟机服务器管理器,Hyper - V (五) 在Win7中安装Hyper - V 管理工具远程操作虚拟机...

    在Win7中安装Hyper - V 管理工具远程操作虚拟机 由于在Hyper - V 中安装的虚拟机运行时鼠标会出现延迟现象,所以我们可以在客户机Win 7 上安装虚拟机. 首先从microsoft ...

  4. 在win7怎么使用linux指令,Win7系统的Powershell命令怎么使用

    Win7系统的Powershell命令怎么使用 命令提示符的使用频率虽然不高,但它在系统和网络管理,维护工作中起着重要的作用.在微软最新的Windows7系统中也为我们带来了cmd的升级版Window ...

  5. 了解PowerShell命令——PowerShell三分钟(二)

    好了,之前我们讲过学习PowerShell的必要性,那么今天开始实际操作下PowerShell. PowerShell预装在Windows 7以上的系统中,无需额外下载,即可使用 你可以在开始菜单中找 ...

  6. Powershell 命令行泄漏下一个 Windows 10 更新内容

    Windows 10 下一个版本(称为Build 1903或19H1)更新内容,可以通过 PowerShell 的 Get-VMHostSupportedVersion 可以看到. Tero Alho ...

  7. Windows任务计划创建计划,定时执行PowerShell命令

    [环境介绍] 操作系统:Windows Server 2012 R2,64位操作系统 PowerShell版本:PowerShell 1.0 脚本位置:C:\BackUp.ps1 启动目录:C:\Wi ...

  8. Jenkins: 执行 PowerShell 命令

    Jenkins 默认是不支持执行 PowerShell 命令的,需要安装插件才能完成这样的任务.本文将介绍 Jenkins PoserShell 插件的基本用法和常见问题. 安装 PowerShell ...

  9. powershell如何编程C语言,如何用C语言执行powershell命令

    匿名用户 1级 2015-03-03 回答 我有一条获取server安装的各种组件的powershell命令,可以在server上正常命令行执行 powershell -command "& ...

  10. Google Chrome —— 使用 PowerShell 命令安装 Google Chrome 浏览器

    PowerShell命令 $Path = $env:TEMP; $Installer = "chrome_installer.exe"; Invoke-WebRequest &qu ...

最新文章

  1. 关于本分类(codeforces-好题系列)
  2. android 虚线
  3. 如何优化linux服务器,手把手教你如何优化linux服务器
  4. 解决navicat 导出excel数字为科学计数法问题
  5. ubuntu更换下载源
  6. java第三章_【Java】第三章 变量
  7. oracle调整显示长宽,Oracle设置SQLPlus结果显示的宽度,ORACLE sqlplus提示符设置
  8. Strategy 定义一系列算法或策略,把它们封闭起来,并且使它们相互可以替换。各算法或策略可以独立于客户程序而变化。...
  9. MySQL 异常有这一篇就够了!
  10. python缩进设计_Python 的缩进是不是反人类的设计?
  11. (IStool)判断系统位数并打包不同的文件
  12. go interface 转 string_深入理解Go的interface内部执行原理
  13. jqGrid的单字段查询
  14. php生成excel完整实例代码,PHP输出Excel实例代码
  15. 一阶微分方程组c语言编程,一阶常微分方程数值解的C语言编程实现.doc
  16. 阜阳市计算机学校助学金申请书,计算机专业学生助学金申请书范文
  17. 微型计算机最早应用于,计算机文化基础题库(含答案)
  18. Oracle 迁移至Mysql
  19. 送书【新书】 |《Git从入门到精通》
  20. qpython3手机版turtle_使用Python turtle画一片树林

热门文章

  1. 360浏览器兼容模式的页面显示问题
  2. 本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+... 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。
  3. C语言基础Day02数据类型及运算符
  4. HackRF初次接触
  5. 判断GPS定位服务是否打开
  6. UITableViewCell使用cell和cell.contentView的区别
  7. 如何用计算机玩我的世界,玩《我的世界》电脑不给力怎么办?答案想必不用我多说了吧...
  8. 重度抑郁症患者的非快速眼动睡眠
  9. 06-HTML5详解
  10. Dropbear 安装配置与启动ssh服务详解