vbs 운영 체제 및 버 전 번호 가 져 오기
'**************************************
'*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 조회 시스템 정보(이름,버 전,시스템 디스크,32or 64)-wmi
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 스 크 립 트:
@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 을 확인 할 수 있 습 니 다.시스템 에 SysWOW 64 폴 더 가 존재 하 는 지 여 부 를 명 확 히 함으로써 x64 여 부 를 확인 할 수 있 습 니 다.
VBS 에서 지정 한 컴퓨터 의 일부 정 보 를 가 져 옵 니 다.
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 운영 체제 정보 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[VBS] 이메일 보내기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.