You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现双击文件以管理员权限执行PowerShell恢复VM检查点?

解决VM检查点恢复脚本的管理员权限与批量执行问题

问题背景

我在教学场景中使用VM,此前用AOMEI Backupper批处理恢复时频繁出现循环或蓝屏问题,转而采用VM自带的检查点功能。已配置好VM并编写了PowerShell恢复脚本,但该操作需要管理员权限。当前脚本能打开管理员权限的PowerShell窗口,却无法传递restore-vmcheckpoint命令执行恢复;尝试批处理文件也未成功。需求是:

  • 双击单个文件即可在VM主机上恢复指定检查点
  • 支持通过NetSupport批量在18台学生机上执行,无需手动登录

当前无效脚本:

start-process powershell -verb runAs
restore-vmcheckpoint -name "start of class" -vmname "server1" -confirm:$false

解决方案

一、单文件双击执行的修复脚本

原脚本的核心问题是:Start-Process启动新的管理员PowerShell窗口后,原窗口的命令不会在新窗口中执行,必须将恢复命令作为参数传递给新进程。

PowerShell脚本方案(保存为.ps1)

$restoreCommand = 'restore-vmcheckpoint -name "start of class" -vmname "server1" -confirm:$false'
Start-Process powershell.exe -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"$restoreCommand`""

参数说明:

  • -NoProfile:不加载用户配置文件,避免环境干扰
  • -ExecutionPolicy Bypass:临时绕过PowerShell执行策略限制,确保脚本可运行
  • -Command:指定新窗口要执行的恢复命令

批处理文件方案(保存为.bat,更适合双击)

如果偏好批处理格式,使用以下脚本:

@echo off
powershell.exe -Command "Start-Process powershell.exe -Verb RunAs -ArgumentList '-NoProfile -ExecutionPolicy Bypass -Command ""restore-vmcheckpoint -name ""start of class"" -vmname ""server1"" -confirm:$false""'"
pause

双击该批处理文件会自动唤起管理员权限的PowerShell窗口,并执行检查点恢复操作。

二、NetSupport批量执行配置

要在18台学生机上批量完成操作,按以下步骤配置:

  1. 将上述批处理文件(或PowerShell脚本)放到所有学生机均可访问的共享目录(例如\\教学服务器\共享脚本\RestoreVMCheckpoint.bat)
  2. 在NetSupport控制台创建批量任务:
    • 选中目标18台学生机
    • 任务类型选择执行文件,路径指向共享目录中的脚本文件
    • 勾选以管理员权限执行(NetSupport自带该选项,确保命令拥有足够权限)
  3. 启动任务后,NetSupport会自动在每台学生机上触发恢复操作,无需手动登录设备。

内容的提问来源于stack exchange,提问作者James Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 00:02:03