PowerShell if和else脚本

Luc*_*698 1 powershell

我正在编写一个脚本来启动VM,如果它当前没有运行.我知道这样做的命令,但我的语法有问题.

在此脚本中,我想选择一个虚拟机,如果它处于关闭状态,我的脚本就会启动它,但如果虚拟机处于打开状态,则脚本会显示一条消息"虚拟机正在运行".

这时我写了一个脚本,但语法不正确:

if (Get-VM | Format-Table name, state -eq running) {
    Write-Host -ForegroundColor red "VM running
}
else(start-vm -name "name")
Run Code Online (Sandbox Code Playgroud)

Mar*_*ndl 5

您应该使用Where-Objectcmdlet而不是Format-Tablecmdlet来过滤正在运行的vms.此外,您必须用大括号包装您的else语句:

if (Get-VM -name 'yourVmName' | Where-Object state -eq running) 
{
    write-host -foregroundcolor red "VM running"
}
else 
{
    start-vm -name 'yourVmName'
}
Run Code Online (Sandbox Code Playgroud)