如何检查是否使用 PowerShell 启用了 Hyper-V?
How do you check to see if Hyper-V is enabled using PowerShell?
我正在尝试编写一个 PowerShell 脚本来检查 Windows 可选功能以查看是否安装了 Hyper-V。但是,我的代码不起作用。即使禁用了 Hyper-V,脚本也会输出它已启用。
#Requires -RunAsAdministrator
# Get the Hyper-V feature and store it in $hyperv
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is already enabled.
if($hyperv.State = "Enabled") {
Write-Host "Hyper-V is already enabled."
} else {
Write-Host "Hyper-V is disabled."
}
代码为运行时没有报错。
我认为这与您的 if
状况有关,试试这个:
if($hyperv.State -eq "Enabled")
=
标志行不通,你需要用 PowerShell 的方式
这是适合我的完整 powershell 脚本。只需将其复制并粘贴到提升的 powershell 中,然后按 enter。
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is enabled
if($hyperv.State -eq "Enabled") {
Write-Host "Hyper-V is enabled."
} else {
Write-Host "Hyper-V is disabled."
}
一种更简单的方法是通过单击“开始”按钮并键入 Services.msc 并向下滚动到 Hyper-V 主机计算服务并查看它是否 运行 来转到“服务”。还要检查 Hyper-V 虚拟机管理服务。
如果它们都是 运行,您可以安全地假设 Hyper-V 运行 并且处于活动状态。我的机器 Windows 10 Pro 和 VMWARE Workstation 14.
对于 Windows 10 专业/教育/企业
if ((Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State -ne 'Enabled')
{
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
}
对于Windows服务器
if ((Get-WindowsFeature -Name Hyper-V) -eq $false)
{
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
}
通用脚本
Write-Host "Enabling Hyper-V in host..."
if ((Get-CimInstance Win32_OperatingSystem).Caption -match 'Microsoft Windows 10')
{
if ((Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State -ne 'Enabled')
{
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
}
}
if ((Get-CimInstance Win32_OperatingSystem).Caption -match 'Microsoft Windows Server')
{
if ((Get-WindowsFeature -Name Hyper-V) -eq $false)
{
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
}
}
我正在尝试编写一个 PowerShell 脚本来检查 Windows 可选功能以查看是否安装了 Hyper-V。但是,我的代码不起作用。即使禁用了 Hyper-V,脚本也会输出它已启用。
#Requires -RunAsAdministrator
# Get the Hyper-V feature and store it in $hyperv
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is already enabled.
if($hyperv.State = "Enabled") {
Write-Host "Hyper-V is already enabled."
} else {
Write-Host "Hyper-V is disabled."
}
代码为运行时没有报错。
我认为这与您的 if
状况有关,试试这个:
if($hyperv.State -eq "Enabled")
=
标志行不通,你需要用 PowerShell 的方式
这是适合我的完整 powershell 脚本。只需将其复制并粘贴到提升的 powershell 中,然后按 enter。
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is enabled
if($hyperv.State -eq "Enabled") {
Write-Host "Hyper-V is enabled."
} else {
Write-Host "Hyper-V is disabled."
}
一种更简单的方法是通过单击“开始”按钮并键入 Services.msc 并向下滚动到 Hyper-V 主机计算服务并查看它是否 运行 来转到“服务”。还要检查 Hyper-V 虚拟机管理服务。
如果它们都是 运行,您可以安全地假设 Hyper-V 运行 并且处于活动状态。我的机器 Windows 10 Pro 和 VMWARE Workstation 14.
对于 Windows 10 专业/教育/企业
if ((Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State -ne 'Enabled')
{
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
}
对于Windows服务器
if ((Get-WindowsFeature -Name Hyper-V) -eq $false)
{
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
}
通用脚本
Write-Host "Enabling Hyper-V in host..."
if ((Get-CimInstance Win32_OperatingSystem).Caption -match 'Microsoft Windows 10')
{
if ((Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online).State -ne 'Enabled')
{
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
}
}
if ((Get-CimInstance Win32_OperatingSystem).Caption -match 'Microsoft Windows Server')
{
if ((Get-WindowsFeature -Name Hyper-V) -eq $false)
{
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools
}
}