无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1283|回复: 32
打印 上一主题 下一主题

[分享] 判断当前系统是否为VHD系统的方法

[复制链接]
跳转到指定楼层
1#
发表于 2024-12-2 09:15:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 baby1277 于 2024-12-8 19:23 编辑
  1. @echo off
  2. for /f "tokens=3 delims=" %%i in  ('echo LIST VDISK^|diskpart') do set s1=%%i
  3. if defined s1 set vhd=yes
  4. setlocal enabledelayedexpansion
  5. for /f "tokens=2,3" %%i in  ('echo LIST VOLUME^|diskpart') do if "%%j"=="%SystemDrive:~0,1%" set s2=%%i
  6. if "%s1:~-1%"=="!s2!" set vhd=yes
  7. setlocal disabledelayedexpansion
  8. if defined vhd echo 本系统为VHD系统
  9. if not defined vhd echo 本系统不是VHD系统
  10. pause
复制代码
2#
 楼主| 发表于 2024-12-2 09:21:43 | 只看该作者
沙发
回复

使用道具 举报

3#
发表于 2024-12-2 09:34:53 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 2024-12-2 09:38:14 | 只看该作者
谢谢分享

回复

使用道具 举报

5#
发表于 2024-12-2 09:53:10 | 只看该作者
当前系统是current,不一定是默认。

点评

所以没有直接查询 default 而是先查询bootmgr 的default 值 bootmgr 的default 值 可能是{ID} 或者是 current 加上/V 参数就不会显示为 current  详情 回复 发表于 2024-12-2 10:29
回复

使用道具 举报

6#
发表于 2024-12-2 10:27:20 | 只看该作者

谢谢分享
回复

使用道具 举报

7#
 楼主| 发表于 2024-12-2 10:29:52 | 只看该作者
本帖最后由 baby1277 于 2024-12-2 10:42 编辑
szwp 发表于 2024-12-2 09:53
当前系统是current,不一定是默认。

好吧,是我理解错了你说的,你说的情况应该是后期修改了BCD菜单吧。有点难办啊。

点评

不是每次都进默认的,可能会在菜单上换其它系统进入的。  详情 回复 发表于 2024-12-2 14:35
回复

使用道具 举报

8#
发表于 2024-12-2 10:31:15 | 只看该作者
本帖最后由 dos时代菜鸟 于 2024-12-2 11:22 编辑

用 pecmd 可以直接判断,当前系统挂链的 vhd 具体文件。如果查不出,就不是 vhd .



C_vhdx.7z (1.09 MB, 下载次数: 12)

点评

感谢,有时间也学下pecmd,比批处理强大很多。  发表于 2024-12-2 10:57
回复

使用道具 举报

9#
发表于 2024-12-2 10:34:04 | 只看该作者
这个强,支持
回复

使用道具 举报

10#
发表于 2024-12-2 10:44:32 | 只看该作者
本帖最后由 wsasecy 于 2024-12-2 10:51 编辑

回复一个看看本帖隐藏内容、你隐藏了对 bcdedit /enum BOOTMGR 的啥见解~~
发现所藏如下

厉害呀...

点评

这么小的吗  详情 回复 发表于 2024-12-2 10:58
回复

使用道具 举报

11#
发表于 2024-12-2 10:52:31 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

12#
发表于 2024-12-2 10:57:01 | 只看该作者
判断这个有啥实际意义呢?
回复

使用道具 举报

13#
 楼主| 发表于 2024-12-2 10:58:38 | 只看该作者
wsasecy 发表于 2024-12-2 10:44
回复一个看看本帖隐藏内容、你隐藏了对 bcdedit /enum BOOTMGR 的啥见解~~
发现所藏如下

这么小的吗

点评

乖乖,再大就违规了~~  详情 回复 发表于 2024-12-2 17:25
回复

使用道具 举报

14#
发表于 2024-12-2 12:08:49 | 只看该作者
BOOL IsNativeVhdBoot(
  [out] PBOOL NativeVhdBoot
);


https://learn.microsoft.com/zh-c ... ase-isnativevhdboot
回复

使用道具 举报

15#
发表于 2024-12-2 12:41:57 | 只看该作者
还没能搞懂VHD系统是什么,干什么用的
回复

使用道具 举报

16#
发表于 2024-12-2 12:46:18 | 只看该作者

