SharePoint-Farm PassPhrase anpassen

PassPhrase wiederherstellen

Immer wieder kommt es vor, dass man einen neuen Server in eine bestehende SharePoint Farm aufnehmen muss. Oft passiert es dabei, dass der Zugang unmöglich ist, weil die PassPhrase vergessen wurde oder gar nicht bekannt ist.

Nachfolgend wird kurz beschrieben, wie das beschriebene Problem gelöst werden mittels PowerShell gelöst werden kann und die PassPhrase sich neu setzen läßt. Ein Weg die alte auszulesen ist meines Wissens nicht möglich.

Vorgehen:

Als erstes startet man die PowerShell und lädt das SharePoint PowerShellPlugin mit

add-pssnapin microsoft.shahrepoint.powershell

Anschließend speichert man die PassPhrase in eine variable mit SecureString mittels

$pass = ConvertTo-SecureString -AsPlainText -Force

Convertierung SecureString

Dies startet einen Dialog in dem man die Password String eingeben muss und mit der Enter-Taste bestätigt.

Danach setzt man die PassPhrase neu mit

Set-SPPassPhrase -PassPhrase $pass -Confirm

Setzen der neuen PAssPhrase

Anschließend gibt man im Dialog die Phrase nochmals ein, schließt die Eingabe mit der Enter-Taste ab und bestätigt dies nochmals mit Y.

Nun kann man mit der neuen Phrase einen Server in die Farm aufnehmen.

 

Benachrichtigungen im SharePoint mittels PowerShell anpassen

In diesem Beitrag wir kurz beschrieben, wie man die Benachrichtigungen mit Hilfe der PowerShell anzeigen, anpassen und löschen kann.

1. Anzeigen der Benachrichtigungen

$web = get-spweb „URL der SharePoint Webseite“ 

foreach($benachrichtigung in $web.alerts)

{

$benachrichtigung.User.Name + “  “ + $benachrichtigung.alertfrequency

}

Das zeigt den Nutzer und die jeweilige Benachrichtigungsfrequenz an.

2. Anpassen der Benachrichtigung

$web = get-spweb „URL der SharePoint Webseite“ 

foreach($benachrichtigung in $web.alerts)

{

if($benachrichtigung.User.Name -eq „Name des Benutzers“)

{

$benachrichtigung.AlertFrequency Microsoft.SharePoint.SpAlertFrequency]::Daily

$benachrichtigung.Update()

}

}

Dadurch kann die Benachrichtigungsfrequenz auf täglich gestellt werden.

3. Löschen der Benachrichtigung

$web = get-spweb „URL der SharePoint Webseite“ 

$benachrichtigungen= $web.alerts

$nutzer= “Domaine\Nutzername”

$meinebenachrichtigungen= @()

foreach ($benachrichtigung in $benachrichtigungen)

{

if ($benachrichtigung .User -like $nutzer)

{

$meinebenachrichtigungen += $benachrichtigung

}

}

foreach ($del in $meinebenachrichtigungen)

{

$benachrichtigungen.Delete($del.ID)

}

Anpassen der E-Mail Adresse eines Benutzer in SharePoint via PowerShell

Nachfolgend wird beschrieben, wie man mit Hilfe der PowerShell die E-Mail Adresse bzw. andere Nutzerdaten anpassen kann.

  1. man startet die PowerShell mit einem Nutzer der administrative Rechte auf dem SharePoint Server hat.
  2. anschließend lädt man das SharePoint PowerShell Snapin mit add-pssnapin microsoft.sharepoint.powershell 
  3. als nächstes holt man sich den gesuchten Nutzer mit §nutzer=get.-spuser „domaine\benutzername“ -web „URL der Sitecollection“
  4. nun kann man mit $nutzer.Email = „Emailadresse“ die neue E-Mail Adresse setzen
  5. Abschließend muss man das ganze mit $nutzer.Update() speichern
  6. Überprüfen kann man das ganze anschließend mit $nutzer.Email

Verknüpfte Datenquellen in SharePoint 2013

Verknüpfte Datenquellen kennt man oft nur aus der Datenbankwelt. Sie können jedoch auch direkt im SharePoint Server genutzt werden. Verknüpfte Datenquellen bieten dabei einige Vorteile. So tragen sie zum Beispiel zur Übersichtlichkeit in den einzelnen SharePoint-Listen bei. Für den Anwender wird eine zusammengefasste Ansicht über alle erzeugt.

