脚本如何获取系统版本信息

wen 实用脚本 27

本文目录导读:

脚本如何获取系统版本信息

  1. Windows 系统
  2. Linux 系统
  3. macOS 系统
  4. 跨平台通用脚本
  5. 技术解释
  6. 注意事项

根据你的系统类型,获取系统版本信息的方法如下:

Windows 系统

PowerShell

# 获取完整版本信息
Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber
# 或使用更简单的命令
(Get-WmiObject Win32_OperatingSystem).Version
# 获取 Windows 产品名称
(Get-WmiObject Win32_OperatingSystem).Caption

命令提示符 (CMD)

:: 查看版本号
ver
:: 查看详细系统信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
:: 使用 wmic
wmic os get Caption,Version,BuildNumber

VBScript

Set objOS = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2:Win32_OperatingSystem=@")
WScript.Echo "版本: " & objOS.Version
WScript.Echo "构建号: " & objOS.BuildNumber
WScript.Echo "名称: " & objOS.Caption

Linux 系统

Bash Shell

# 查看内核版本
uname -a
# 或
uname -r
# 查看发行版信息
cat /etc/os-release
# 或
cat /etc/*release
# 查看详细版本(适用于 Debian/Ubuntu)
lsb_release -a
# 查看 Red Hat/CentOS 版本
cat /etc/redhat-release
# 一行命令获取主要信息
echo "内核: $(uname -r), 发行版: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"

Python 脚本(跨平台)

import platform
import sys
def get_system_version():
    system = platform.system()
    version_info = {
        "system": system,
        "release": platform.release(),
        "version": platform.version(),
        "machine": platform.machine(),
        "processor": platform.processor(),
    }
    if system == "Windows":
        version_info["windows_version"] = sys.getwindowsversion()
    elif system == "Linux":
        # 获取发行版信息
        import distro
        version_info["distro"] = distro.name(pretty=True)
        version_info["distro_version"] = distro.version()
    return version_info
info = get_system_version()
for key, value in info.items():
    print(f"{key}: {value}")

Node.js

const os = require('os');
console.log('操作系统:', os.type());
console.log('平台:', os.platform());
console.log('发行版:', os.release());
console.log('架构:', os.arch());
console.log('主机名:', os.hostname());
console.log('CPU:', os.cpus()[0].model);

macOS 系统

Bash

# 查看版本
sw_vers
# 获取具体版本号
sw_vers -productVersion
# 获取系统名称
sw_vers -productName
# 查看内核版本
uname -a

Python 版本检测

import platform
# macOS 版本
print(f"macOS 版本: {platform.mac_ver()[0]}")
print(f"系统: {platform.system()} {platform.release()}")

跨平台通用脚本

Python 3(最通用)

import platform
import sys
def get_os_info():
    info = {
        'system': platform.system(),
        'node': platform.node(),
        'release': platform.release(),
        'version': platform.version(),
        'machine': platform.machine(),
        'processor': platform.processor(),
    }
    if platform.system() == 'Windows':
        win_ver = sys.getwindowsversion()
        info['windows_major'] = win_ver.major
        info['windows_minor'] = win_ver.minor
        info['windows_build'] = win_ver.build
        info['windows_service_pack'] = win_ver.service_pack
    elif platform.system() == 'Linux':
        try:
            import distro
            info['distro'] = distro.name(pretty=True)
            info['distro_version'] = distro.version()
        except ImportError:
            info['distro'] = '未知 (需安装 distro 库)'
    return info
# 使用
os_info = get_os_info()
for k, v in os_info.items():
    print(f"{k}: {v}")

Bash(主要针对 Linux/macOS)

#!/bin/bash
get_os_version() {
    case "$(uname -s)" in
        Linux)
            if [ -f /etc/os-release ]; then
                . /etc/os-release
                echo "系统: $NAME $VERSION_ID"
            elif [ -f /etc/redhat-release ]; then
                echo "系统: $(cat /etc/redhat-release)"
            else
                echo "系统: 未知 Linux"
            fi
            echo "内核: $(uname -r)"
            ;;
        Darwin)
            echo "系统: macOS $(sw_vers -productVersion)"
            echo "内核: $(uname -r)"
            ;;
        CYGWIN*|MINGW*|MSYS*)
            echo "系统: Windows $(cmd /c ver 2>/dev/null)"
            ;;
        *)
            echo "系统: $(uname -s) $(uname -r)"
            ;;
    esac
}
get_os_version

技术解释

获取系统版本信息主要依赖以下技术:

  1. 系统调用:通过 /proc 文件系统(Linux)或系统 API(Windows)
  2. 环境变量:如 $OS$PATH
  3. 系统命令:如 unameversw_vers
  4. WMI/WMIC(Windows):访问系统管理信息
  5. API 调用:如 Windows 的 GetVersionEx、macOS 的 Gestalt

注意事项

  • Windows 10/11 版本号格式为 0.BuildNumber
  • Linux 不同发行版获取方式可能不同
  • 某些沙箱或容器环境可能返回受限信息
  • 建议使用 Python 或 Node.js 实现跨平台兼容

需要我帮你实现某个特定场景下的版本获取脚本吗?

抱歉,评论功能暂时关闭!