谢谢分享
回复

使用道具 举报

17#
发表于 2024-12-2 13:28:15 | 只看该作者
来学习了
回复

使用道具 举报

18#
发表于 2024-12-2 13:52:54 | 只看该作者
谢谢分享
回复

使用道具 举报

19#
发表于 2024-12-2 14:35:00 | 只看该作者
baby1277 发表于 2024-12-2 10:29
好吧,是我理解错了你说的,你说的情况应该是后期修改了BCD菜单吧。有点难办啊。

不是每次都进默认的,可能会在菜单上换其它系统进入的。
回复

使用道具 举报

20#
发表于 2024-12-2 15:44:01 | 只看该作者
有些系统通过bcdedit无法打开bcd文件的
回复

使用道具 举报

21#
发表于 2024-12-2 17:25:34 | 只看该作者

乖乖,再大就违规了~~
回复

使用道具 举报

22#
发表于 2024-12-2 19:07:40 | 只看该作者
看看 8楼代码,应该可以。

点评

bcdedit /v /enum {current}|findstr "osdevice" 您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432049  详情 回复 发表于 2024-12-3 15:42
回复

使用道具 举报

23#
发表于 2024-12-3 15:42:34 | 只看该作者
dos时代菜鸟 发表于 2024-12-2 19:07
看看 8楼代码,应该可以。

bcdedit /v /enum {current}|findstr "osdevice"
您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432049

点评

那个是 grub 引导器虚拟的内存盘系统,这里说的是 bcd 调用 vhdx 系统。  详情 回复 发表于 2024-12-3 16:13
回复

使用道具 举报

24#
发表于 2024-12-3 16:13:56 | 只看该作者
likeyouli 发表于 2024-12-3 15:42
bcdedit /v /enum {current}|findstr "osdevice"
您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?m ...

那个是 grub 引导器虚拟的内存盘系统,这里说的是 bcd 调用 vhdx 系统。

点评

不是判定当前系统是否为vhd系统吗 ? 这句命令判定不了吗 ?  详情 回复 发表于 2024-12-3 16:22
回复

使用道具 举报

25#
发表于 2024-12-3 16:22:14 | 只看该作者
dos时代菜鸟 发表于 2024-12-3 16:13
那个是 grub 引导器虚拟的内存盘系统,这里说的是 bcd 调用 vhdx 系统。

不是判定当前系统是否为vhd系统吗 ?
这句命令判定不了吗 ?

点评

可以。  详情 回复 发表于 2024-12-4 07:54
回复

使用道具 举报

26#
发表于 2024-12-4 07:54:40 | 只看该作者
likeyouli 发表于 2024-12-3 16:22
不是判定当前系统是否为vhd系统吗 ?
这句命令判定不了吗 ?

可以。

点评

还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启动..  详情 回复 发表于 2024-12-7 09:20
回复

使用道具 举报

27#
发表于 2024-12-6 14:45:20 | 只看该作者
学习
回复

使用道具 举报

28#
发表于 2024-12-7 09:20:55 | 只看该作者

还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启动..
C:\Users\Administrator>powercfg /a
此系统上有以下睡眠状态:
    待机 (S3)

此系统上没有以下睡眠状态:
    待机 (S1)
        系统固件不支持此待机状态。

    待机 (S2)
        系统固件不支持此待机状态。

    休眠
        内部系统组件已禁用休眠。
                从 VHD 启动

    待机(S0 低电量待机)
        系统固件不支持此待机状态。

    混合睡眠
        休眠不可用。

    快速启动
        休眠不可用。

点评

这个不一定,我的就没有  详情 回复 发表于 2024-12-7 14:54
貌似可行,我也想到了另外一个方法,就是用diskpart来查询%SystemDrive%  详情 回复 发表于 2024-12-7 11:13
回复

使用道具 举报

29#
 楼主| 发表于 2024-12-7 11:13:30 | 只看该作者
likeyouli 发表于 2024-12-7 09:20
还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启 ...

貌似可行,我也想到了另外一个方法,就是用diskpart来查询%SystemDrive%
回复

使用道具 举报

30#
发表于 2024-12-7 14:54:49 | 只看该作者
likeyouli 发表于 2024-12-7 09:20
还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启 ...

这个不一定,我的就没有
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-26 21:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表