找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22089|回复: 5

[系统相关] 获取 硬件信息,尽量用 powershell 吧

[复制链接]
发表于 2024-1-18 22:30:56 | 显示全部楼层 |阅读模式
powershell 比批处理,易读性好多了
  1. function Get_CurrentDateTime() {
  2.         [void]$info.add( "信息提取时间:" + (Get-Date).ToString('yyyy-MM-dd HH:mm:ss') )
  3.         [void]$info.add( "" )
  4. }


  5. # 获取操作系统信息
  6. function Get_Info_system() {
  7.         $osInfo = Get-CimInstance -ClassName Win32_OperatingSystem
  8.         [void]$info.add( "OS:" )
  9.         [void]$info.add( "    Name      :$( $osInfo.Caption ) 【 $( $osInfo.OSArchitecture ) 】" )
  10.         [void]$info.add( "    Version   :$( $osInfo.Version )" )
  11.         [void]$info.add( "    安装日期  :$( $osInfo.InstallDate.ToString('yyyy-MM-dd') )" )
  12.         [void]$info.add( "    BIOS Mode : $env:firmware_type" )
  13.         [void]$info.add( "" )
  14. }

  15. # 获取产品信息
  16. function Get_Info_Product() {
  17.         $productInfo = Get-CimInstance -ClassName Win32_ComputerSystemProduct
  18.         [void]$info.add( "产品:" )
  19.         [void]$info.add( "    供应商:" + $productInfo.Vendor )
  20.         [void]$info.add( "    系列  :" + $productInfo.Name )
  21.         [void]$info.add( "    型号  :" + $productInfo.Version )
  22.         [void]$info.add( "    序列号:" + $productInfo.IdentifyingNumber )
  23.         [void]$info.add( "" )
  24. }

  25. # 获取主板信息
  26. function Get_Info_BaseBoard() {
  27.         $baseboardInfo = Get-CimInstance -ClassName Win32_BaseBoard
  28.         [void]$info.add( "主板:" )
  29.         [void]$info.add( "    制造商:" + $baseboardInfo.Manufacturer )
  30.         [void]$info.add( "    产品  :" + $baseboardInfo.Product )
  31.         [void]$info.add( "    序列号:" + $baseboardInfo.SerialNumber )
  32.         [void]$info.add( "" )
  33. }

  34. # 获取处理器信息
  35. function Get_Info_Processor() {
  36.         $processorInfo = Get-CimInstance -ClassName Win32_Processor
  37.         [void]$info.add( "CPU :【 $( ($processorInfo | Measure-Object).Count ) 】" )
  38.         foreach ($processor in $processorInfo) {
  39.                 [void]$info.add( "    名称: $( $processor.Name ) 【 $( $processor.NumberOfCores ) 核 $( $processor.NumberOfLogicalProcessors ) 线程 】" )
  40.                 [void]$info.add( "    主频:" + $processor.MaxClockSpeed )
  41.         }
  42.         [void]$info.add( "" )
  43. }

  44. # 获取内存信息
  45. function Get_Info_Memory() {
  46.         $memoryInfo = Get-CimInstance -ClassName Win32_PhysicalMemory
  47.         [void]$info.add( "内存:【 $( ($memoryInfo | Measure-Object).Count ) 】" )
  48.         [void]$info.add( "    总容量: {0} GB" -f $( ( $memoryInfo | Measure-Object -Property Capacity -Sum ).Sum / 1GB ) )
  49.         foreach ($memory in $memoryInfo) {
  50.                 #$( $memory.BankLabel )
  51.                 [void]$info.add( "    #   插槽    : $( $memory.DeviceLocator )" )
  52.                 [void]$info.add( "        品牌    : $( $memory.Manufacturer )" )
  53.                 [void]$info.add( "        序列号  : $( $memory.SerialNumber )" )
  54.                 [void]$info.add( "        容量    : $( $memory.Capacity / 1GB ) GB" )
  55.                 [void]$info.add( "        最高频率: $( $memory.Speed )" )
  56.         }
  57.         [void]$info.add( "" )
  58. }

  59. # 获取硬盘信息
  60. function Get_Info_Disk() {
  61.         $diskInfo = Get-CimInstance -ClassName Win32_DiskDrive | Where-Object { $_.MediaType -eq 'Fixed hard disk media' }
  62.         foreach ($disk in $diskInfo) {
  63.                 $physicalDisk = Get-PhysicalDisk | Where-Object { ('\\.\PHYSICALDRIVE' + $_.DeviceID ) -eq $disk.DeviceID }
  64.                 Add-Member -InputObject $disk -MemberType NoteProperty -Name BusType -Value $physicalDisk.BusType
  65.         }
  66.         [void]$info.add( "硬盘:【 $( ($diskInfo | Measure-Object).Count ) 】" )
  67.         foreach ($disk in $diskInfo) {
  68.                 [void]$info.add( "    #   DeviceID: $( $disk.DeviceID )" )
  69.                 [void]$info.add( "        BusType : $( $disk.BusType )" )
  70.                 [void]$info.add( "        型号    : $( $disk.Model )" )
  71.                 [void]$info.add( "        序列号  : $( $disk.SerialNumber )" )
  72.                 [void]$info.add( "        容量    : $( [int]($disk.Size / 1GB) ) GB" )
  73.         }
  74.         [void]$info.add( "" )
  75. }

  76. # 获取显示信息
  77. function Get_Info_Video() {
  78.         $videoInfo = Get-CimInstance -ClassName Win32_VideoController
  79.         [void]$info.add( "显示适配器:" )
  80.         foreach ($video in $videoInfo) {
  81.                 [void]$info.add( "    #   名称      : " + $video.Name )
  82.                 [void]$info.add( "        显存      : " + $( $video.AdapterRAM / 1GB ) + " GB" )
  83.                 [void]$info.add( "        当前刷新率: " + $video.CurrentRefreshRate )
  84.                 [void]$info.add( "        最高刷新率: " + $video.MaxRefreshRate )
  85.                 [void]$info.add( "        当前分辨率: " + $video.VideoModeDescription )
  86.         }
  87.         [void]$info.add( "" )
  88. }

  89. # 获取网卡信息
  90. function Get_Info_NetAdapter() {
  91.         $nicInfo = Get-NetAdapter -Physical
  92.         [void]$info.add( "网络适配器:【 $( ($nicInfo | Measure-Object).Count ) 】" )
  93.         foreach ( $nic in $nicInfo ) {
  94.                 [void]$info.add( "    #   名称      : $( $nic.DriverDescription )" )
  95.                 [void]$info.add( "        MacAddress: $( $nic.MacAddress )" )
  96.         }
  97.         [void]$info.add( "" )
  98. }


  99. # 获取BIOS信息
  100. function Get_Info_BIOS() {
  101.         $biosInfo = Get-CimInstance -ClassName Win32_BIOS
  102.         [void]$info.add( "BIOS:" )
  103.         [void]$info.add( "    制造商    : " + $biosInfo.Manufacturer )
  104.         [void]$info.add( "    名称      : " + $biosInfo.Name )
  105.         [void]$info.add( "    版本      : " + $biosInfo.Version )
  106.         [void]$info.add( "    BIOS  版本: " + $biosInfo.BIOSVersion )
  107.         [void]$info.add( "    SMBIOS版本: " + $biosInfo.SMBIOSBIOSVersion )
  108.         [void]$info.add( "    固件日期  : " + $biosInfo.ReleaseDate.ToString('yyyy-MM-dd') )
  109.         [void]$info.add( "    序列号    : " + $biosInfo.SerialNumber )
  110.         [void]$info.add( "" )
  111. }

  112. $info = [System.Collections.ArrayList]@()

  113. Get_CurrentDateTime
  114. Get_Info_system
  115. Get_Info_Product
  116. Get_Info_BaseBoard
  117. Get_Info_BIOS
  118. Get_Info_Processor
  119. Get_Info_Memory
  120. Get_Info_Disk
  121. Get_Info_NetAdapter
  122. Get_Info_Video

  123. $info | Out-File "info.txt"

  124. pause
复制代码

评分

参与人数 2PB +6 技术 +2 收起 理由
523066680 + 6 + 1 代码风格友好
Batcher + 1 感谢分享

查看全部评分

发表于 2024-1-19 11:18:39 | 显示全部楼层
回复 1# newswan

感谢分享,但俺不懂powershell,测试时有如下提示:

硬件信息(powershell).ps1 : 无法将“硬件信息(powershell).ps1”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请
检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ 硬件信息(powershell).ps1
+ ~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (硬件信息(powershell).ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 楼主| 发表于 2024-1-19 17:53:28 | 显示全部楼层
回复 2# hfxiang


保存为文件,编码 utf-16 le,右键运行
发表于 2024-1-20 11:34:26 | 显示全部楼层
回复 3# newswan

测试成功,感谢
发表于 2024-8-2 15:25:52 | 显示全部楼层
4090 显存 显示4G ?
发表于 2024-8-5 13:16:14 | 显示全部楼层
这确实是个好思路
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 12:47 , Processed in 0.015020 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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