기본적으로 TrustedInstaller 및 기타 서비스 인 CBS (Component-Based Servicing)와 프로그래밍 방식으로 상호 작용하는 방법을 찾으려고 노력했습니다. CBS에 어떤 패키지가 설치되어 있는지 질의하고 설치된 패키지에있을 수있는 다른 정보를 얻을 수있는 목표. 다음은 link to a overview of it입니다.프로그래밍 방식으로 구성 요소 기반 서비스 (TrustedInstaller)와 상호 작용할 수 있습니까?
기본적으로 C/C++/C# (까다롭지는 않음)를 사용하여 API를 통해이 기능과 상호 작용하고 싶습니다. 이 링크는 내가 찾을 수있는 API 관련한 best documentation from MSDN이며 그다지 많지 않습니다. 그렇다면 여기서 또 다른 MSDN documentation area은 약간의 세부 사항을 제공하지만 API와 관련하여 사용할 수있는 것은 없습니다. 이 패키지 관리자는 CBS 기반 패키지를 설치하기 위해 제한된 방법으로 명령 줄을 통해 상호 작용할 수있는 방법입니다. 마지막 링크에서 최선의 인용은 다음과 같습니다
이"CBS가 운영 시스템 구성 요소를 서비스로 고객 설치에 ( 공개적으로 사용할 수 없습니다 ) 다양한 API를 제공합니다."
모든 것을 말해 줄 수도 있지만 아직 포기할 준비가 아닙니다. 전부 또는 적어도 대부분의 가정은 %WINDIR%\servicing
이고 우선적으로 CbsApi.dll
입니다. COM DLL로 등록 된 것처럼 보이지만 아무 것도 수행 할 수있는 클래스 나 함수가 공개되어 있지 않습니다. 세부 사항의 대부분은 API 액세스가 하위 폴더에 있다는 것으로도 보인다 같은 Packages
, Sessions
, Editions
, Version
등
나는 많은 사람들이 자신과 Greg Lambert를 제외하고이 작업을 수행하려고 할 것 알지 누가 2 년 전 동일한 질문을하고이 "공개적이지 않은"API를 찾아 내려고 노력하면서 couple blog posts을 가지고 있습니다. 그는 아직이 너트를 깨뜨린 것처럼 보이지 않았다.
그래서 지금은 도움을 청하고 지역 사회에 누군가가 숨겨진 API를 해결했는지 묻습니다. 또는 도전을 받아보고 알아 내고 싶을 수도 있습니다. 내가 한 걸음 더 가까이 나아갈 수있는 정보는 감사하겠습니다.
TrustedInstaller로 임의 코드를 실행하는 음흉한 기술이 있습니다. 이것은 아마 당신이 원하는 것을하지 않습니다. – Joshua
@ Joshua 그게 당신을 위해 무엇을 성취합니까? CBS API에 어떤 방식 으로든 액세스 할 수 있습니까? –
CBS에 대한 액세스 권한이 필요한 유일한 이유는 특정 업데이트가 설치되어 있는지 확인하는 것입니다. 이를 위해 DLL의 버전 번호가 요청한 정보를 제공합니다. – Joshua