none
SP 2013 - User Profile Synchronization Service kann nicht gestartet werden RRS feed

  • Frage

  • Hallo Zusammen,

    Ich versuche gerade UPS einzurichten. Ich habe eine Farm mit 2 WFE-Server, 2 App-Server und zwei SQL-Server. Alle Server sind mit Windows 2012 aufgesetzt und bei SQL verwende ich SQL 2012. Die SharePoint-Version ist 2013.

    Ich habe die UPS-Service Application mit dem folgendem Skript erstellt:

    #-----------------------------------------------
    # Default UPS Configuration
    #-----------------------------------------------
    $upsConfig = @{
    	#Name of the Service Application
    	saName = "User Profile Service Application"				
    	
    	#Name of the Service Application Proxy
    	saProxy = "User Profile Service Application"			
    	
    	#Name of the User Profile AppPool
    	saAppPoolName = "UserProfile-ServiceApplication"		
    	
    	#User Account for User Profile AppPool
    	saAppPoolAccount = "Domain\AppPoolAccount"			
    	
    	#Database Server
    	dbSrv = "SQL-Alias"								
    	
    	#Name of the Profile DB
    	profileDB = "ProfileDB"						
    	
    	#Name of the Synchronization DB
    	profileSyncDB = "ProfileSyncDB"				
    	
    	#Name of the Social DB
    	profileSocialDB = "ProfileSocialDB"			
    	
    	#URL of the MySite Host
    	mysiteLocation = "http://mysite.contoso.com"
    	
    	#Farm Account
    	farmAccount = "Domain\farmadmin"					
    	
    	servers = @{
    	#List of Servers to run User Profile Service ans User Profile Sync Service f.e. List of APP Servers
    	"WFE1" = @{};
    	#"" = @{};
    	#"" = @{};
    	}
    }
    
    #-----------------------------------------------
    # Load SharePoint Powershell Snapin
    #-----------------------------------------------
    if ((Get-PSSnapin -Name Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue) -eq $null)
    {
    	"Load SharePoint Powershell SnapIn"
        Add-PsSnapin Microsoft.SharePoint.Powershell
    	"SharePoint Powershell SnapIn loaded"
    }
    
    #-----------------------------------------------
    # Create MySite Host if not exists
    #-----------------------------------------------
    #to be defined
    
    #-----------------------------------------------
    # Create Application Pool
    #-----------------------------------------------
    
    # Create managed account for User Profile Service if it does not exist
    if ((Get-SPManagedAccount $upsConfig.saAppPoolAccount -ErrorVariable err -ErrorAction SilentlyContinue) -eq $null) {
      "****************************************************************"
      "* Create managed account for " + $upsConfig.saAppPoolAccount
      "****************************************************************"
      #$credential = Get-Credential
      $secUserProfileServiceAccount = Read-Host "Please Enter the Password for" $upsConfig.saAppPoolAccount -AsSecureString
      $credential = New-Object System.Management.Automation.PSCredential ($upsConfig.saAppPoolAccount, $secUserProfileServiceAccount)
      if ($credential -eq $null) { "Terminating script..."; start-sleep 10; exit; }
      New-SPManagedAccount -Credential $credential
    }
    
    $upsPool = Get-SPServiceApplicationPool | where {$_.Name -eq $upsConfig.saAppPoolName }
    if ($upsPool -ne $null) 
    { 
        "--User Profile App Pool [" + $upsConfig.saAppPoolName + "] already exists... <skipping>" 
    } 
    else 
    { 
    	$upsPool = New-SPServiceApplicationPool -name $upsConfig.saAppPoolName -account $upsConfig.saAppPoolAccount 
    }
    
    #-----------------------------------------------
    # Create User Profile Service Application
    #-----------------------------------------------
    "****************************************************************"
    "Create User Profile Service Application with Proxy"
    "****************************************************************"
    
    $upsSA = Get-SPServiceApplication | where {$_.Name -eq $upsConfig.saName}
    if ($upsSA -ne $null) 
    { 
        "-- User Profile Service Application [" + $upsConfig.saName + "] already exists... <skipping>" 
    } 
    else 
    { 
    	$ups = New-SPProfileServiceApplication –Name $upsConfig.saName -ApplicationPool $upsConfig.saAppPoolName -ProfileDBServer $upsConfig.dbSrv -ProfileDBName $upsConfig.profileDB -SocialDBServer $upsConfig.dbSrv -SocialDBName $upsConfig.profileSocialDB -ProfileSyncDBServer $upsConfig.dbSrv -ProfileSyncDBName $upsConfig.profileSyncDB -MySiteHostLocation $upsConfig.mysiteLocation 
    	New-SPProfileServiceApplicationProxy -Name $upsConfig.saProxy –DefaultProxyGroup -ServiceApplication $ups
    }
    
    #-----------------------------------------------
    # Start User Profile Service Instances
    #-----------------------------------------------
    foreach ($netbios in $upsConfig.servers.keys) {
        "****************************************************************"
    	"Start User Profile Service Instance on" + $netbios
    	"****************************************************************"
    	#"[" + $netbios + "]"
        if ((Get-SPServer $netbios -ErrorVariable err -ErrorAction SilentlyContinue) -eq $null) 
    	{
            "The server" + $netbios + "is not found in this farm..." 
            "Terminating script..."; start-sleep 10; exit; 
        } 
    	else 
    	{
    		$upsService = $(Get-SPServiceInstance | where {$_.TypeName -match "User Profile Service" } | where {$_.Server -match $netbios})
    		if ((Get-SPServiceInstance | where {$_.TypeName -match "User Profile Service" } | where {$_.Server -match $netbios}).status -ne "Online") 
    		{
    			"Starting User Profile Service on " + $netbios
                Start-SPServiceInstance -Identity $upsService.ID
            }
        }
    }
    
    #-----------------------------------------------
    # Start User Profile Sync Service Instances
    #-----------------------------------------------
    
    #Get Farm Account Password as Secure String
    $secFarmAccountPassword = Read-Host "Please Enter the Password for" $upsConfig.farmAccount -AsSecureString
    
    foreach ($netbios in $upsConfig.servers.keys) {
        "****************************************************************"
    	"Start User Profile Sync Service Instance on" + $netbios
    	"****************************************************************"
    	#"[" + $netbios + "]"
        if ((Get-SPServer $netbios -ErrorVariable err -ErrorAction SilentlyContinue) -eq $null) 
    	{
            "The server" + $netbios + "is not found in this farm..." 
            "Terminating script..."; start-sleep 10; exit; 
        } 
    	else 
    	{
    		$upsSyncService = $(Get-SPServiceInstance | where {$_.TypeName -match "User Profile Synchronization Service" } | where {$_.Server -match $netbios})
    		if ((Get-SPServiceInstance | where {$_.TypeName -match "User Profile Synchronization Service" } | where {$_.Server -match $netbios}).status -ne "Online") 
    		{
    			$upsSA = Get-SPServiceApplication | where {$_.Name -eq $upsConfig.saName}
                $upsSA.SetSynchronizationMachine($netbios, $upsSyncService.ID, $upsConfig.farmAccount, $secFarmAccountPassword)
    			"Starting User Profile Synchronization Service on " + $netbios
    			Start-SPServiceInstance -Identity $upsSyncService.ID 
            }
        }
    }

    Nun habe ich das Problem, dass ich den User Profile Synchronization Service nicht starten kann. Ich bekomme keine Fehlermeldung. Der Service versucht zu starten und fällt zurüf auf gestoppt. Ich habe recherchiert und folgendes überprüft:

    -          Auf den Systemen läuft eine Standard oder Enterprise Version von SharePoint 2013.

    -          Eine Instanz von Managed Metadata Service ist vorhanden.

    -          Ein Managed Path ist vorhanden.

    -          Ein Application Pool für My Site ist vorhanden.

    -          Eine Site Collection, welche das My Site Template verwendet, ist vorhanden.

    -          Der Benutzer, welcher den User Profile Service erstellt, muss in der Gruppe „Farm Administrators“ sein.

    -          Der Benutzer, welcher den User Profile Service erstellt, muss auf allen SharePoint-Servern in der lokalen Administratoren-Gruppe sein.

    -          Der Benutzer, welcher den User Profile Service erstellt, muss auf der Datenbankinstanz die folgenden Rechte haben: Securityadmin, Db_owner

    -          Der Benutzer, welcher die Synchronisation ausführt, muss im Active Directory die Berechtigung „Replicating domain changes“ haben, damit dieser die Änderungen abgleichen kann.

    -          Bevor man den User Profile Synchronisation Service ausführt, sollte folgendes vorhanden sein: User Profile Service Application, MySite

    Aus Meiner Sicht habe ich alle Voraussetzungen erfüllt. Hat jemand vielleicht noch eine Idee?

    Gruss

    Krisna Nagalingam


    Dienstag, 20. August 2013 08:58

