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

如何在WSL环境下替代dmidecode获取UUID及主板序列号

在WSL中用自定义逻辑替代dmidecode命令输出

因为WSL环境下原生dmidecode无法正常获取硬件信息,你可以通过自定义shell函数来让dmidecode -s system-uuid和dmidecode -s baseboard-serial-number自动执行你的替代命令,实现命令调用方式不变但输出正确的效果。

推荐方案:自定义shell函数

这个方法能灵活处理不同的dmidecode参数,兼容原有命令的调用逻辑:

  1. 打开你的shell配置文件(Bash用~/.bashrc,Zsh用~/.zshrc),添加以下内容:
dmidecode() {
    case "$1 $2" in
        "-s system-uuid")
            wmic.exe csproduct get uuid | sed 's/\r$//' | sed -n 2p | sed 's/(.*)/\L\1/'
            ;;
        "-s baseboard-serial-number")
            { whoami.exe /user | sed 's/\r$//' | tail -n 1 | awk '{print $2}' && echo "$WSL_DISTRO_NAME"; } | md5sum - | awk '{ print $1}'
            ;;
        *)
            # 其他参数仍调用原生dmidecode(保持兼容)
            command dmidecode "$@"
            ;;
    esac
}
  1. 让配置立即生效,执行对应的命令:
# Bash用户
source ~/.bashrc

# Zsh用户
source ~/.zshrc
  1. 验证效果:
    执行dmidecode -s system-uuid会返回你之前用WMI命令获取的UUID;执行dmidecode -s baseboard-serial-number会返回对应的MD5值,和你原来的替代命令输出完全一致。

备选方案:别名(局限性较大)

如果只需要处理这两个特定命令,也可以直接设置别名,但别名无法处理参数变化的情况,仅适合固定调用场景:

alias 'dmidecode -s system-uuid'='wmic.exe csproduct get uuid | sed '\''s/\r$//'\'' | sed -n 2p | sed '\''s/(.*)/\L\1/'\'''
alias 'dmidecode -s baseboard-serial-number'='{ whoami.exe /user | sed '\''s/\r$//'\'' | tail -n 1 | awk '\''{print $2}'\'' && echo "$WSL_DISTRO_NAME"; } | md5sum - | awk '\''{ print $1}'\'''

设置后同样需要执行source ~/.bashrc或source ~/.zshrc生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:47:43