本文目录导读:

获取系统安装时间的方法因操作系统不同而异,以下是几种常见系统的脚本获取方式:
Windows 系统
PowerShell 脚本
# 方法1:使用Win32_OperatingSystem Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty InstallDate # 方法2:格式化显示 $os = Get-WmiObject -Class Win32_OperatingSystem $installDate = [System.Management.ManagementDateTimeConverter]::ToDateTime($os.InstallDate) Write-Host "系统安装时间: $installDate" # 方法3:使用CIM(推荐) Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty InstallDate
批处理脚本(cmd)
@echo off wmic os get installdate
Linux 系统
Bash 脚本
#!/bin/bash
# 方法1:查看根文件系统创建时间(较准确)
stat -c %w /
# 方法2:查看/var/log/installer目录(Ubuntu)
stat /var/log/installer | grep Modify | awk '{print $2,$3}'
# 方法3:使用lsblk
lsblk -o NAME,MOUNTPOINT,LABEL,FSTYPE | grep '/$'
# 方法4:dumpe2fs(需要root权限)
dumpe2fs -h $(df / | tail -1 | awk '{print $1}') 2>/dev/null | grep "Filesystem created"
macOS 系统
Shell 脚本
#!/bin/bash # 方法1:查看根文件系统创建时间 stat -f "%Sm" / # 方法2:查看系统日志(macOS 10.13+) syslog -F '$Time' | grep -m1 "com.apple.opendirectoryd" | head -1 # 方法3:使用dscl dscl . -read /Local/Default/Users | grep -E "^(Create|Password)Timestamp"
跨平台 Python 脚本
import platform
import subprocess
import re
from datetime import datetime
def get_install_date():
system = platform.system()
if system == "Windows":
import wmi
c = wmi.WMI()
os_info = c.Win32_OperatingSystem()[0]
install_date = os_info.InstallDate
# 转换为datetime对象
if install_date:
year = int(install_date[:4])
month = int(install_date[4:6])
day = int(install_date[6:8])
return datetime(year, month, day)
elif system == "Linux":
# 尝试多种方法
try:
result = subprocess.run(['stat', '-c', '%w', '/'],
capture_output=True, text=True)
install_date = result.stdout.strip()
return install_date
except:
try:
with open('/var/log/installer/syslog', 'r') as f:
for line in f:
if 'Ubuntu' in line or 'install' in line.lower():
return line[:15]
except:
pass
elif system == "Darwin": # macOS
result = subprocess.run(['stat', '-f', '%Sm', '/'],
capture_output=True, text=True)
return result.stdout.strip()
return None
install_date = get_install_date()
if install_date:
print(f"系统安装时间: {install_date}")
else:
print("无法获取系统安装时间")
注意事项
- Windows系统:WMI方法通常会返回UTC时间,需要转换为本地时间
- Linux系统:不同发行版的方法可能不同,Ubuntu/Debian 有安装日志,其他发行版可能需要从根文件系统创建时间推断
- 权限问题:某些方法需要管理员/root权限
- 准确性:这些方法大多给出近似值,并非100%精确
推荐使用
- Windows:PowerShell的
Get-WmiObject方法 - Linux:
stat -c %w /(支持ext4/xfs等文件系统) - macOS:
stat -f "%Sm" /
选择哪种方法取决于你的操作系统和实际需求。