Zur Erstellung einer verknüpften Datenquelle mittels dieses Beitrags benötigt man, zusätzlich zum SharePoint inklusive administrativen Recht auf der SiteCollection, einen SharePoint Designer. Ausgangspunkt sind zwei benutzerdefinierte SharePoint-Listen, eine welche den Kundennamen und die Bestellnummer beinhalten, eine andere mit den einzelnen Positionen der Bestellung.

Dazu legt man erst eine Liste Kundenbestellungen mit den Feldern Kundenname und Bestellnummer. Zum Test sind die Datentypen dabei irrelevant.(Eine Textzeile gewählt). Die zweite Liste nennt man Bestellungen. Diese beinhaltet die Felder Bestellnummer, Position und Bezeichnung. Auch hier ist der Datentyp irrelevant. Abschließend ändert man noch die Titelspalte in nicht erforderlich und achte darauf, dass in der Liste Bestellungen die Bestellnummer nicht eindeutig sein darf.

Als nächstes öffnet man im SharePoint Designer die SiteCollection, wo diese Listen erstellt wurden und erstellt unter Data Source eine neue Linked Data Source.

Verknüpfte Datenquelle

Im sich öffnenden Fenster wählte man anschließend Configure Linked Source… und fügt die Listen Kundenbestellungen und Bestellungen zu den Selected Data Sources hinzu.

verknüpfte Datenquelle

Anschließend klickt man auf Next und wählt den Punkt „Join the contents of the data sources…

 verknüpfte Datenquelle

und bestätigt das ganze mit Finish.

Anschließend kann man hinter der jeweiligen Liste mittels Edit noch Einstellungen für die Sortierung, Filterung und Anzeige vornehmen.

verknüpfte Datenquelle

verknüpfte Datenquelle

 Damit wäre die Verknüpfung der Datenquellen abgeschlossen. Nachfolgend kann man sich um das Anzeigen kümmern. Dazu nimmt man entweder eine vorhanden Seite oder erstellt sich im SharePoint Designer eine neu. Diese öffnet man anschließend im SharePoint Designer im erweiterten Modus

verknüpfte Datenquellen

 

und setzt den Courser zwischen den <form Tag. Nun kann man unter der Registrierkarte Insert eine neue Data View für seine verknüpfte Datenquelle einfügen.

vd8

 

Anschließend markiert man den gesamten eingefügten Bereich, wählt im rechten Bereich unter Data Source Details die entsprechenden Felder der übergeordneten Liste aus und fügt diese über Insert Selected Fields as Multiple Item View ein.

vd9

 

Als hilfreich dabei erweist sich, wenn schon ein Dummy Datensatz in den Listen vorhanden ist. Außerdem ist zu beachten, dass im Designer Funktionen manchmal ausgegraut sind, wenn das Dokument noch nicht gespeichert wurde.

Damit bekommt man nun beim Aufruf der Seite eine Datenansicht der ersten Liste.

vd10

Als nächstes sucht man im Quellcode der Seite im SharePoint Designer den Tag wo die Daten des zu verknüpfenden Feldes geladen werden. In dem Fall <xsl:value-of select=“@Bestellnummer“/> . Nun setzt man dahinter den Courser, wählt diesmal die Felder der zweiten Liste aus und fügt dies mit Insert Selected Fields as Joined Subview ein.

vd11

Dabei muss nun die zu verknüpfende Spalte angegeben werden.

vd12

Nach anschließendem Speichern und aufrufen im Browser bekommt man nachfolgendes Ergebnis.

vd13

Anschließend sollte die Ansicht dann mittels CSS formatiert und Links zu den einzelnen Objekten eingefügt werden. Der Einfachheit halber wurden hier nur Rahmen hinzugefügt.

Verknüpfte Daten aus zwei SharePoint-Listen

Lizenzschlüssel in c-sharp

Immer wieder kommt die Frage auf wie man Lizenzschlüssel für das eigene Programm in c# erstellt. Auf diese Frage wird im nachfolgenden Beispielhaft eingehen.

Als erstes sollte man sich über die Anforderungen Gedanken machen.

  • Entwicklung eines Algorithmus für den Lizenzschlüssel. Das hat den Vorteil, dass jeder nach diesem erstellte Schlüssel als gültig anerkannt wird. Eine Anpassung des Programms für weitere Lizenzschlüssel entfällt.
  • Lizenzschlüssel nach immer gleichen Muster erzeugen

