一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - vbs獲取操作系統及其版本號

vbs獲取操作系統及其版本號

2021-02-08 01:13chaofanwei VBS

這篇文章主要介紹了vbs獲取操作系統及其版本號,包括vbs查詢系統信息(名稱,版本,系統盤,32or64)-wmi,需要的朋友可以參考下

vbs獲取操作系統及其版本號

?
1
2
3
4
5
6
7
8
9
10
11
12
'**************************************
'*by r05e
'*操作系統及其版本號
'**************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
 ("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
 Wscript.Echo objOperatingSystem.Caption & " " & objOperatingSystem.Version
Next

vbs查詢系統信息(名稱,版本,系統盤,32or64)-wmi

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Function X86orX64()
 On Error Resume Next
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem",,48)
 For Each objItem in colItems
        
  If InStr(objItem.SystemType, "64") <> 0 Then
   X86orX64 = "x64"
  Else
   X86orX64 = "x86"
  End If
 Next
 
End Function
Function showOsInfo()
 Dim res
 On Error Resume Next
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
 Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
 res ="infoStart"
 For Each objItem in colItems
        res =res & "_" & objItem.Caption       
        res =res & "_" & objItem.SystemDrive
        res =res & "_" & objItem.Version
        'WScript.Echo objItem.OSArchitecture 
 Next
 
    res =res & "_" & X86orX64()
    res =res & "_infoEnd"
    WScript.Echo res
End Function
call showOsInfo()
WScript.Echo "complete!"

cmd + vbs +wmi 判斷系統級別版本和類型

cmd腳本:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
rem 本腳本用于確定當前nt5以上框架工作站系統的級別版本和類型,需vbs/wmi 支持
>%temp%\verx.vbs echo Set wmi=GetObject("winmgmts:\\.")
>>%temp%\verx.vbs echo Set operation=wmi.instancesof(^"win32_Operatingsystem^")
>>%temp%\verx.vbs echo For Each sys In operation
>>%temp%\verx.vbs echo   WScript.Echo sys.caption^&","^&sys.Version^&","^&sys.OSArchitecture
>>%temp%\verx.vbs echo Next
set "winver=Unkonw"
for /f "skip=2 delims=, tokens=1,2,3" %%c in ('cscript "%temp%\verx.vbs"') do (
 echo %%c,%%d,%%e
 echo ===========================================================
 for /f "delims=. tokens=1,2" %%i in ("%%d") do (
 if %%i.%%j equ 10.0 set "winver=Win_10"
 if %%i.%%j equ 6.2 set "winver=Win_8"
 if %%i.%%j equ 6.1 set "winver=Win_7"
 if %%i.%%j equ 6.0 set "winver=Win_Vista"
 if %%i.%%j equ 5.2 set "winver=Win_XP"
 if %%i.%%j equ 5.1 set "winver=Win_XP"
 if %%i.%%j equ 5.0 set "winver=Win_2K"
 )
 for /f "delims=- tokens=1" %%i in ("%%e") do (
 set "winver=!winver!.%%i"
 if %%i equ 32 set "winver=!winver:.%%i=.x86!"
 if %%i equ 64 set "winver=!winver:.%%i=.x64!"
 )
)
echo !winver!

用 vbs 調用 wmi 顯示 系統 name 目的是 為了 與 通過 version 得出的系統name對比。
其實單獨 獲取 version 只需要 ver 命令 配套 for 就可以了,不用再有 第三個外部命令。

而且 version 確定系統name 的方法本身需要參考 ms 的系統name與version列表,有的 server 版與 workstation 版 用一個version,而 xp 更是 有 5.1 5.2 兩個version
更亂的是,還有 內部 BuildNumber

cmd 下 調用 wmic 的時候 ,wmic 有一個 bug 就是 在輸出 文本流 時,每一行結尾都用 軟回車+硬回車 兩個符號表示換行,而 軟回車符號 會在 腳本中參與 set 的變量設置。
所以,我在用 wmic 的 get 的時候 都會附帶一個無用的字段同時 加 /format:csv參數,讓無用字段來包含換行符號,避免要采集的數據字段包含換行符。
看來 你用 findstr 正則的方式解決 還不錯,就是如果涉及 其他非數字的字段就要另想辦法。

在 沒有 wmi 的情況下 ,通過 vbs 獲取系統版本,可以通過 vbs 獲取 系統 explorer.exe 的文件版本 來確定系統version ,通過 明確系統是否存在 SysWOW64 文件夾 來確定 是否為 x64.

VBS 獲取指定電腦的部分信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Program Name: Get_Remote_PC_Partial_Information.vbs
----The Code as Below
'--------------------------
'Author By: Wei_Zhu
'Creation Date: 2010-03-08
'--------------------------
 
On Error Resume Next
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
 
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook=objExcel.Workbooks.Add()  'This is add new
  Set objRange = objExcel.Range("A1","E1"
      objRange.Font.Size = 10
      objrange.Font.Bold = True
      objrange.Font.Name = "Times New Roman"
      objrange.Cells(1).Value="Domain"
      objrange.Cells(2).Value="IP"
      objrange.Cells(3).Value="Manufacturer"
      objrange.Cells(4).Value="Model"
      objrange.Cells(5).Value="Serial Number"
      objrange.Interior.ColorIndex = 34   'Set BackColor
       objRange.Borders.LineStyle  =  1
      Set objRange = objExcel.ActiveCell.EntireColumn
 
      objRange.AutoFit()    
 
'----Auto Fill The Column Width---
      Set objcol = objExcel.Columns("A:E").EntireColumn
      objcol.AutoFit
 
set ws=createobject("wscript.shell")
set fso=createobject("scripting.filesystemobject")
set folder=fso.getfolder(ws.CurrentDirectory&"/Computer")
 
 Set fc = folder.Files
  For Each f1 in fc
   s = folder&"/" & f1.name
  set ts = fso.OpenTextFile(s, ForReading)
   lint_line =2
   Do While Not ts.AtEndOfStream
  l_ip = ts.ReadLine
  GetPCInfo l_ip,f1.Name,lint_line
  lint_line = lint_line +1
   Loop
   lint_line=0
   ts.Close
  Next
 
   objExcel.DisplayAlerts  =  False   'Close the Alert
'objExcel.ActiveWorkBook.Saveas lstg_to_f,-4143
'msgbox lstg_to_f
   objExcel.ActiveWorkBook.Saveas folder&".xls",-4143
   objExcel.DisplayAlerts = False     ''Close the Save Alert
   objExcel.ActiveWorkbook.Close
   objExcel.DisplayAlerts = False
   objExcel.Application.Quit
 
 
Function GetPCInfo(ByVal ip, ByVal l_fn, ByVal l_line)
  'Function GetPCInfo(l_fn,l_line)
  strComputer = ip
  objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!//" & strComputer & "/root/cimv2")
 
  colItems = objWMIService.ExecQuery("Select * from Win32_SystemEnclosure")
 
  l_Array = Split(l_fn, ".", -1, 1)
 
  For Each objItem In colItems
    'MsgBox "Manufacturer: " & objItem.Manufacturer
    '   Msgbox "Product: " & objItem.Product
    '   Msgbox "Serial Number: " & objItem.SerialNumber
 
    objRange = objExcel.Range("A" & l_line, "E" & l_line)
    objRange.Cells(1).value = l_Array(0)
    objRange.Cells(2).value = ip
    objRange.Cells(3).value = objItem.Manufacturer
    objRange.Cells(4).value = objItem.Model
    objRange.Cells(5).value = objItem.SerialNumber
  Next
  '----Auto Fill The Column Width---
  objcol = objExcel.Columns("A:E").EntireColumn
  objcol.AutoFit()

到此這篇關于vbs獲取操作系統及其版本號的文章就介紹到這了,更多相關vbs操作系統信息內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品国产品香蕉在线观看 | 日本人和黑人一级纶理片 | 日本视频在线免费播放 | 久久精品免视看国产 | 国产二区视频在线观看 | 99久精品| 国产免费成人在线视频 | 国产永久免费爽视频在线 | 无遮挡免费h肉动漫在线观看 | 校园肉文高h | 成人性生交大片免费看软件 | 日韩一级欧美一级一级国产 | 精品国产免费第一区二区三区日韩 | 夫妻性生活免费在线观看 | 2021国产麻豆剧传媒剧情 | a4yy欧美一区二区三区 | 极致堕落(高h) | 四虎成人影院 | 911精品国产亚洲日本美国韩国 | 日韩视频在线观看中字 | 国产高清不卡码一区二区三区 | 久久www免费人成高清 | 女人把私密部位张开让男人桶 | 91在线老师啪国自产 | 精品卡1卡2卡三卡免费网站 | 国产在线步兵一区二区三区 | 嫩草影院精品视频在线观看 | 视频一区 日韩 | np小说h| 操美女网址 | 九九精品视频一区二区三区 | aaa黄色| 成人小视频在线免费观看 | 无码人妻精品一区二区蜜桃在线看 | 亚洲成年www | 给我免费观看的视频在线播放 | 亚洲日韩精品欧美一区二区 | 91国在线观看 | 高清麻生希在线 | 国产精品久线观看视频 | 扒开女人屁股眼看个够 |