Alle Antworten

  • Ein Wenig spät, aber ich hoffe noch ZOMBIE Thread ;)

    Was steht den in den Logs? Kannst du den Service über die ZA starten?

    Hatte letztens einen ähnlichen Fall vor Ort.

    Grüße

    TIMO


    Only 10 Choices of SharePoint - you love it or not

    Dienstag, 3. September 2013 10:47
  • Hallo Timo

    In den Logs finde ich nicht vernünftiges. Genau das funktioniert nicht. Ich starte den Service, es dauert eine Weile und anschliessend ist der Status wieder auf "stopped". Ich bekomme keine Fehlermeldung oder irgendwelche Informationen.

    Gruss
    Krisna

    Mittwoch, 4. September 2013 09:50
  • Lief der Service schon einmal? Oder ist er seit der Einrichtung noch nicht gestartet?

    Checkliste:

    Kann der Service Benutzer auf die DB zugreifen und schreiben?

    Gibt es Logeinträge mit OWSTIMER und/oder Profile ?

    Viele Grüße

    TIMO


    Only 10 Choices of SharePoint - you love it or not

    Mittwoch, 4. September 2013 11:01
  • Hallo Timo

    Der Service konnte noch nie gestartet werden. Seit der Einrichtung habe ich dieses Problem.

    Der Service Benutzer kann auf die DB zugreifen und es gibt keine Log-Einträge mit den Begriffen OWSTimer und/oder Profile.

    Gruss
    Krisna

    Montag, 9. September 2013 10:17
  • Hallo Krisna,

    okay dann wird es in der Regel trotzdem etwas mit dem UserProfile zu tun haben.
    Auf Distanz ist das nicht ganz einfach und ohne Log.

    Am besten wäre es du nimmst das nochmal als Vorlage und hakst es einfach ab.

    MS SharePoint Profile Synch Checkliste

    Weitere Checkliste nicht MS

    Viele Grüße

    TIMO


    Viele Grüße/Cheers TIMO Only 10 Choices of SharePoint - you love it or not Mein Blog - SharePoint Rocker | MSDN Gallery

    Dienstag, 10. September 2013 08:08
  • Hallo Timo

    Das ist verständlich. Es ist nicht nur aus der Distanz sondern  auch vor Ort nicht einfach.

    Danke für die Checklisten. Ich werde diese durcharbeiten und anschliessend ein Feedback geben.

    Gruss
    Krisna

    Dienstag, 10. September 2013 09:53
  • Willkommen im Club ;)

    Auch die UPSA von 2013 ist nicht stabiler als die von 2010. Auch hier gelten nach meiner Erfahrung uneingeschränkt die gleichen Steps wie in SharePoint 2010. Die beste Anleitung gibt es hier: http://www.harbar.net/articles/sp2010ups.aspx.

    Grüess

    k.thomys

    Dienstag, 12. November 2013 12:45