Příznaky
Zvažte následující scénář:
-
Máte prostředí SharePoint serveru 2010 s aplikací služby profilů pracovních uživatelů
-
Nenainstalovali jste kumulativní aktualizaci nebo novější verzi srpna 2010 pro SharePoint Server 2010
-
Odpojená a přidaná databáze obsahu, která obsahuje několik kolekcí webů
V tomto scénáři po připojení databáze zpátky k webové aplikaci se informace o členství některých kolekcí webů změní a neobjeví se na kartě členství příslušných uživatelů. Informace o členství, které budou viditelné pro uživatele, budou zastaralé.
Příčina
Společnost Microsoft uznává tento problém s výrobkem týkajícím se čištění odebraných kolekcí webů, které byly opraveny v srpnu 2010 kumulativní aktualizace pro SharePoint 2010 (balíček serveru KB 2352342 ). Tato oprava však nemá vliv na kolekce webů, které jsou součástí tohoto stavu, a to odpojením jejich databází před instalací oprav hotfix. Pokud chcete obnovit synchronizaci členství v těchto ohrožených kolekcích webů, postupujte podle kroků řešení.
Řešení
Pokud chcete obnovit synchronizaci informací o členství mezi databází obsahu a databází profilů pro všechny kolekce webů, postupujte podle níže uvedených kroků.Upozornění:
-
V průběhu tohoto postupu budou z databáze profilů odstraněny všechny aktuální informace o členství související se skupinou SharePointu a uživatelé nebudou moci zobrazit jejich úplné informace o členství, dokud nebude v úloze profilu uživatele s úplnou synchronizací služby SharePoint úspěšně zpracována všechny kolekce webů.
-
Během provádění postupu by měla být zakázána následující úloha časovače: "{UPA} profil uživatele k úplné synchronizaci SharePointu" pracovní postup, kde {UPA} je název aplikace služby profilů uživatelů.
Otevřete prostředí SharePoint 2010 Management Shell v počítači hostujícím centrální správu jako místního správce, který je taky členem skupiny Správci farmy a má oprávnění Úplné řízení pro aplikaci služby profilů uživatelů. Nahraďte adresu URL na prvním řádku následujícího výstřižku skriptu PowerShellu s jednou z vašich ovlivněných kolekcí webů (Tento fragment kódu musí být proveden jednou a odebere aktuální skupiny členství z aplikace profilů uživatelů).
$url = "http://server/sites/sitecoll";$SPSite = get-spsite $url;$context = [Microsoft.SharePoint.SPServiceContext]::GetContext($SPSite)$manager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager $context$sourceMethod = [Microsoft.Office.Server.UserProfiles.MemberGroup].getmethod("get_Source")$deleteMethod = [Microsoft.Office.Server.UserProfiles.MemberGroup].getmethod("Delete")foreach ($memberGroup in $manager.GetMemberGroups()){ if ($sourceMethod.Invoke($memberGroup, @()) -eq "SharePointSite") { $deleteMethod.Invoke($memberGroup, @()) } }
Po dokončení skriptu PowerShellu spusťte následující příkaz a naplánte novou synchronizaci databází obsahu.
Stsadm -o sync -deleteolddatabases 0
Spuštěním následujícího skriptu PowerShellu naplánujete úplnou synchronizaci členství ve všech kolekcích webů ve farmě. Get-SPSite-limit All | % {[Microsoft. Office. Server. UserProfiles. WSSProfileSynch]:: ScheduleSiteForFullSynchronization ($ _); $ _. Close ()} takto zaúčtujte, postupujte podle následujících kroků.
-
Otevřete centrální správu, v části monitorování klikněte na stránce Zkontrolovat definice úloh.
-
Vyhledejte úlohu časovače "{UPA} profil uživatele pro úplnou synchronizaci SharePointu", kde {UPA} je název vaší aplikace služby profilů uživatelů.
-
Klikněte na název úlohy a potom na spustit.
-
Jakmile je úloha dokončena, budou informace o členství aktuální a budou automaticky synchronizovány při následném spuštění dřívějších kolekcí webů.
Další informace
Referenční informace o úloze plánování synchronizace profilů (SharePoint server 2010)(SharePoint Server 2010)