Udostępnij za pośrednictwem


Migracja narzędzia USMT 4.0 z x86 do x64 powoduje uszkodzenie składników COM+

Ten artykuł pomaga rozwiązać problem polegający na tym, że ustawienia składnika COM+ będą uszkodzone podczas migracji z platformy x86 do platformy x64.

Dotyczy: Windows 10 — wszystkie wersje
Oryginalny numer KB: 2481190

Symptomy

Migrowanie z platformy x86 do platformy x64 przy użyciu narzędzia do migracji stanu użytkownika (USMT) 4.0 do platformy x64 spowoduje uszkodzenie ustawień składników COM+.

Uwaga 16.

Problem nie występuje podczas migracji z x86 do x86 lub x64 do platform x64.

Otwieranie APLIKACJI COMEXP. MSC lub DCOMCNFG.EXE i przejście do katalogu Usługi składników\Komputery\Mój komputer spowoduje następujący błąd na ekranie:

Nie masz uprawnień do wykonania żądanej akcji.

Ponadto w dzienniku aplikacji może zostać wyświetlone zdarzenie o identyfikatorze 4434:

Nazwa dziennika: Aplikacja
Źródło: Complus
Identyfikator zdarzenia: 4434
Poziom: Ostrzeżenie
Użytkownik: Nie dotyczy
Kategoria zadań: Zabezpieczenia
Słowa kluczowe: Klasyczne
Komputer: win7-1.contoso.com

Wywołanie metody do obiektu w aplikacji COM+ zostało odrzucone, ponieważ obiekt wywołujący nie jest poprawnie autoryzowany do wykonania tego wywołania. Aplikacja COM+ jest skonfigurowana do używania kontroli dostępu na poziomie aplikacji i składnika, a wymuszanie tych testów jest obecnie włączone. Pozostała część tego komunikatu zawiera informacje o metodzie składnika, którą obiekt wywołujący próbował wywołać i tożsamość obiektu wywołującego. SVC/Lvl/Imp = 10/6/3, Identity=<<DOMAIN\Username>>

Przyczyna

Jest to znany problem z narzędziem USMT podczas migracji z x86 do x64.

Rozwiązanie

Rozwiązanie

Aby obejść problem w narzędziu USMT 4.0, należy określić plik config.xml i ustawić "Microsoft-Windows-COM-ComPlus-Setup", aby nie migrować.

Jeśli nie używasz jeszcze pliku config.xml dla narzędzia USMT, możesz wygenerować go automatycznie, określając przełącznik /genconfig w celu scanstate.exe składni. Na przykład:

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

Aby uzyskać więcej informacji na temat narzędzia USMT i plików config.xml, zobacz następujący artykuł w witrynie Microsoft TechNet:

Pliki .xml narzędzia USMT

Po wygenerowaniu pliku config.xml należy edytować następującą sekcję w zależności od źródłowego systemu operacyjnego:

Windows XP — <składnik displayname=" Microsoft-Windows-COM-ComPlus-Setup-DL " migrate=" no "

Windows Vista lub Windows 7 — <składnik displayname=" Microsoft-Windows-COM-ComPlus-Setup " migrate=" no "

Zapisz zmiany w config.xml. Uwzględnij zaktualizowany config.xml podczas używania scanstate.exe do obejścia problemu. Na przykład:

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

Spowoduje to wykonanie scanstate.exe, użycie c:\mystore jako magazynu migracji i dołączenie MigDocs.XML, MigApp.xml i Config.XML migracji z włączonym pełnym rejestrowaniem.

Więcej informacji

Jeśli jesteś w scenariuszu, w którym przeprowadzono już migrację, a com+ jest uszkodzony, możesz użyć następującej procedury, aby przywrócić oryginalne repozytorium COM+:

W wierszu polecenia administracyjnego uruchom następujące trzy polecenia:

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

Sprawdź, czy plik R000000000001.clb jest obecny. Następnie skopiuj go z bieżącego katalogu do katalogu głównego dysku C, uruchamiając następujące polecenie:

copy R000000000001.clb C:\R000000000001.clb  

Następnie skopiuj i wklej następujący skrypt VB (między liniami przerywanym) w celu a.txt pliku i zmień jego nazwę COM_Restore.vbs (pamiętaj, aby zmienić rozszerzenie pliku .txt na vbs).

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

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

 MsgBox "Backup Restored!"  
Set objComCatalog = Nothing  

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

Zapisz skrypt w katalogu głównym C:\.

W wierszu polecenia uruchom następujące polecenie:

 C:\cscript COM_Restore.vbs  

Po wyświetleniu wyskakującego komunikatu informującego, że kopia zapasowa została przywrócona, uruchom ponownie komputer (jest to wymagane).

Na koniec otwórz pozycję Serwery składników (dcomcnfg.exe) i sprawdź, czy nadal występują błędy.

Uwaga 16.

Jeśli logujesz się jako użytkownik niebędący administratorem i próbujesz uruchomić usługi składników, oczekiwany jest identyfikator zdarzenia 4434. Użytkownicy niebędący administratorami nie są częścią roli administratora aplikacji systemowej COM+ i dlatego ostrzeżenie o zabezpieczeniach zostanie zarejestrowane w dzienniku zdarzeń. Nie oznacza to, że wykaz COM+ jest uszkodzony.