응용 프로그램 호환성

5.5 Application Compatibility Toolkit 안에

Chris Corio and Chris Jackson

 

한 눈에 보기:

  • 응용 프로그램 호환성 관리자 및 에이전트 Framework
  • 호환성 Evaluator
  • 저장 및 데이터 분석
  • Standard User Analyzer
  • Internet Explorer 호환성 테스트 도구

내용

응용 프로그램 호환성 관리자
호환성 Evaluator
ACT 데이터베이스
분석
온라인 동기화
표준 사용자 분석
Internet Explorer 호환성 테스트 도구
결론

Application Compatibility Toolkit (ACT) 응용 프로그램에 있는지 확인합니다 Windows의 새 버전과 호환 이를 배포하기 전에 프로세스를 관리하는 것을 도와줍니다. 이를 수 또한 확인하는 데 도움이 방법을 운영 체제 업데이트를 이러한 응용 프로그램은 영향을 미칩니다. 다양한 문서 및 작성된 ACT 5 사용하는 방법에 대한 백서 않은.입니다. 어떤 우리가 할 이 문서에 나와 있는 않으며 내부적인 이동 이 도구 키트 도구의 각 작동 방식을 살펴봅니다. 대부분의 사람들이 도구 키트를 연결할 도구를 시작하는 우리는 것입니다: 응용 프로그램 호환성 관리자.

응용 프로그램 호환성 관리자

응용 프로그램 호환성 관리자를 이 데이터 분석 구성 및 테스트 프로세스를 드라이브 데 프로덕션 환경에 대한 정보를 검색할 위한 프레임워크를 제공합니다. 작동 방식을 이해하는 데 이 도구로 자세히 살펴보겠습니다.

평가기 배포 패키지를 (MSIs) MSIs, 같이 ACT 5 데이터 컬렉션을 패키지를 배포할 하는데 MSI 분석할 경우 많은 작업을 실제로 수행하는 것이 없습니다 찾을 수 있을 것입니다. 대신, 설치를 수행하는 실행 파일을 추출합니다. 그림 1에서 는 설치 프로세스의 일반적인 실행 프로세스 트리를 보여 줍니다.

fig01.gif

1 에이전트가 Framework 설치 프로세스 트리 그림

세 번째 빨간색으로 표시된 msiexec.exe 인스턴스가 흥미로운 한: 원본 MSI 제거 호출을 것이. 기본적으로 MSI (.tmp 파일로 표시).exe 추출하고 외부 MSI 제거합니다. 나중에 두 번째 MSI (msiexec에 의해 함) 설치됩니다. 하나의 테스트 시 1:19:46, 배포 MSI 설치했습니다 및 1:19:50 때 제거가 끝났습니다. MSI 4 초 동안 설치된 나타납니다! 따라서 데이터 컬렉션을 패키지를 배포할 때 않는 찾습니다 만들 경우 때는 대상 컴퓨터에 설치하려면 찾을 가능성이 연결되어 있지 않으므로 확인하려면 MSI 설치를. 각 워크스테이션에 에이전트가 설치되어 있는지 다른 증명 정보를 찾습니다 합니다.

