서비스 팩 목록을 얻는 WMI 쿼리
-
13-09-2019 - |
문제
WMI를 사용하여 Windows 2000 시스템에 설치된 서비스 팩을 찾을 수 있습니까?
해결책
WMI를 사용하여 설치된 소프트웨어를 얻는 제안 된 방법이 있습니다. 모든 소프트웨어가 나타나지는 않지만 ...
1) 시도해보고 그들이 전혀 나타나는지 확인하십시오.
2) 예제를 조정하여 결과를 필터링하여 서비스 팩 만 보여줍니다.
strHost = "."
Const HKLM = &H80000002
Set objReg = GetObject("winmgmts://" & strHost & _
"/root/default:StdRegProv")
Const strBaseKey = _
"Software\Microsoft\Windows\CurrentVersion\Uninstall\"
objReg.EnumKey HKLM, strBaseKey, arrSubKeys
For Each strSubKey In arrSubKeys
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"DisplayName", strValue)
If intRet <> 0 Then
intRet = objReg.GetStringValue(HKLM, strBaseKey & strSubKey, _
"QuietDisplayName", strValue)
End If
If (strValue <> "") and (intRet = 0) Then
WScript.Echo strValue
End If
Next
다른 팁
예, WMI 클래스 WIN32_OPERATINGSYSTEM에는이 모든 정보가 포함되어 있습니다. PowerShell을 사용하여 로컬 컴퓨터를 확인 하여이 정보를 확인할 수 있습니다.
PS c:\> get-wmiobject win32_operatingsystem | `
select BuildNumber, ServicePackMajorVersion, `
ServicePackMinorVersion | format-table -auto
BuildNumber ServicePackMajorVersion ServicePackMinorVersion
----------- ----------------------- -----------------------
7100 0 0
참고 : PowerShell은 XP 이상에서만 실행되지만 -Computer 매개 변수를 Get -WMioBject로 전달하여 원격 시스템을 확인할 수 있습니다.
VBScript 예제 이봐, 스크립팅 남자! 시리즈:
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.ServicePackMajorVersion _
& "." & objOperatingSystem.ServicePackMinorVersion
Next
제휴하지 않습니다 StackOverflow