Christoph Vollmann

Erfahrungen und Tipps für Office 365 und SharePoint aus dem Berater-Leben

Schlagwort: PowerShell (Seite 1 von 2)

Vorbereitung für SharePoint 2016 MinRoles: Suchkomponenten manuell verschieben

Nach der Installation des „Feature Pack 1“ (sprich dem November 2016 CU) für SharePoint 2016 ist es jetzt auch für kleinere Farmen möglich das MinRole-Konzept zu fahren.

Oft wurden diese Farmen aber mit der „traditionellen“ Herangehensweise aufgesetzt. So kommt es beispielsweise häufig vor, dass meine Kunden eine Verteilung von Suchkomponenten vorfinden. Auf Frontend-Servern habe ich klassischerweise bisher die Query- und Index-Komponenten platziert, während auf den App-Servern die Analytics, Crawl, Content Processing und Admin Komponente ihre Dienste verrichtet haben.

Bei der Konvertierung zu MinRoles gibt es daraufhin natürlich Probleme. Im Kern geht es darum, dass die Suchkomponenten jetzt überhaupt nicht mehr auf Frontend-Servern, sondern auf dedizierten Search Servern oder kombinierten Application and Search Servern zu platzieren sind.

Folgende Meldung bekam also mein Kunde:

„Sie müssen Suchkomponenten manuell verschieben, bevor Sie die Suchserverrolle in eine andere Rolle konvertieren.“

Verschieben der Suchkomponenten

Suchkomponenten im SharePoint zu verschieben oder auch zu erweitern folgt immer einem gleichen Prozess:

  1. Vorhandene Suchtopologie klonen
  2. Änderungen der Komponenten am Klon vornehmen
  3. Neue Suchtopologie aktivieren
  4. Alte Suchtopologie löschen

Bei der Verschiebung in diesem Fall ist aber daran zu denken, dass der Index nicht einfach gelöscht werden kann, sondern repliziert und dann vom alten Server entfernt werden muss. Faktisch habe ich dies bei dem Kunden mit allen Komponenten getan. Unser Plan lief also folgendermaßen:

  1. Vorhandene Suchtopologie klonen
  2. Neue Komponenten für Administration, Crawling, Analyse und Inhaltsverarbeitung auf dem App-Server erstellen
  3. Neue Suchtopologie aktivieren
    (An dieser Stelle gibt es die Komponenten von Web-Frontend-Server doppelt. Unter anderem wird aber auch der Suchindex repliziert – was mir sehr entgegenkommt)
  4. Nochmals die Topologie klonen
  5. Alle Komponenten auf dem Web-Frontend-Server entfernen
  6. Diese neue Topologie aktivieren
  7. Alle alten Topologien löschen

Mein PowerShell für diesen Fall (Die Servernamen sind natürlich zu ersetzen):

Danach finden sich alle Suchkomponenten auf dem App-Server.

Das ist Schritt 1 für diesen Kunden gewesen. Schritt 2 war die Verschiebung des Distributed Cache. Danach konnte die Konvertierung zu MinRoles durchgeführt werden.

SharePoint 2016 Feature Pack 1: Anpassen des App Launchers

Das Feature Pack 1 für SharePoint 2016 ist veröffentlicht. Und zwar „getarnt“ als ein normales Update. „November 2016 PU“ trägt also jetzt den Codenamen „Feature Pack 1“.

Was steckt im Pack? Wie auf vielen Blogs zu lesen zumindest schon einmal eine wichtige Funktion: MinRoles umfassen jetzt auch die Kombination von „Frontend und Distributed Cache“ sowie „Application und Search“, was es für viele (wenn nicht gar alle) meiner Kunden leichter macht auf das MinRole-Konzept zu setzen ohne mindestens 4 SharePoint-Server im Einsatz zu haben.

Aber noch eine wichtige Funktion wurde ergänzt: Der App Launcher kann jetzt auch angepasst werden, ohne dass man ein Hybrid-Szenario mit Office 365 fahren muss.

Im folgenden möchte ich kurz zeigen, wie es zu aktivieren ist und welche Möglichkeiten sich ergeben.

Aktivierung des Features

Zunächst gibt’s ein passendes Feature, welches per PowerShell auf der Webanwendung aktiviert wird, auf der man die Tiles für den App Launcher verwalten will. Also:

Danach gibt es eine versteckte Liste, die über https://<deine-adresse>/Lists/Custom%20Tiles aufrufbar wird.

In dieser Liste werden die Links eingetragen, die im App Launcher erscheinen sollen. Die Liste verlangt zwingend eine Symbol-URL. Hierzu zwei Tipps.

  1. Wo bekomme ich passende Symbole her?
    Dazu nutze ich gerne das Metro Studio von Syncfusion. Das hat wirklich eine super Auswahl an „flachen“ Metro-Symbolen. Einfach das gewünschte Symbol mit Hintergrund Transparent exportieren.
  2. Wo speichere ich das Symbol?
    Es muss ein Speicherort sein, der von allen Nutzern gelesen werden kann, die auch den App Tile sehen werden. Also in meinem Fall einfach die Websiteobjekt-Bibliothek auf der Startseite. In Deinem Fall vielleicht eine Bibliothek innerhalb des Intranets o.ä.