예를 들어, 배포할 MSI 때마다 새 생성된 제품 코드를 갖게 내부 MSI 같은 제품 코드 (DC93B45B-D4F5-4FFE-9B47-042BD6FA8CC5) 을 갖게 항상 있으며 사용할 수 있습니다 같이 evidence (수 없습니다 될 있지만 특정 어떤 것을 모두 ACT 데이터 컬렉션을 패키지를 있으면 이 발자국 (ACT 데이터 컬렉션을 패키지가 설치된. 있는 좋습니다 이 MSI 항목을 사용하여 데이터 컬렉션을 패키지를 제거하는, 다음 ACT 데이터 컬렉션을 패키지를 제거하려면 권장 방법을 설명할.

Afsetup.exe 수행하는 작업, 대량 다시 에이전트 배포 문제가 있는 이벤트 이 이진 알고 있어야 지정하려면 것입니다. 다음 명령을 사용하여 에이전트 프레임워크를 제거할 수 있습니다.

%program files%\Microsoft Agent Framework\Agent Framework\afsetup.exe /uninstall

에이전트 Framework ACT 5 에이전트 Framework에서는 기업의 컴퓨터 큰 컬렉션에서 데이터 수집에 대한 구조체를 제공합니다. 에이전트 디자인 목표는 unnoticed 수 있으며 프로덕션 환경에 배포 적합한 것입니다. 따라서 다음 개별 에이전트의 작업이 많이 성능을 최적화할 수 일부 에이전트를 디자인 결정에 알) 입니다.

자체의 프레임워크는 간단합니다. 에이전트 Framework 설치할 때 % 프로그램 files%\Microsoft 에이전트 Framework 해당 파일을 찾을 수 있습니다. 일정 및 에이전트를 시작하는 허용하는 서비스 (actdcsvc.exe) 로 실행됩니다. 에이전트 Framework\Data 하위 디렉터리에 있는 XML 지정된 일정에 맞게 시작하도록 에이전트를 구성합니다. 에이전트 Framework\Agents 아래에 실행 파일을 에이전트를 찾을 수 있습니다.

에이전트가 실행 파일을 이상 아무 것도 있습니다 (에이전트 프레임워크 서비스 단순히 일정을 관리하고 설치 및 구성 XML에 지정된 대로 해당 실행 파일을 시작합니다. 그림 2 는 일반적인 에이전트 Framework 설치 중 첫 번째 5분 동안 프로세스 트리의 예제를 보여 줍니다.

fig02.gif

그림 2 에이전트 Framework 프로세스 트리

어떤 확보할 여기에 단순히 일정을 및 에이전트를 실행하는 간단한 서비스입니다. 에이전트를 작업을, 있으므로 이제 살펴봅니다.

ACT 5 인벤토리 에이전트가 collect.exe, 가장 중요한 중 하나입니다. 기본적으로 이 에이전트를 검색하여 클라이언트 시스템 및 응용 프로그램의 인벤토리 컴파일합니다. 응용 프로그램 호환성 프로젝트에 (한 공급업체가 DBMA용으로, 버전 및 결국 지원 문을 맞춤 응용 프로그램 이름을) 계획에 필요한 데이터를 측면에서 인벤토리 에이전트 일관되게 다른 소프트웨어 인벤토리 도구를 매우 잘 비교 수행합니다.

특히 유용한 기능 바로 방법을 잘 에이전트가 scours 아래에 자세히 증명 정보를 찾고 시스템이 아닙니다 있지만 어떻게 이를 잘 다음 함께 보내기 전에 해당 데이터를 정리합니다. 도구는 " 버킷 일련의 만들고 찾을 경우 검색 아래에서 자세히 결합한 중복 제거하고 이를 분류 증명 정보를 모두 통합합니다. 에이전트가 다양한 응용 프로그램을 찾을 위치 증명 정보를 찾습니다.

MSI 데이터베이스 검색 MsiEnumComponents API를 사용하여 Windows Installer를 사용하여 설치된 모든 응용 프로그램을 열거하는.

추가/제거 프로그램 검색 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Uninstall 및 HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Uninstall 엽니다 및 여기에 찾은 각 하위 키에서 데이터를 수집합니다.

Windows 셸 검색 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 폴더 물론 각 사용자의 컴퓨터에 있는 프로필 사용하여 HKEY_USERS\ <... > \Software\Microsoft\Windows\CurrentVersion\Explorer\Shell 폴더에 있는 내용을 열거하여 작동합니다. 그런 다음 모든 파일 및 이 디렉터리 또는 해당 하위 (특히 노이즈 줄이기 위해 웹에서 다운로드한 실행 파일에 대해 주차 많은 대체로 데스크톱에 제외) 링크를 에이전트를 검색합니다. 이 소프트웨어를, 예를 들어, 등록되지 않은 자체를 프로그램 추가/제거 있지만 시작 메뉴 바로 가기를 추가할 않는 캡처합니다.

응용 프로그램 경로를 검색 모든 프로그램 관련 응용 프로그램 경로를 받으려면 자체적으로 등록된 응용 프로그램을 선택하는 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App 경로 레지스트리 키에 하위 키를 열거합니다.

각 디렉터리 (있지만 하위 않습니다) 가리키는 실행 파일 경로 환경 변수 검색 모든 사용자 경로 환경 변수를 찾습니다. 먼저 찾습니다 실행 파일 경로에 시스템 환경 변수와 현재 사용자 환경 변수를 반환하는 ExpandEnvironmentStrings에 대한 호출에서 반환된 모든 사용자에 대해 HKEY_USERS\ <... > \Environment 내용을 더하기. 이렇게 하면 응용 프로그램 (일반적으로 명령줄 응용 프로그램) 단순히 파일 시스템에 있는 파일을 배치하고 경로 환경 변수를 추가하는 의해 설치된 찾을 재고 수집기가.

파일 확장명 처리기 검색 각 등록된 파일 확장명을 찾은 후 해당 확장명을 처리하도록 등록된 프로그램을 캡처합니다. 먼저 HKEY_LOCAL_MACHINE\Software\Classes 열고 파일 확장명을 이러한 같은 경우 마침표(.) 시작하는 각 항목을 열거합니다. 각 항목에 대해 있는 찾을, 에이전트 프로그램 ID를 열거하고 각 프로그램 ID 실행 파일을 찾을 수 shell\open\command 하위 키를 찾습니다. 다음 않습니다 동일한 HKEY_USERS\ <... > \Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts 내용을 열거하는 각 사용자에 대해. 이 에이전트가 설치 단순히 이진 삭제된 및 파일 확장명에 대한 처리기로 등록되어 소프트웨어를 찾을 수 있도록.

레지스트리 실행 runonce 검색 응용 프로그램을 나타내는 실행 파일을 찾으려면 다음 레지스트리 키를 살펴봅니다.

  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
  • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVerison\RunOnceEx

이러한 레지스트리 키를 검사하여 에이전트가 각 시작 사용하여 실행되지만 찾으려면 수집기에서 다른 증명 정보를 not leave 수 있는 소프트웨어를 찾을 수 있도록.

서비스 제어 관리자 검색을 EnumServiceStatus API를 사용하여 서비스 제어 관리자를 쿼리하고 각 서비스에 대한 자세한 내용은 QueryServiceConfig API를 사용하여 쿼리합니다. 이 에이전트가 해당 설치 수동으로 파일 시스템에 있는 실행 파일을 저장합니다 및 서비스에 등록하려면 레지스트리 키를 설정하는 소프트웨어를 찾을 수 있도록.

Windows 구성 요소 쿼리 아니라 이러한 응용 프로그램을 캡처하도록 Windows 설치된 선택적 구성 요소를 검색합니다. 이 sysocmgr.inf %windir%\inf) 의 쿼리 및 선택한 선택적 구성 요소를 열거하는지 않습니다. 이 에이전트가 Windows의 표준 설치가 있을 가능성이 소프트웨어를 찾을 수 있도록.

호환성 Evaluator

회사 전체에서 컴퓨터에 설치했는지 어떤 소프트웨어를 알고 있지만 일반적으로 응용 프로그램 호환성 프로젝트를 실행하는 것에 대한 가장 중요한 데이터를 에이전트 Framework 또한 사용하면 에이전트가 설치되어 있는 컴퓨터에서 추가 데이터를 수집할 수 있습니다. ACT 제공되는 호환성 평가기 에이전트를 프로덕션 사용할 수 있도록 성능 최적화 및 따라서 제한된 양의 데이터 수집합니다. 수집된 데이터를 검토한 후 있는 입증--개념 방대한 호환성 평가기 배포에서 과도하게 많은 전에 데이터 값을 측정할 실행하십시오.

UAC Compatibility Evaluator UAC Compatibility Evaluator (uacce.exe) 설치합니다 (uacce.sdb) 사용자 지정 shim 데이터베이스 및 사용자 지정 shim을 (uacdetct.dll) 응용 프로그램을 실행할 수 있는지 여부를 결정하기 위해 표준 사용자 (또는 보호된 관리자 (Windows Vista 또는 Windows 7. shim 일반적으로 Windows 에서 응용 프로그램 호환성 문제를 해결하기 위해 사용되지만 여기에 이를 검색하는 데 사용되는 있는 Windows 응용 프로그램 사이에 삽입된 작은 부분을 응용 프로그램 코드가 있습니다. 해당 이러한 shim을 explorer.exe에 대한 호환성 레이어를 설정하여 시스템에서 실행 중인 프로세스에 적용되며 UACCEDetection, 사용자 지정 SDB 정의된 계층을 포함하도록 __COMPAT_LAYER 환경 변수를 설정합니다. 자식 프로세스가 레이어를 상속하지 탐색기를 사용하여 만든 모든 프로세스에 적용된 이러한 shim을 갖습니다.

해당 shim 어떻게 합니까? FileOperations shim _lcreat, CopyFile, CopyFileEx를, CreateFile, DeleteFile, MoveFile, MoveFileEx, MoveFileWithProgress를, ReplaceFile, LZOpenFile, EncryptFile, DecryptFile, 및 DuplicateEncryptionInfoFile API 호출을 차단합니다. 각 호출에 대해 이를 확인하는 ACL을 액세스를 제한합니다 경우나 ACL을 loosened 있는) 경우 특정 경로에 있는 파일의 대기.

ACL 검사는 관리자가 아닌 사용자에 대한 경우 이를 성공적으로 확인하려면 기존 ACL을 수행, " 관리자 " ACE 및 권한 제거 및 다음 리소스에 대한 AccessCheck 호출하여 결정됩니다. 특수 경로 검사는 경로가 루트 디렉터리, % 프로그램 파일 % 디렉터리, % 시스템 % 디렉터리 또는 % Windows % 디렉터리가 있는지 확인합니다. 모든 오류는 기록됩니다.

RegistryOperations shim RegCreateKey, RegCreateKeyEx, RegDeleteKey, RegDeleteKeyEx, %1, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegCloseKey, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx, 및 RegUnloadKey API 호출을 차단합니다. 차단된 API에 대한 각 호출에 대해 shim 확인하고 ACL을 표준 사용자에 액세스를 거부할 경우 경우. 이 ACL 확인 동일한 파일 작업에 사용되는 경우가 — 토큰을 아래로 스트리핑 및 AccessCheck 호출. 오류가 기록됩니다.

ProfileOperations shim WritePrivateProfileSection, WritePrivateProfileString, WritePrivateProfileStruct, WriteProfileSection, 및 WriteProfileString API에 대한 호출을 차단합니다. 이러한 API에 대한 각 호출에 대해 shim 확인하고 ini 파일 매핑을 사용하여 ini 파일의 매핑되어 있으면. 없는 shim 확인합니다 (있기, 매핑되지 않은 경우 ini 파일의 바로 다른 파일 (표시된 경우 FileOperations 같이 파일에 대한 권한을 shim, 및 오류가 기록됩니다.

RestrictedNamespace shim CreateFileMapping API에 대한 호출을 차단합니다. 개체 이름에 Global\ 또는 Session\ 네임스페이스, 오류가 기록됩니다.

ElevatedRunLevel shim CreateProcess, CreateProcessAsUser, CreateProcessWithLogon, 및 CreateProcessWithToken API에 대한 호출을 차단합니다. 모든 차단된 API는 Windows 설치 관리자 검색 기능이 CreateProcess API를 사용하여 ERROR_ELEVATION_REQUIRED를 반환하는) 권한 상승 이벤트가 트리거되지 않습니다 경우 확인하려면 실행 대상을 확인하십시오. 또한 shim 관리자 계정을 않은지 사용자 자격 증명을 변경하려면 API를 대상 ID를 확인합니다.

검색 작동 시 자세히 보면 볼 실행하는 높은 에이전트를 작업하는 동안 간주됩니다 것을 수 있습니다. 에이전트를 프로덕션 시스템에서 사용하도록 설계되지 않았습니다, 이후 경우 응용 프로그램이 이미 작동하는지 수 있습니다. 실행하고 사용자의 작업 이를 경우 UAC 문제가 있을 경우 다음 수 있다면 대개 관리자로!

Windows 7 Vista Windows Compatibility Evaluator Windows Vista Windows 7 Compatibility Evaluator 작업의 한 단위를 모니터링 및 런타임에 분석할 다른 경우 정적으로, 감지할 수 있으므로 두 개의 개별 에이전트가 실행 실제로 분할됩니다.

GINA 세션 0에서 에이전트가 (ginasession0.exe) 간단한 레지스트리 검사를 수행합니다. 사용자 지정 GINA 설치한 경우 확인하려면 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL 살펴봅니다. 또한 있는지 레지스트리에서 형식 값을 보고 서비스를 열거하는 경우 0x100 비트가 설정된 (SERVICE_INTERACTIVE_PROCESS 플래그). 모든 오류는 기록됩니다.

훨씬 UAC Compatibility Evaluator 같은 사용되지 에이전트를 (dep.exe) 설치합니다 (dep.sdb, 또는 Windows 2000 win2kagents.sdb 사용자 지정 shim 데이터베이스 및 사용자 지정 shim을 (depdetct.dll) 하면 탐색기를 통해 시작한 모든 프로세스를 shimmed 있는 DeprecationAgentLayer 포함하도록 Explorer.exe __COMPAT_LAYER 환경 변수를 설정하면. 있는 shim 데이터베이스를 또한 제외하는 특정 이진 있는 사용자가 있을 않은 shimmed 검색할 경우 실패할 것으로 알려진 shim에서 유의하십시오.

어떤 사용되지 에이전트를 찾고? 사용하여 shim을 살펴보겠습니다.

DllLoadOperations 심은 LoadLibrary 및 LoadLibraryEx 가로채고 사용되지 않는 DLL의 목록이 전달된 라이브러리 이름을 비교합니다. 이 목록은 % 프로그램 files%\Microsoft Framework\Agent Framework\Agents\DEP 에이전트를 찾을 수 있는 DepManifest.csv가 저장됩니다. 첫 번째 열은 DllType 항목은 사용됩니다.

ExeLoadOperations shim CreateProcess, CreateProcessAsUser, CreateProcessWithLogon, CreateProcessWithToken, ShellExecute, ShellExecuteEx에, 및 WinExec API를 첫 번째 열은 ExeType DepManifest.csv 저장되어 사용되지 않는 EXE 목록이 전달된 실행 이름과 비교할 차단합니다.

RegistryLoadOperations shim 경우 RegCreateKey RegCreateKeyEx RegCloseKey, RegDeleteKey, RegDeleteKeyEx, %1, RegOpenCurrentUser, RegOpenKey, RegOpenKeyEx, RegOpenUserClassesRoot, RegReplaceKey, RegRestoreKey, RegSetValue, RegSetValueEx, 레지스트리 키 (다시 (저장된 목록으로 전달된 비교 RegUnloadKey API를 가로채고 첫 번째 열의 RegType DepManifest.csv—this 시간.

직접 ApiLoadOperations 심은 특정 API를 더 이상 사용되지, 응용 프로그램에서 이를 호출할 주목할 shims. Windows Vista 파티션이 경우에만: sti.dll StiCreateInstanceA. (및 텍스트 뒤에 이 경우에도 사용자의; https://blogs.msdn.com/tomarcher/archive/2006/03/22/windows-vista-sti-and-a-story-about-customer-service.aspx 참조하십시오.)

한 가지 사항은 이 에이전트에 대한 알 수 수준 아래로 실행 따라 해당 것입니다: 항목을 호출한 사실을 호출하면 있는 성공적으로 경우에만 기록됩니다.

Compatibility Evaluator 업데이트 Update Compatibility Evaluator Windows 업데이트 해제될 때 더 정확하게 테스트를 대상 수 있습니다 확인하는 특정 응용 프로그램을 사용 중인 Windows 이진 있는 경우에 유용합니다. 응용 프로그램에서 생성된 파일 시스템 및 레지스트리 작업을 기록할 파일 시스템 필터 드라이버 및 레지스트리 후크를 구현하는 커널 모드 드라이버를 (fdrtrace.sys) 설치하여 Update Compatibility Evaluator 작동합니다. (uiaservice.exe) 서비스 및 데이터를 해석하는 및 응용 프로그램 및 Windows 이진 액세스를 맞춤 실행 파일 (uiaconvert.exe) 활용합니다.

bucketizer 에이전트 Bucketizer 에이전트를 각 응용 프로그램에 대한 버킷에 검색된 문제를 분류하는 위해 컴퓨터의 재고에 대해 호환성 평가기 에이전트로부터 수집된 데이터를 매핑합니다.

압축기 에이전트 이름 소리를 마찬가지로 압축기 에이전트 (compressor.exe) 목적은 네트워크 대역폭을 절약할 CAB 파일에 지정된 파일 공유 업로드할 파일 압축 것입니다.

uploader 에이전트 Uploader 에이전트를 다른 에이전트로부터 지정된 파일 공유 수집된 데이터를 업로드하는 담당합니다. 이 에이전트 작업이 비교적 간단한, 즉 지정된 위치로 로컬로 수집한 데이터를 복사하는. 위치를 액세스할 수 없는 경우 에이전트를 다시 시도하기 전에 5초 기다립니다. 에이전트 설치 전에 세 번 시도합니다.

ACT 5.5의 경우 중요한 새 기능은 있는 데이터 수집 패키지 있습니다 " 태그를 " 있습니다 (특정 데이터 컬렉션 패키지를 통해 업로드된 모든 로그를 특정 태그가 적용된 갖게 구성할. 수 있습니다 주소를 보다 효과적으로 소프트웨어를 inventoried 각 그룹에 대해 사용 중인 철저히 이해하는 같은 일부 시나리오에서는 (이전에 이 사용되었습니다 겹치는 응용 프로그램에 대한 측정값 하드) 또는 여러 그룹 또는 조직 데이터를 통합하면.

로그 서비스 처리 로그 처리 서비스 actdcsvc.exe 서비스로 실행됩니다. 익숙한 소리 생각되면 정확히 오른쪽 있다면 (앞에서 설명한 동일한 에이전트 프레임워크 서비스를 이것은! 이 경우 다음 세 가지 에이전트를 실행합니다.

  • 압축 풀기 에이전트가 (decompressor.exe) 에서 수집한 워크스테이션에 사용할 압축 프로그램 에이전트를 자매, 업로드해야 사용하여 CAB 파일에서 클라이언트에 생성된 XML 파일의 압축을 풉니다. 추출된, 일단 수신기 에이전트가 해당 변경을 감지하고 진행할 수 있습니다.
  • 수신기 에이전트는 (listener.exe) 지정된 디렉터리에 변경 내용을 모니터링합니다. 그런 다음 모니터링 대상 디렉터리에 수행할 변경 기다립니다 큐 에이전트를 RPC 호출을 보내는 방식으로 처리합니다.
  • Queuer 에이전트를 (queuer.exe) 수신기 에이전트가 RPC 호출을 수신하기 위해 포트를 설정합니다. 이러한 호출을 받으면 파일을 처리하고 데이터베이스에 업로드합니다. Queuer 에이전트가 완료된 XML 파일의 루트 또는 압축되지 않은 폴더에서 처리 폴더로 이동합니다 이를 성공할 경우. 다시 실패하면 실패 폴더로 파일을 이동합니다. 매우 자주 로그를 처리하는 데 실패하면 수 수 단순히 해당 다시 다시 모니터링되는 공유 루트 디렉터리 이동하여 이 성공적으로 경우가 많습니다.

매우 자주 위로 제공되는 질문을 이러한 처리된 파일을 저장할 필요가 있는지 여부를 것입니다. 데이터를 데이터베이스에 이미 있기 수 기술적으로 수행할 저장할 되며 대부분의 사용자가 안전하게 삭제할 수 있습니다. 그러나 이러한 파일을 가져올 수 있습니다 있는 데이터베이스를 다시 작성하려면 또는 이 데이터를 삭제하기 전에 데이터베이스를 다시 생성하고 해당 나중에 필요성을 고려하는 가치가 있으므로 두 데이터베이스를 통합하려면 유용합니다.

ACT 데이터베이스

응용 프로그램 호환성 관리자 수 있는 매직 대부분의 발생하는 있지만 ACT 데이터베이스를 모든 데이터를 대기 것은. ACT 데이터베이스 테이블 많습니다. 스키마가 문서화되지 않은 동안에는 (않지만, 아, 제목, ACT 거의 모든 새 릴리스에서 변경 (매우 간단한 것이. 응용 프로그램, 컴퓨터, 장치 및 문제점, 중요한 테이블이 포함됩니다 및 모든 다양한 에이전트가 반환되고 로그 처리 서비스를 처리한 정보를 구성하는 데 사용됩니다.

응용 프로그램 이름, 버전, 공급업체 및 응용 프로그램 언어 (NVVL) 를 사용하여 생성된 고유 응용 프로그램 ID를 사용하여 데이터가 연결되므로.

Express 버전을 포함하여 ACT 데이터베이스를 Microsoft SQL Server 2005 이상에서 호스팅할 수 있습니다. (SQL Server 2000은 지원되지 더 이상.) 응용 프로그램 호환성 관리자 ACT 프로그램 Enterprise 구성 초기 구성 단계 동안 데이터베이스를 만듭니다. 데이터베이스를 만드는 데 사용되는 스크립트를 %allusersprofile%\Microsoft\Application Compatibility Toolkit 5\CreateDB.sql 상주합니다.

키 측면에 있는 ACM 보고서를 만드는 기능입니다. 필터 적용/해제를 클릭하면 표시되는 ACM 쿼리 작성기 컨트롤을 사용하여 ACT 데이터베이스를 필터링 보고서를 만듭니다. ACT 데이터베이스의 엔터티가 관련된 따라 조건을 필터링하고 만들려면 이러한 절을 연결할 수 있습니다 AND 및 OR 관계를. .adq 파일로 보고서를 저장할 수 있습니다 (사용되는 필터를 정의하는.xml 파일을. .adq 파일은 데이터가 OLAP이고 특정 데이터 집합에 따라 있는 휴대용 형식입니다.

온라인 동기화

온라인 동기화를 수행할 때 ACT 공용 웹 서비스를 사용합니다. ACT 이전 버전의 에서는 모든 소프트웨어를 고유한 응용 프로그램 ID를 보낸 있지만 원한다면 커뮤니티에서 호환성 평가 숨길 수 있습니다. ACT 5.5와 함께 응용 프로그램에 대한 정보를 공유할 수 없습니다 ACT 않음 보냅니다 데이터를 반환 받지 못한 의미합니다) 있는 응용 프로그램 ID.

커뮤니티 데이터를 Microsoft Compatibility Exchange 데이터베이스에서 가져옵니다 있으며 로고 인증 데이터 및 커뮤니티 데이터를 다른 사용자가 투표와 포함됩니다. 별도의 시스템 windows.com/compatibility, 오늘 전원이 이 데이터를 상용 소프트웨어 호환성 상태를 수동 연구 결과를 추가합니다. 그리고 ACT 5 이전에 사용할 수 있는 것보다 호환성 알려진 상태에 대한 훨씬 더 많은 정보를 제공하는 이 데이터를 통합하기 위해 ACT 첫 번째 릴리스가 됩니다.

표준 사용자 분석

SUA (Standard User Analyzer) 모니터링 및 분석 응용 프로그램 실행 및 응용 프로그램 테스트 중에 발생하는 문제에 통신하는 여러 이진 구성됩니다. 주 SUA UI이 응용 이 프로그램에 대한 시작 조건을 선택하고 분석 응용 프로그램을 대상으로 수 있습니다. SUA 응용 프로그램을 모니터링할 해당 내부 플랫폼으로 응용 프로그램 검증 도구를 사용할 다음 됩니다. 응용 프로그램의 실행 모니터링 후 SUA 데이터를 이해하고 경우에도 Windows 응용 프로그램 호환성 인프라에 연결할 문제 완화 패키지를 만드는 사용자가 사용할 수 SUA UI에 가져온 데이터를 제공합니다.

응용 프로그램 검증 도구 응용 프로그램 검증 도구 개발자가 응용 프로그램 실행을 모니터링하는 방법을 제공하는 도구입니다. SUA에서 응용 프로그램 검증 도구를 사용하여 특정 API를 후크 및 해당 사용 조사 관리자 권한이 필요한 경우 응용 프로그램 동작을 추적합니다.

응용 프로그램 검증 도구가 있는 플러그 인 모델을), 이 문서를 작성하는 중 경우 아직 설명하지 공용 사용할) 위치를 특정 dll 수 수 등록된 및 구현합니다 대상 응용 프로그램을 모니터링할 구현된. (플러그 인을 사용하여 구성됩니다 레지스트리 키 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ {ApplicationVerifierGlobalSettings}.) SUA에서 응용 프로그램을 모니터링하는 데 사용하는 dll을 vfLuaPriv2.dll 설치하는 동안 %windir%\System32 디렉터리에 설치되어 있는 것입니다. 이진 vfLuaPriv2.dll vfLuaPriv.dll을 응용 프로그램 검증 도구에 의해 설치된 우선합니다.

때 SUA 테스트 응용 프로그램을 시작합니다 처음에 응용 프로그램 검증 도구 시스템에 설치된 및 필요한 경우 설치할 수 확인합니다. 다음으로 SUA 응용 프로그램 검증 도구에 명령줄 인터페이스를 사용하여 응용 프로그램을 등록합니다; 예를, 모니터링 대상으로 notepad.exe 경우 명령줄 SUA 호출이 됩니다 다음:

appverif.exe -enable luapriv -for "notepad.exe"

응용 프로그램 검증 도구 vfLuaPriv2.dll 지정된 이름을 가진 luapriv 문자열을 찾습니다.

SUA에서 응용 프로그램을 구성합니다 때 해당 응용 프로그램을 만든 모든 자식 프로세스를 모니터링할 Application Verifier 또한 지시합니다. 응용 프로그램 검증 도구가 각 프로세스에 대해 별도의 로그 파일을 만들지만 SUA 단일, 통합된 보고서를 만들려면 이러한 로그 파일을 결합합니다. SUA 다른 컴퓨터에서 볼 수 있도록.cab 파일에 로그 컬렉션에 저장할 수도 있습니다.

표준 User Analyzer UI SUA 세 가지 다른 컨텍스트 중 하나에서 응용 프로그램을 테스트할 수 있습니다: 토큰, 현재 사용자의 토큰을 해제를 파일 및 레지스트리 가상화, 또는 높은 권한이 사용자의 현재 사용자가 응용 프로그램을 시작하는. 각각의 경우에 SUA 구성하려면 고급 권한이 필요한 응용 프로그램 검증 도구 이후 SUAnalyzerSrv.exe, 상승된 프로세스를 시작할 됩니다. 그림 3 은 notepad.exe 테스트할 때 일반적인 프로세스 트리를 보여 줍니다.

fig03.gif

그림 3 Notepad.exe 테스트

SUAnalyzerSrv.exe 및 AppVerif.exe 항상 실행됩니다 관리자 권한으로 테스트할 대상 응용 프로그램에 대한 환경을 준비하기 위해. SUA 됩니다 다음 지정한 보안 컨텍스트에서 notepad.exe 시작하고 응용 프로그램 및 모든 자식 프로세스가 실행 완료 대기. SUA 다음 집계합니다 및 응용 프로그램 검증 도구 로그를 처리하고 UI에 결과를 표시합니다.

SUA 결과는 파일, 레지스트리, INI, 토큰, 권한, 이름 공간, 기타 개체 및 프로세스 문제 범주로 구분합니다. 이러한 범주는 SUA UI의 맨 위에 탭 해당하며 응용 프로그램을 테스트할 때 다른 문제에 집중할 수 있습니다.

파일 및 레지스트리 관리자 권한이 필요한 시스템 또는 레지스트리 작업을 파일 표시 탭. 플러그 인 응용 프로그램 검증 도구 luapriv 사용 관리자 권한이 필요했습니다 경우에 CreateFile 또는 CreateRegistryKey 같은 관련 API를 동작을 모니터링합니다. UAC 파일 및 레지스트리 리디렉션 기능을 이러한 작업을 수행하려면 Windows Vista에서 허용할 것입니다.

표시되는 각 탭에서 UI API 집합의 동작을 모니터링하는 luapriv에서 일반적으로 결과. 예를 들어, INI 탭을 원래 16비트 응용 프로그램에서 사용하는 WriteProfile API를 사용하는 관련된 문제를 찾는 대해 설명합니다. 각 탭 설명은 SUA 설치의 일부로 제공되는 SUAnalyzer.rtf 설명서를 사용할 수 있으며 응용 프로그램에서 이벤트가 발생한 위치에 대한 스택 추적을 포함하여 이벤트에 대한 자세한 정보를 보려면 각 탭의 이벤트를 확장할 수 있습니다.

응용 프로그램 테스트 결과를 검토한 후 SUA 테스트 및 응용 프로그램에 대한 문제 완화 패키지를 만들 수 있습니다. 문제 완화 패키지를 시스템 응용 프로그램 호환성 데이터베이스에 등록한 MSI 경우 있으며 loosen.exe, 파일 또는 레지스트리 ACL 조정하려면 SUA 함께 제공되는 유틸리티 사용할 수 있습니다. 사용자 환경 전체에서 문제 완화 패키지는 배포할 수 있습니다.

Internet Explorer 호환성 테스트 도구

Internet Explorer 호환성 테스트 도구 (iece.exe) Internet Explorer Compatibility Evaluator 활성화하여 작동합니다. ACT 5 에서 데이터 컬렉션 패키지의 일부로 평가기 배포할 수 있지만 이 ACT 5.5용 제거된 컬렉션에 이미 설치된 대상 브라우저가 필요한 이후. (후 모든 만족스러운 경우 설치한 후 작동하지 내용이 있는 검색, 대부분의 사용자는 새 브라우저를 배포 전에 모든 문제를 검색할 선호하는 됩니다!)

Internet Explorer Compatibility Evaluator 매우 간단합니다. 즉 전용 작업을 수행할 권한이 레지스트리를 수정합니다. Internet Explorer 로깅을 사용하면 것입니다. 자체의 브라우저에 검색 제공하므로 데이터의 기능이나 매우 높습니다. Internet Explorer 수정 각 위한 권장 사항 (함께 검색할 수 있는 이벤트의 모든 자세한 내용은 참조하십시오 Internet Explorer 응용 프로그램 호환성.

Internet Explorer 이벤트 로그에 정보를 기록합니다 및 테스트 도구를 레지스트리에서 정보를 수집하는 것이 통합합니다. 도구 직접 정보를 분석하거나 이벤트가 통합된 ACT 데이터베이스를 업로드할 수 있습니다. Internet Explorer Compatibility Evaluator ACT 데이터베이스를 업로드할 선택할 수 에이전트를 실행할 경우 데이터 컬렉션 패키지, 첫 번째 실행 collect.exe 다음 bucketizer.exe, 및 마지막으로 compressor.exe, 뒤에 묻는 CAB 파일을 저장할 위치의 에이전트 마찬가지로 실행됩니다.

결론

잘 있는 우리 아래에-the-내부적으로 둘러보기를 Application Compatibility Toolkit 5 이벤트로부터. 제품 Windows Vista 또는 Windows 7 마이그레이션을 지원하는 유용한 도구를 제공합니다 있으며 어떤 각각에 대한 자세한 이해를 통해, 수 것입니다 수 더 각 도구의 가능성이 평가하고 적절하게 있는 투자.

Chris Jackson Microsoft의 Windows Application Experience SWAT 팀 기술 리더 것입니다. 그는 조사합니다 이러한 많은 업계 이벤트를 Windows 응용 프로그램 호환성에 대한 지침 교육을 제공하는 물론 응용 프로그램 호환성 문제를 완화할 수 있도록 세계의 엔터프라이즈 고객과 업무 경험을 갖고 있으며 Chris 연락하시면 됩니다. https://blogs.msdn.com/cjacks.

Chris Corio 이상 5년 동안 Microsoft의 Windows 보안 팀에서 멤버로 발생했습니다. 응용 프로그램 보안 기술 및 관리 기술을 Windows 보안을 위한 Microsoft의 자신의 기본 포커스를 발생했습니다. Chris 위치에 도달할 수 있습니다. winsecurity@chriscorio.com.