Können Sie programmgesteuert mit der komponentenbasierten Wartung (TrustedInstaller) interagieren? [geschlossen]

9

Ich habe versucht, herauszufinden, wie man programmgesteuert mit Component-Based Servicing (CBS) interagieren kann, was im Grunde der TrustedInstaller und andere Dienste sind. Mit dem Ziel, CBS abfragen zu können, welche Pakete installiert sind und andere Informationen zu installierten Paketen zu erhalten. Hier ist ein Link zu einem Überblick darüber .

Grundsätzlich mit C / C ++ / C # (nicht wählerisch) würde ich gerne über eine API interagieren. Dieser Link ist die beste Dokumentation von MSDN , die API-bezogen ist, die ich finden konnte, und es ist nicht t viel. Dann ist hier ein weiterer MSDN-Dokumentationsbereich , der einige Details aber nichts wirklich gibt über eine API, mit der ich interagieren kann. Dies ist unter Paket-Manager, wie Sie über die Befehlszeile in einer begrenzten Weise interagieren können, um CBS-basierte Pakete zu installieren. Das beste Zitat von diesem letzten Link ist:

  

"CBS stellt verschiedene APIs zur Verfügung ( das sind   nicht öffentlich verfügbar ) an seinen Kunden   Installateure zur Wartung des Betriebs   Systemkomponenten. "

Was alles sagen mag, aber ich bin noch nicht bereit aufzugeben. Das Home für alle oder zumindest die meisten davon ist %WINDIR%\servicing , das CbsApi.dll für Starter hat, während es als COM-DLL registriert zu sein scheint, es veröffentlicht keine Klassen oder Funktionen, nichts zu tun. Es scheint auch, dass die meisten Details, dass der API-Zugriff in den Unterordnern wie Packages , Sessions , Editions , Version usw. sind.

Ich weiß, dass nicht viele Leute versuchen würden, dies zu tun, außer für mich selbst und Greg Lambert , der ein Blogposts von einem zwei Jahre zurück im Grunde die gleichen Fragen und versuchen, herauszufinden, dass "nicht öffentlich" API. Es sah nicht so aus, als hätte er auch diese Nuss geknackt.

Jetzt bin ich also an der richtigen Stelle, um Hilfe zu suchen und die Community zu fragen, ob jemand die versteckte API dafür ausgearbeitet hat oder ob Sie die Herausforderung annehmen und sehen wollen, dass sie es herausfinden können. Jede Information, die mir hilft, einen Schritt näher zu kommen, wird geschätzt.

    
Rodney S. Foley 27.07.2010, 21:21
quelle

3 Antworten

1

Der richtige Weg für den programmatischen Zugriff auf das CBS besteht über die APIs für seine Clients. Je nachdem, was Sie erreichen möchten, wäre dies der Windows Installer oder die API des Windows Update-Agents , die beide vorhanden sind dokumentiert im Windows SDK. Die CBS-Konsole ist ein Implementierungsdetail und sollte nicht direkt verwendet werden. Der Grund, warum es so wenig öffentlich verfügbare Informationen gibt, ist eine Kombination aus der Tatsache, dass es eher eine schlechte Praxis ist, sich auf Implementierungsdetails anstatt auf Verträge zu verlassen, und es gibt einfachere und zuverlässigere Möglichkeiten, alles, was Sie mit CBS machen, zu erreichen >

Dieser Teil des Windows Installer SDK behandelt Abfrage nach installierten Komponenten.

    
Joseph Bongaarts 18.05.2011 03:02
quelle
0

Vielleicht haben sich die Dinge geändert, weil ich gerade MS komponentenbasierte Wartungsreferenz gefunden habe, die ein dokumentiert COM-Schnittstelle.

Randnotiz: Ich kam über einen Kommentar auf Raymond Chens Blog und seine Antwort, die Wunder "Was ist Component Based Service, warum ist es eine Katastrophe, und was hat es mit Auto-Sortierung zu tun?". Ich weiß immer noch nicht die Antwort.

  

Das Auffüllen von Festplattenspeicher ist ein häufiges Problem in Windows 7 aufgrund des Desasters bei der komponentenbasierten Wartung.

     
    

[Es wäre kein Problem, wenn Sie die automatische Sortierung im Explorer deaktivieren könnten. -Raymond]

  
    
Hugh Allen 21.08.2012 08:12
quelle
0

Das CBS ist im Grunde für Windows Updates und andere Wartungsvorgänge. Da sie von Microsoft selbst herausgegeben werden, sind die Clients von CBS interne Teams bei Microsoft. Die APIs werden nicht öffentlich veröffentlicht. Die Tools und XML-Dateien, die zum Schreiben von Windows-Updates usw. benötigt werden, sind Microsoft-intern. Es gibt keine Möglichkeit, dass Anwendungen von Drittanbietern CBS-Technologie verwenden können.

    
Abhik Chatterjee 20.07.2013 04:43
quelle

Tags und Links