In diesem Fall wird der Schlüssel nach folgendem Muster generiert.

  1. erzeuge eine Zahl zwischen 1000 und 9999 per Zufall das wird der erster Block

    generierung erster Block

  2. Bilde Quersumme des ersten Blocksquersumme bilden
  3. Fülle die Quersumme mit Zufallszahlen bis 4 Stellen auf das wird der zweite Block                zweiten Block bis 4 stellen auffüllen
  4. Addiere ersten Block mit seiner Quersumme und bilde daraus die Quersumme                   ersten block mit quersumme addieren und quersumme bilden
  5. Fülle diese Quersumme mit Zufallszahlen wie in Punkt 3 bis 4 Stellen auf das wird der dritte Block

Anschließen werden alle drei Blocke mit Bindestrichen verbunden, sodass sich für den Lizenzschlüssel nachfolgendes Muster ergibt.

xxxx-xxxx-xxxx

Im eigentlichen Programm kann dann geprüft werden, ob sich aus dem ersten Block mittels des Algorithmus die Anfangszahlen der beiden anderen Blöcke erzeugen lassen. Außerdem sollte mann natürlich die Länge und das Muster des Schlüssels überprüfen.

 

Achtung!!! Bitte haltet eure Algorithmen zur Generierung geheim und bedenkt das der in diesem Block verwendete nur als Denkanstoß zu werten ist und nicht für den Praxiseinsatz taugt.

 

Program Code zur Erstellung von Schlüsseln.

Auswertung Code zur Auswertung des eingegebenen Schlüssels.

Fehlende oder falsche alternative Zugriffspfade im SharePoint

Ein Problem was immer wieder zu beobachte ist, ist das Fehlen oder falsche Eintragen von alternativen Zugriffspfaden in der SharePoint Zentraladministration. Gerade bei der Umstellung von nicht SSL auf SSL verschlüsselte Anwendungen treten mitunter seltsame Phänomene auf. So kann es zu Beispiel passieren, dass obwohl die SharePoint Webseite sich noch aufrufen lässt, Links zu Bibliotheken oder Liste nicht mehr richtig arbeiten.  Dies äußert sich durch eine Fehlermeldung, dass die Liste oder Bibliothek gelöscht wurden wäre, obwohl sie nicht gelöscht wurde.  Nach erfolgreichen Eintragen der richtigen alternativen Zugriffspfade ist das Problem aber schnell behoben.

Backup-SPSite mit Powershell

Das nachfolgende Script erstellt eine SiteBackup (Backup-SPSite) einer SharePoint SiteCollection abwechselnd in zwei verschiedene Dateien. Dabei wird immer die Datei neu geschrieben welche älter ist.

Backup-SPSite

spSite-Full.ps1

Aufrufen kann man das Script dann mittels PowerShell

 

.\script.ps1 -WebApplication Link zur Webapplikation -source Pfad -file1 Datei1 -file2 Datei2

Abschließen kann der Befehl  in der Aufgabenplanung automatisiert werden.

Automatisches Löschen von Dateien nach X Wochen

In manchen Fällen ist es notwendig, dass Dateien nach Erreichen eines bestimmten Alters gelöscht werden. Dazu bietet Windows verschiedene Möglichkeiten. Eine davon wird nachfolgend vorgestellt.

Für das automatische Löschen verschiebt man erst die gewünschten Dateien mittels robocopy in der PowerShell.

robocopy Quelle Ziel /E /R:1 /W:20 /MOV /MINAGE:20
 

Dabei steht “ /E“ dafür, dass alle Unterverzeichnisse mit berücksichtigt werden.

Die Option „/R:1″ steht für die Wiederholung der Versuche beim Scheitern des Kopiervorganges.

Die Option „/W:20“ steht für die Wartezeit, welche beim Auftreten eines Fehlers eingehalten wird.

/MOV“ verschiebt die Dateien von der Quelle zum Ziel.

/MINAGE:20“ bedeutet, dass nur Dateien berücksichtigt werden, welche älter als 20 Tage sind.

Anschließend löscht man das Zielverzeichnis oder leert es.

rd /s /q Ziel

 oder

Remove-Item Ziel\* -Recurse

in der PowerShell.