문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top