WMI 설치 한 프로그램 목록 가 져 오기

3352 단어 응용 프로그램
문제 13: 특정 컴퓨터 에 설 치 된 모든 응용 프로그램 을 어떻게 표시 합 니까?
전재 http://www.microsoft.com/china/technet/community/scriptcenter/resources/wmifaq.mspx#EXEAE
 
Win32_Product WMI 클래스 는 Windows Installer 를 통 해 설 치 된 모든 프로그램 을 대표 합 니 다.단, 이 WMI 클래스 는 '프로그램 추가 / 삭제' 에 나타 나 는 모든 프로그램 을 표시 하지 않 을 수 있 습 니 다.이 문 제 를 해결 하 는 방법 은 레 지 스 트 에서 설 치 된 프로그램의 정 보 를 수집 하 는 것 이다 (주의: 모든 프로그램 이 설치 할 때 레 지 스 트 에 정 보 를 기록 하 는 것 은 아니다).이 테 마 는 이 목적 을 달성 하 는 두 가지 방법 을 제시 합 니 다. 스 크 립 트 를 사용 하여 레 지 스 트 의 정 보 를 직접 읽 고 MOF 파일 과 스 크 립 트 를 사용 하여 WMI 에서 이 정 보 를 얻 습 니 다.
1.
다음 스 크 립 트 는 컴퓨터 에 설 치 된 프로그램 을 보 여 주 는 데 사 용 됩 니 다.WMI System Registry Provider 를 사용 하여 레 지 스 트 에서 정 보 를 직접 수집 하 는 스 크 립 트:
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
2.
다음 MOF 파일 과 그 부대 스 크 립 트 는 레 지 스 트 에서 설 치 된 응용 프로그램 을 가 져 오 는 다른 방법 을 보 여 줍 니 다.MOF 파일 을 사용 하면 다음 단계 로 작업 하 십시오. 단계 1: 메모 장 에 다음 MOF 문법 을 복사 하고. MOF 파일 (예 를 들 어 products. mof) 로 저장 하 십시오.
qualifier dynamic:ToInstance;
qualifier ProviderClsid:ToInstance;
qualifier ClassContext:ToInstance;
qualifier propertycontext:ToInstance; 
 
[dynamic, provider("RegProv"),
ProviderClsid("{fe9af5c0-d3b6-11ce-a5b6-00aa00680c3f}"),
ClassContext
("local|HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall")
] 
class Products {
   [key] string KeyName;
   [read, propertycontext("DisplayName")]      string DisplayName;
   [read, propertycontext("DisplayVersion")]      string  DisplayVersion;
   [read, propertycontext("InstallLocation")]      string InstallLocation;
};
단계 2: 명령 프롬프트 줄 에 입력 mofcomp products. mof. 이 명령 은 MOF 파일 을 WMI 저장 소 에 저장 합 니 다.단계 3: MOF 를 저장 소 에 저장 한 후 다음 스 크 립 트 를 사용 하여 데 이 터 를 가 져 옵 니 다.
strComputer = "." 
Set WMI = GetObject("winmgmts:\\" & strComputer & _
    "\root\default")
Set colItems = WMI.ExecQuery("Select * from Products")
For Each objItem In colItems
    WScript.Echo "DisplayName: "  & objItem.DisplayName
    WScript.Echo "DisplayVersion: " & objItem.DisplayVersion
    WScript.Echo "InstallLocation: " & objItem.InstallLocation
    WScript.Echo "KeyName: " & objItem.KeyName
Next

좋은 웹페이지 즐겨찾기