Windows 宿主机 PowerShell 关闭所有 VirtualBOX 虚拟机脚本

服务器计划任务执行备份脚本,放在备份脚本前,避免服务器执行备份时负载过高,从而失去响应。
 

# 定义空数组,不进行空数组定义,脚本报错。

$idposition = @()

# 获取正在运行的虚拟机,输出包含名称及UUID,结果以字符串格式赋值。

$runningvms = ( C:\"Program Files"\"Oracle"\"VirtualBox"\VboxManage.exe list runningvms | Out-String)

# 以runningvms字符数大于0为条件执行。

if ($runningvms.length -gt 0) {

    # 将runningvms中所有“{*}”结束字符的所在位置加入idposition数组。

    $idposition += [regex]::matches($runningvms, '\{*\}') | foreach {$_.index}

    # 循环次数限制为$idposition元素数量。

    for ($l = 0; $l -le($idposition.count -1); $l++) {

       # 提取runningvms中虚拟机的UUID,从idposition的位置向左读取36字符,字符串格式赋值。

        $vmid = $runningvms.Substring(($idposition[$l] -36), 36) | Out-String

        # 以vmid为标识执行标准关机。

        Start-Process -FilePath "C:\Program Files\Oracle\VirtualBox\VboxManage.exe" -ArgumentList "controlvm $vmid acpipowerbutton" -Wait

    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值