Probleme mit SharePoint 2013 SP1 behoben


Nach dem Release von SharePoint 2013 SP1 Ende Februar 2014 gab es Probleme mit dem Servicepack. Es waren zwar keine Funktionalitäten betroffen, jedoch konnten keine weiteren Updates installiert werden, nachdem SP1 installiert war.

Dies konnte nun behoben werden, ab sofort ist SP1 für SharePoint 2013 wieder dowloadbar: http://www.microsoft.com/en-us/download/details.aspx?id=42544

So long, Samuel

Big News: SharePoint kann ab sofort auf Windows Azure VMs installiert werden


Wie ich kürzlich erfahren habe, kann man seit dem Spring Update von Windows Azure auch supporteterweise SharePoint Farmen aufsetzen. Das ist ein sehr spannendes Szenario, da es z.B. auch möglich ist, einen VPN Tunnel zum eigenen Netzwerk zu erstellen und somit zu internen Diensten zu connecten. Microsoft nennt das Baby IAAS – Infrastructure as a Service. Weitere Infos unter http://www.windowsazure.com

Ein ausführliches Video davon gibt es auf Channel 9 (TechEd 2012): http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR327Es können ganze Farmen aufgesetzt werden.

Ich bin soeben in einem ersten Projekt dabei, mit Officeatwork eine solche Farm hoch zu ziehen.

  • 2 x WFE für SharePoint FIS
  • 2 x WFE für Intranet
  • 2 x App Server
  • 2 x SQL für Datenbank Cluster
  • 2 x Active Directory

Stay tuned, sobald ich das Szenario habe werde ich einen step by step guide posten (sofern ich dazu komme Smiley) so long, Samuel

Probleme bei der Installation von SharePoint (Configuration Database Fail)


Problem

Wieder einmal in meinem SharePoint Leben bin ich auf ein neues Problem gestossen. Beim laufen lassen des Configuration Wizzards hatte ich folgende Fehlermeldung:

Failed to create the configuration database.
An exception of type System.Collections.Generic.KeyNotFoundException was thrown. Additional exception information: The given key was not present in the dictionary.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Microsoft.SharePoint.Utilities.SPUtility.GetUserPropertyFromAD(SPWebApplication webApplicaiton, String loginName, String propertyName)
at Microsoft.SharePoint.Administration.SPManagedAccount.GetUserAccountControl(String username)
at Microsoft.SharePoint.Administration.SPManagedAccount.Update()
at Microsoft.SharePoint.Administration.SPProcessIdentity.Update()
at Microsoft.SharePoint.Administration.SPApplicationPool.Update()
at Microsoft.SharePoint.Administration.SPWebApplication.CreateDefaultInstance(SPWebService service, Guid id, String applicationPoolId, SPProcessAccount processAccount, String iisServerComment, Boolean secureSocketsLayer, String iisHostHeader, Int32 iisPort, Boolean iisAllowAnonymous, DirectoryInfo iisRootDirectory, Uri defaultZoneUri, Boolean iisEnsureNTLM, Boolean createDatabase, String databaseServer, String databaseName, String databaseUsername, String databasePassword, SPSearchServiceInstance searchServiceInstance, Boolean autoActivateFeatures)
at Microsoft.SharePoint.Administration.SPWebApplication.CreateDefaultInstance(SPWebService service, Guid id, String applicationPoolId, IdentityType identityType, String applicationPoolUsername, SecureString applicationPoolPassword, String iisServerComment, Boolean secureSocketsLayer, String iisHostHeader, Int32 iisPort, Boolean iisAllowAnonymous, DirectoryInfo iisRootDirectory, Uri defaultZoneUri, Boolean iisEnsureNTLM, Boolean createDatabase, String databaseServer, String databaseName, String databaseUsername, String databasePassword, SPSearchServiceInstance searchServiceInstance, Boolean autoActivateFeatures)
at Microsoft.SharePoint.Administration.SPAdministrationWebApplication.CreateDefaultInstance(SqlConnectionStringBuilder administrationContentDatabase, SPWebService adminService, IdentityType identityType, String farmUser, SecureString farmPassword)
at Microsoft.SharePoint.Administration.SPFarm.CreateAdministrationWebService(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)
at Microsoft.SharePoint.Administration.SPFarm.CreateBasicServices(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)
at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword, SecureString masterPassphrase)
at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, String farmUser, SecureString farmPassword, SecureString masterPassphrase)
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()
at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()

