Èí¼þ¿ª·¢Åàѵ°à >> ±à³Ì¿ª·¢ >> VbScript
vbs获��作系统�其版本� target= |
|
¡¡¡¡±¾ÎıêÇ©£ºvbs,æ“�作系统 vbs获å�–æ“�作系统å�Šå…¶ç‰ˆæœ¬å�?/h2>
'**************************************
'*by r05e
'*�作系统�其版本�
'**************************************
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "
ootcimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
Wscript.Echo objOperatingSystem.Caption & " " & objOperatingSystem.Version
Next
Function X86orX64()
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "
ootcimv2")
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 & "
ootcimv2")
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脚本�/p>
@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对比ã€?br /> 其实å�•独 获å�– version å�ªéœ€è¦?ver 命令 é…�套 for å°±å�¯ä»¥äº†ï¼Œä¸�用å†�æœ?第三个外部命令ã€?/p> 而且 version 确定系统name 的方法本身需è¦�å�‚è€?ms 的系统name与version列表,有çš?server 版与 workstation ç‰?用一个version,è€?xp 更是 æœ?5.1 5.2 两个version cmd ä¸?调用 wmic 的时å€?,wmic 有一ä¸?bug 就是 在输å‡?文本æµ?时,æ¯�一行结尾都ç”?软回è½?硬回è½?两个符å�·è¡¨ç¤ºæ�¢è¡Œï¼Œè€?软回车符å�?会在 脚本ä¸å�‚ä¸?set çš„å�˜é‡�设置ã€?br /> 所以,我在ç”?wmic çš?get 的时å€?éƒ½ä¼šé™„å¸¦ä¸€ä¸ªæ— ç”¨çš„å—æ®µå�Œæ—¶ åŠ?/format:csvå�‚æ•°ï¼Œè®©æ— ç”¨å—æ®µæ�¥åŒ…å�«æ�¢è¡Œç¬¦å�·ï¼Œé�¿å…�è¦�采集的数æ�®å—段包å�«æ�¢è¡Œç¬¦ã€?br /> 看æ�¥ ä½ ç”¨ findstr æ£åˆ™çš„æ–¹å¼�è§£å†?还ä¸�错,就是如果涉å�Š å…¶ä»–é�žæ•°å—çš„å—æ®µå°±è¦�å�¦æƒ³åŠžæ³•ã€?/p> åœ?没有 wmi 的情况下 ,通过 vbs 获å�–系统版本,å�¯ä»¥é€šè¿‡ vbs 获å�– 系统 explorer.exe 的文件版æœ?æ�¥ç¡®å®šç³»ç»Ÿversion ,通过 明确系统是å�¦å˜åœ¨ SysWOW64 文件å¤?æ�¥ç¡®å®?是å�¦ä¸?x64. VBS 获å�–指定电脑的部分信æ�?/h2>
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æ“�作系统信æ�¯å†…容请æ�œç´¢è„šæœ¬ä¹‹å®¶ä»¥å‰�çš„æ–‡ç« æˆ–ç»§ç»æµ�览下é�¢çš„ç›¸å…³æ–‡ç« å¸Œæœ›å¤§å®¶ä»¥å�Žå¤šå¤šæ”¯æŒ�脚本之家ï¼?/p> |