Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
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.