WMI 설치 한 프로그램 목록 가 져 오기
3352 단어 응용 프로그램
전재 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringBoot 빠른 어플리케이션 구축 방법 소개SpringBoot을 선택한 이유는 더 가벼운 성능 때문입니다.평소의 Spring 프로젝트에는 의존하는 라이브러리가 너무 많고 설정이 번잡하기 때문에 이메일 서비스만 제공하는 프로그램에 사용하는 것도 사소한 일이다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.