Freigeben über


USMT 4.0-Migration von x86 zu x64 führt zu beschädigten COM+-Komponenten

Dieser Artikel hilft bei der Lösung eines Problems, bei dem COM+-Komponenteneinstellungen beschädigt sind, wenn Sie von einer x86-Plattform zu einer x64-Plattform migrieren.

Gilt für: Windows 10 – alle Editionen
Ursprüngliche KB-Nummer: 2481190

Problembeschreibung

Wenn Sie das Migrationstool für den Benutzerstatus (USER State Migration Tool, USMT) 4.0 verwenden, um von einer x86-Plattform zu einer x64-Plattform zu migrieren, sind COM+-Komponenteneinstellungen beschädigt.

Notiz

Das Problem tritt beim Migrieren von x86 zu x86 oder x64 auf x64-Plattformen nicht auf.

Öffnen von COMEXP. MSC oder DCOMCNFG.EXE und navigieren zu Component Services\Computers\My Computer führt zu folgendem On-Screen-Fehler:

Sie sind nicht berechtigt, die angeforderte Aktion auszuführen.

Darüber hinaus wird möglicherweise die Ereignis-ID 4434 im Anwendungsprotokoll protokolliert:

Protokollname: Application
Quelle: Complus
Ereignis-ID: 4434
Ebene: Warnung
Benutzer: N/V
Aufgabenkategorie: Sicherheit
Schlüsselwörter: Klassisch
Computer: win7-1.contoso.com

Ein Methodenaufruf an ein Objekt in einer COM+-Anwendung wurde abgelehnt, da der Aufrufer nicht ordnungsgemäß zum Ausführen dieses Aufrufs autorisiert ist. Die COM+-Anwendung ist für die Verwendung von Zugriffsprüfungen auf Anwendung und Komponentesebene konfiguriert, und die Erzwingung dieser Prüfungen ist derzeit aktiviert. Der Rest dieser Nachricht enthält Informationen über die Komponentenmethode, die der Aufrufer aufgerufen hat, und die Identität des Aufrufers. SVC/Lvl/Imp = 10/6/3, Identity=<<DOMAIN\Username>>

Ursache

Dies ist ein bekanntes Problem mit USMT bei der Migration von x86 zu x64.

Lösung

Problemumgehung

Um das Problem in USMT 4.0 zu umgehen, müssen Sie eine config.xml-Datei angeben und das "Microsoft-Windows-COM-ComPlus-Setup" nicht migrieren.

Wenn Sie noch keine config.xml Datei für USMT verwenden, können Sie eine automatisch generieren, indem Sie den Switch "/genconfig" zu scanstate.exe Syntax angeben. Zum Beispiel:

scanstate.exe /genconfig:config.xml /i:migdocs.xml /i:migapp.xml

Weitere Informationen zu USMT- und config.xml-Dateien finden Sie im folgenden Microsoft TechNet-Artikel:

USMT-.xml-Dateien

Nachdem Sie die config.xml Datei generiert haben, müssen Sie je nach Quellbetriebssystem (Betriebssystem) den folgenden Abschnitt bearbeiten:

Windows XP – <Component displayname=" Microsoft-Windows-COM-ComPlus-Setup-DL " migrate=" no "

Windows Vista oder Windows 7 – <Component displayname=" Microsoft-Windows-COM-ComPlus-Setup " migrate=" no "

Speichern Sie Ihre Änderungen an config.xml. Schließen Sie die aktualisierte config.xml ein, wenn Sie scanstate.exe verwenden, um das Problem zu umgehen. Zum Beispiel:

scanstate.exe c:\mystore /i:migdocs.xml /i:migapp.xml /config:config.xml /v:5

Dadurch wird scanstate.exe ausgeführt, wobei c:\mystore als Migrationsspeicher verwendet wird und MigDocs.XML, MigApp.xml und Config.XML für die Migration mit ausführlicher Protokollierung enthalten ist.

Weitere Informationen

Wenn Sie sich in einem Szenario befinden, in dem Sie bereits migriert haben und COM+ beschädigt ist, können Sie das folgende Verfahren verwenden, um das ursprüngliche COM+-Repository wiederherzustellen:

Führen Sie an einer Administrativen Eingabeaufforderung die folgenden drei Befehle aus:

CD %windir%\winsxs\
CD *amd64*com-complus*runtime*  
Dir  

Stellen Sie sicher, dass R000000000001.clb vorhanden ist. Kopieren Sie es dann aus dem aktuellen Verzeichnis in das Stammverzeichnis des C-Laufwerks, indem Sie diesen Befehl ausführen:

copy R000000000001.clb C:\R000000000001.clb  

Kopieren Sie als Nächstes das folgende VB-Skript (zwischen den gestrichelten Zeilen) in a.txt Datei, und benennen Sie es COM_Restore.vbs um (stellen Sie sicher, dass Sie die .txt Dateierweiterung in .vbs ändern).

 =============================================================================
Dim objComCatalog  

Set objComCatalog = CreateObject("COMAdmin.COMAdminCatalog")  
objComCatalog.RestoreREGDB "C:\R000000000001.clb"  

 MsgBox "Backup Restored!"  
Set objComCatalog = Nothing  

=============================================================================

Speichern Sie das Skript im Stammverzeichnis von C:\.

Führen Sie an der Eingabeaufforderung den folgenden Befehl aus:

 C:\cscript COM_Restore.vbs  

Sobald die Popupmeldung angezeigt wird, die besagt, dass die Sicherung wiederhergestellt wird, starten Sie den Computer neu (dies ist erforderlich).

Öffnen Sie schließlich Komponentenserver (dcomcnfg.exe), und überprüfen Sie, ob immer noch Fehler auftreten.

Notiz

Wenn Sie sich als Nicht-Administratorbenutzer anmelden und versuchen, Komponentendienste zu starten, wird die Ereignis-ID 4434 erwartet. Nicht-Administratorbenutzer sind nicht Teil der Administratorrolle der COM+-Systemanwendung und daher wird die Sicherheitswarnung im Ereignisprotokoll protokolliert. Dies bedeutet nicht, dass der COM+-Katalog beschädigt ist.