Weiterhin kann ich hier auch noch eine Zielgruppe angeben. Diese unterscheidet sich im Vergleich zu bekannten SharePoint-Zielgruppen in einem entscheidenen Punkt: Ich kann auch AD-Gruppen angeben.

Ich sehe nur, was ich benutzen kann

Ein passendes Beispiel dazu: Ich habe eine Active Directory-Gruppe gebildet, die Zugriff auf eine bestimmte Fachanwendung haben. Diesen Nutzern kann ich jetzt einen Link im App Launcher präsentieren und ihn auf genau diese Gruppe einschränken. Nur Nutzer, die Mitglied in dieser Gruppe sind, sehen diesen App Tile und haben überhaupt Zugriff auf die Anwendung.
So erstelle ich für alle Nutzer ein passendes, angepasstes „Web-Startmenü“.

Gut. Wir speichern den Link. In diesem Fall ein Link zu diesem Blog:

 

Nach dem Speichern sehe ich erstmal nichts. Der Browser cached dieses Menü und auch ein „force-reload“ lässt ihn nicht neu laden. Im Developer-Menü (egal, ob Firefox, Chrome, IE oder Edge immer über F12 erreichbar) kann ich den JS-Befehl ClearSuiteLinksCache()  über die Konsole absetzen (Alle anderen Nutzer dürfen bis zu 24 Stunden warten!). Danach erscheint meine Kachel:

App Launcher überall gleich? Noch nicht.

Gut. Klappt ja. Nun ein Blick von einer anderen Webanwendung aus. Hier von der MySite:

Na klasse. Der App Launcher zeigt immer noch die normalen Tiles. Auch das Cache leeren bringt nichts.

Faktisch muss ich jeder Webanwendung mitteilen, wo meine Custom Tiles liegen. Das kann ich – wie so oft – über die PowerShell erreichen:

Leider ist es in diesem TechNet-Artikel genauso beschrieben, aber bisher bringt das nicht den gewünschten Erfolg.
Ich werde mich nochmal damit beschäftigen.

Für Hinweise wäre ich sehr dankbar!

SharePoint Entwicklungsfarm hoch- und runterfahren

Ich war gerade nochmal „kreativ“ und habe mir ein Skript gebaut, mit dem ich meine Hyper-V Maschinen für die SharePoint Farm zuhause hoch- und runterfahren kann.

Es beachtet die korrekte Reihenfolge. Erst geht die Basis rauf – also das AD und in meinem Fall der Router zum Netz, danach der SQL und dann die SharePoint VMs.

Das möchte ich euch natürlich nicht vorenthalten. Bitte ersetzt die Maschinen-Namen einfach durch eure eigenen Namen.
Die 10 Sekunden Wartezeit nach dem Start eines Blocks solltet ihr ggf. auch an eure Umgebung anpassen (bei manchen wird ein Start vielleicht länger dauern, andere hatten mehr Geld für ihre Workstation/Server als ich 😉 )

Alle Health Analyzer – Prüfungen auf einmal durchführen

Mal wieder etwas an der SharePoint-Umgebung umkonfiguriert?! Nun den kompletten Health-Analyzer einzeln durchzugehen und „Reanalyze now“ bei jeder einzelnen Meldung zu klicken, erscheint doch etwas umständlich. Also prüfe ich nach einer Änderung einfach alle „Meldungen“, in dem ich alle Health Analyzer-Prüfungen auf einmal durchführen lasse.

Hier ein entsprechendes PowerShell:

Hinterher öffnet das Skript auch einen Internet Explorer mit der entsprechenden Status-Seite, damit man weiß, wann alle Jobs durchgelaufen sind.

Das Skript benötigt keine Parameter und die Ausgabe sieht dann so aus:

Backup aller Websitesammlungen erstellen

Backup allgemein

Seine SharePoint Farm zu sichern ist natürlich essenziell. SharePoint bietet dafür Möglichkeiten via „Backup-SPFarm“ ein passendes Backup zu erstellen, auch viele Drittanbieter bieten Lösungen an.

Einzelne Websitesammlungen

Manchmal ist es allerdings notwendig, einzelne Websitesammlungen statt einer kompletten Inhaltsdatenbank wiederherzustellen. Dafür kann der Befehl „Backup-SPSite“ resp. „Restore-SPSite“ genutzt werden.

Und jetzt: Automatisieren

Um ein regelmäßiges Backup zu erstellen, habe ich hier ein Skript zusammengestellt, welches alle Websitesammlungen einer Farm sichert. Wahlweise mit dem Datum und der Uhrzeit als Prefix.

Hier also das Skript:

Aufzurufen ist das Skript mit mindestens einem Parameter:

Beispielhafte Ausgabe:
backupallsites

Das Ergebnis im Dateiverzeichnis:
backupallsites_files

Dieses Skript kann man beispielsweise auch in die Windows Aufgabenplanung übernehmen und so neben den regelmäßigen Farm-Backups auch ein Backup aller Sammlungen in einzelnen Dateien sichern.

P.S.: Jetzt muss ich nur noch die MySites herausfiltern – Update folgt 🙂

Ältere Beiträge

© 2017 Christoph Vollmann

Theme von Anders NorénHoch ↑