Lustigerweise war die ConfigDB aber vorhanden:

Ursache

Die Fehlermeldung lässt den Schluss zu, dass das Problem offenbar nicht in SharePoint liegt. (at Microsoft.SharePoint.Utilities.SPUtility.GetUserPropertyFromAD(SPWebApplication webApplicaiton, String loginName, String propertyName)).
Ausserdem hat es wohl mit den Managed Accounts zu tun (at Microsoft.SharePoint.Administration.SPManagedAccount.GetUserAccountControl(String username))

Nach etwas Suchen, fand ich heraus, dass es sich um Probleme mit den Read Berechtigungen im Active Directory handelt.

Lösung

Offensichtlich hat Ihr AD Administrator entschieden, nicht alle Attribute freizugeben. Gehen Sie zur Lösung wie folgt vor:

  1. Lassen Sie eine AD Gruppe erstellen
  2. Alle managed Accounts (Farm, Services, Crawl, WebAppPool) in die Gruppe einfügen
  3. Die Gruppe auf Domain Ebene mit Read all Attributes berechtigen

Danach funktioniert die Installation.

so long, Samuel

Automatisch User im AD anlegen für SharePoint Demo Umgebung


Das wollte ich euch schon lange mal posten, hab ich für SharePoint Advent gemacht.

Wenn man hie und da ein Demoszenario aufsetzt wie wohl wir aller hier, dann wäre es ja schön, auch ein paar Personen mit im AD zu haben, um auch den Profilimport zu testen und den Organisational Browser zeigen zu können. Aus diesem Grund habe ich ein Script gesucht, der mir User im AD anlegt. Ich habe Teile gefunden und den Script vervollständigt. Zusätzlich habe ich euch ein Excel mit Userdaten, die ihr verwenden könnt.

Vorgehen:

Eine OU “Employees“ anlegen

Script laufen lassen

Vorgesetzte zuordnen (sorry, das hab ich nicht auch noch gemacht, so könnt ihr das CSV so umgestalten bzw. erweitern wie ihr wollt)

Hier der Script:

$path = "OU=Employees,$domain"
$employees = Get-ADObject -Filter {distinguishedname -eq $path}
$users = import-csv -Delimiter ";" -Path "C:\Scripts\usersToBeCreated.csv"
$ldappath = "LDAP://$path"
$container = [ADSI] $ldappath
$users | foreach {
$first = $_.FirstName
$last = $_.LastName
$phone=$_.Phone
$mobile=$_.Mobile
$office=$_.Office
$job=$_.Job
$username = "$first" + "." + "$last"
$email = "$username" + "@szu.local"
$newUser = $container.Create("User", "cn=„ + "$first" + „ „ + "$last")
$newUser.Put("sAMAccountName", $username)
$newUser.Put("userPrincipalName","$username" + "@szu.local")
$newUser.Put("givenname",$first)
$newUser.Put("sn",$last)
$newUser.Put("mail",$email)
$newUser.Put("description","Experts Inside User")
$newUser.Put("co","Switzerland")
$newUser.Put("company","Experts Inside GmbH")
$newUser.Put("countryCode",756)
$newUser.Put("displayName","$first" + „ „ + "$last")
$newUser.Put("telephoneNumber","$phone")
$newUser.Put("l","Wil")
$newUser.Put("mobile","$mobile")
$newUser.Put("physicalDeliveryOfficeName","$office")
$newUser.Put("postalCode","9500")
$newUser.Put("st","SG")
$newUser.Put("streetAddress","Alleestrasse 4")
$newUser.Put("title","$job")
$newUser.SetInfo()
$newUser.psbase.InvokeSet('AccountDisabled', $false)
$newUser.SetInfo()
$newUser.SetPassword("Training2010”)
}

 

Dazu zugehörige CSV:

FirstName;LastName;Phone;Mobile;Office;Job
Franz;Schmid;055 382 16 20;074 265 15 20;A380;Sales and Marketing
Hans;Muster;055 382 16 21;074 265 15 21;A380;Sales and Marketing
Fritz;Meier;055 382 16 22;074 265 15 22;A380;Sales and Marketing
Karl;Glanzmann;055 382 16 23;074 265 15 23;A380;Sales and Marketing
Fred;Muster;055 382 16 24;074 265 15 24;A381;Lead Sales and Marketing
Thomas;Zuercher;055 382 16 25;074 265 15 25;B240;Administration
Alfred;Trimmbach;055 382 16 26;074 265 15 26;B240;HR
Marianne;Mueller;055 382 16 27;074 265 15 27;B240;HR
Verena;Maeder;055 382 16 28;074 265 15 28;B240;HR
Simon;Albrecht;055 382 16 51;075 265 15 51;B240;Finances
Patricia;Opprecht;055 382 16 29;074 265 15 29;B240;Finances
Andreas;Meier;055 382 16 30;074 265 15 30;B241;Lead HR, Admin and Finances
Stefan;Heinz;055 382 16 31;074 265 15 31;C320;Consultant
Hilton;Gieswnow;055 382 16 32;074 265 15 32;C320;Consultant
Rolf;Beck;055 382 16 33;074 265 15 33;C320;Consultant
Elvira;Beck;055 382 16 34;074 265 15 34;C320;Consultant
Hedwig;Grunder;055 382 16 35;074 265 15 35;C320;Consultant
Nicole;Hang;055 382 16 36;074 265 15 36;C320;Consultant
Dani;Sangue;055 382 16 37;074 265 15 37;C320;Consultant
Martin;Wille;055 382 16 38;074 265 15 38;C320;Consultant
Marcel;Spring;055 382 16 39;074 265 15 39;C320;Consultant
Juerg;Flueckiger;055 382 16 40;074 265 15 40;C320;Consultant
Simran;Chawla;055 382 16 41;074 265 15 41;C321;Lead Consulting
Norberto;Restrepo;055 382 16 42;074 265 15 42;D450;Developper
Adriano;Celentano;055 382 16 43;074 265 15 43;D450;Developper
Serge;Aeschbacher;055 382 16 44;074 265 15 44;D450;Developper
Sandro;Betinelli;055 382 16 45;074 265 15 45;D450;Developper
Silvan;Maletti;055 382 16 46;074 265 15 46;D450;Developper
Stephen;Marthaler;055 382 16 47;074 265 15 47;D450;Developper
Stefan;Iseli;055 382 16 48;074 265 15 48;D450;Developper
Peter;Mueller;055 382 16 49;074 265 15 49;D450;Developper
Doris;Zwahlen;055 382 16 50;074 265 15 50;D451;Lead Developpment
Christian;Glessner;055 382 16 53;074 265 15 53;X100;Management

 

So long, Samuel

Präsentation SharePoint 2010 Best Practice Setup


Was ja bei mir bereits voraussehbar gewesen ist…

Hier natürlich noch die Präsentation, welche ich anlässlich des ShareTrain vom Juni 2011 gehalten habe. Inhalt waren Vorgehensweisen und Tipps für ein Best Practice Setup von SharePoint 2010. Auf der Tonspur gab es natürlich noch viiieeelll mehr, doch auch in der Präsentation sind viele nützliche Tipps und Blogposts hinterlegt.

So long, Samuel

Aus dem Alltag: 503 Service Unavailable in der Central Administration


Problem:

Nachdem ich bei einem Kunden erfolgreich SQL Server 2008 R2 und SharePoint Server 2010 installiert hatte, erhielt ich beim erstmaligen Öffnen der Central Administration (Zentraladministration) den folgenden Fehler:

Service Unavailable

——————————————————————————-

HTTP Error 503. The service is unavailable.

 

Die Kontrolle im Windows Log ergab folgende drei Einträge:

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          17.12.2010 11:40:31
Event ID:      5021
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      MyServer
Description:
The identity of application pool SharePoint Central Administration v4 is invalid. The user name or password that is specified for the identity may be incorrect, or the user may not have batch logon rights. If the identity is not corrected, the application pool will be disabled when the application pool receives its first request.  If batch logon rights are causing the problem, the identity in the IIS configuration store must be changed after rights have been granted before Windows Process Activation Service (WAS) can retry the logon. If the identity remains invalid after the first request for the application pool is processed, the application pool will be disabled. The data field contains the error number.

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          17.12.2010 11:40:31
Event ID:      5057
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      MyServer
Description:
Application pool SharePoint Central Administration v4 has been disabled. Windows Process Activation Service (WAS) did not create a worker process to serve the application pool because the application pool identity is invalid.

Log Name:      System
Source:        Microsoft-Windows-WAS
Date:          17.12.2010 11:40:31
Event ID:      5059
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      MyServer
Description:
Application pool SharePoint Central Administration v4 has been disabled. Windows Process Activation Service (WAS) encountered a failure when it started a worker process to serve the application pool.

Grund:

Wie aus den Log Einträgen ersichtlich wird, fehlt dem Application Pool Account die folgende Berechtigung “Logon as a batch job”, welche in den Security Policies definiert werden können. In unserem Fall war diese Einstellung von einer überliegenden Policy auf unser System publiziert worden. Diese Berechtigung wird benötigt, damit der Windows Process Activation Service dem entsprechenden Application Pool einen Worker Process zuordnen kann.

Lösung:

  1. Kontrollieren Sie, ob die “Logon as a batch job” Policy von einer höheren Instanz gesteuert wird.
    1. Klicken Sie auf Start –> ausführen
    2. Geben Sie “secpol.msc” ein und drücken Sie Enter
    3. Navigieren Sie zu Local Policies –> User Rights Assignment –> Log on as a batch job
      image
  2. Ist die “Logon as a batch job” Policy nicht übersteuert, kontrollieren Sie ob IIS_IUSRS berechtigt sind. Wenn nicht, vergeben Sie diese.
  3. Ist die Policy übersteuert (sie können lokal keine Änderungen vornehmen), so bearbeiten Sie die entsprechend übergeordnete Policy:
    1. Erstellen Sie eine Active Directory Gruppe, welcher Sie alle Application Pool User von SharePoint zuordnen (inkl. dem Service User für die Service Applications (SharePoint 2010) oder dem Shared Services Provider (SharePoint 2007) und dem Farm User für die Central Administration)
    2. Fügen Sie die Active Directory Gruppe der die Policy “Logon as a batch job” hinzu

So long, Samuel Zürcher

Aus dem Alltag: SP 2010 Userprofil Synchronisation mit dem AD einrichten


Wenn Sie im SharePoint Server 2010 die Userprofil Synchronisation einrichten wollen, so werden Sie bald feststellen, dass dies um einiges komplexer, aber an Stellen auch einfach geworden ist als im SharePoint 2007. Die Erkenntnisse aus meinen letzten Nachforschungen möchte ich hier gerne bekannt geben.

  1. Die Service Applikation Userprofil Synchronisation UND Managed Metadata Service müssen erstellt sein.
  2. Um den Userprofilsynchronisations-Service zu starten, gehen Sie wie folgt vor:
    1. Registrieren Sie den Farm Account, den Sie als Account für die Kommunikation mit der Datenbank ganz zu Beginn des Farm Setup eingegeben haben als lokalen Administrator
    2. Melden Sie sich als Farm Account an
    3. Gehen Sie in die Zentraladministration
    4. Gehen Sie zu den Services auf dem Server
    5. Starten Sie den Userprofil Synchronisations-Service
    6. Kontrollieren Sie den Timer Job, welcher den Sync.Service startet
    7. Melden Sie sich wieder als normaler Admin an
    8. Nehmen Sie dem Farmaccount die Lokalen Adminrechte
  3. Kreieren Sie eine neue Connection
  4. Geben Sie die Domäne an, aus welcher Sie importieren möchten
  5. Geben Sie den Account an, mit welchem Sie den Import machen möchten
  6. Der Account braucht folgende Rechte: Replicate Directory Changes
  7. Klicken Sie auf “Struktur anzeigen” und wählen Sie den Ort im AD aus, wo Ihre Userprofile liegen
  8. Klicken Sie auf OK und nun sollte (hoffentlich) der Profilimport funktionieren.