Standard-Gruppen in SharePoint

Wenn man eine neue Site-Collection in SharePoint erstellt, dann gibt es typischerweise immer folgende Gruppen:

  • Besucher
  • Mitglieder
  • Besitzer

Allerdings trifft das (scheinbar) nicht für Site-Collections zu, die mit Hilfe eine Host-Headers angelegt wurden. Bei solchen Site-Collections fehlen diese Gruppen.

Nun stellt sich die Frage: wie bekomme ich dieser Gruppen am einfachsten wieder? SharePoint-Veteranen werden sich erinnern, dass es hier doch mal einen Dialog gab, wo man diese Standard-Gruppen erstellen konnte – aber wo befindet sich dieser Dialog?

Es zeigt sich nach längerer Such in den Website-Einstellungen, dass dieser Dialog nicht mehr aufzufinden ist. Was aber nicht bedeutet, dass er nicht mehr vorhanden ist, er ist nur einfach nicht mehr verlinkt.

Einfach in der Website [meine site-collection]/_layouts/permsetup.aspx aufrufen, und voila!

SharePoint Updates: Patchday März 2018

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Zusätzlich gibt es über WSUS für SharePoint 2010, 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint, JavaScript und Promises

Für alle, die noch für On-Premises SharePoint Umgebung Lösungen auf Basis von JavaScript erstellen ist die JSOM (JavaScript Object Model) Bibliothek von SharePoint ein sehr guter Weg um mit SharePoint zu kommunizieren. Auch wenn viele Dinge auch per REST Interface zugreifbar sind, so sind die Möglichkeiten über JSOM doch deutlich umfangreicher.

Da die Kommunikation bei JSOM grundsätzlich asynchron abläuft, muss man an dieser Stelle immer sehr viel mit Callbacks arbeiten. Ein typischer Code um z.B. eine neue Liste anzulegen sieht dann etwa so aus:

var ctx = new SP.ClientContext();
var web = ctx.get_web();
var listCI = new SP.ListCreationInformation();
listCI.set_title("Meine Neue Liste");
list = web.get_lists().add(listCI);
ctx.load(list);
ctx.executeQuery(successCreatedList, errorCreatedList);

function successCreatedList(sender, eventArgs) { }
function errorCreatedList(sender, eventArgs) { }

Wenn nun nach dem erstellen der List in dieser List gleich Elemente erstellt werden müssen/sollen, dann muss diese Logik in der Funktion successCreatedList implementiert werden. Das sähe dann wie folgt aus:

function successCreatedList(sender, eventArgs) {
    var listItemCI = new SP.ListItemCreationInformation();
    var listItem = list.addItem(listItemCI);
    listItem.set_item("Title", "Mein neues Listenelement");
    listItem.Update();
    ctx.load(listItem);
    ctx.executeQuery(successCreatedItem, errorCreatedItem);
}

Man sieht also schon, dass hier schon wieder zwei Funktionen als Callback angegeben werden (müssen). Natürlich kann man die Funktionen auch inline definieren – das macht es aber nicht viel übersichtlicher. Dieses Beispiel komplett sieht dann so aus:

var ctx = new SP.ClientContext();
var web = ctx.get_web();
var listCI = new SP.ListCreationInformation();
listCI.set_title("Meine Neue Liste");
list = web.get_lists().add(listCI);
ctx.load(list);
ctx.executeQuery(
    function (sender, eventArgs) {
        var listItemCI = new SP.ListItemCreationInformation();
        var listItem = list.addItem(listItemCI);
        listItem.set_item("Title", "Mein neues Listenelement");
        listItem.Update();
        ctx.load(listItem);
        ctx.executeQuery(
            function (sender, eventArgs) {
                // do something after the item is created
            }
            , function (sender, eventArgs) {
                // error handling
            });
    }
    , function (sender, eventArgs) {
        // error handling
    });

Wie wäre es, wenn nun executeQuery ein Promise zurückliefern würde, anstatt dass man Callbacks angeben muss?

var ctx = new SP.ClientContext();
var web = ctx.get_web();
var listCI = new SP.ListCreationInformation();
listCI.set_title("Meine Neue Liste");
list = web.get_lists().add(listCI);
ctx.load(list);
ctx.executeQueryDeferred()
    .then(function (eventArgs) {
        var listItemCI = new SP.ListItemCreationInformation();
        var listItem = list.addItem(listItemCI);
        listItem.set_item("Title", "Mein neues Listenelement");
        listItem.Update();
        ctx.load(listItem);
        return ctx.executeQueryDeferred();
    })
    .then(function (eventArgs) {
        // do something after the item is created
    })
    .fail(function (eventArgs) {
        // catch any errors along the way
    });

Das sieht schon deutlich übersichtlicher aus, da sich die einzelnen Promises auch hintereinander hängen lassen.

Um dem SharePoint ClientContext Promises beizubringen ist einfach nur eine kleine Erweiterung notwendig:

SP.ClientContext.prototype.executeQueryDeferred = function () {
    var deferred = Q.defer();
    this.executeQueryAsync(
        function (sender, args) { deferred.resolve(args); }
        , function (sender, args) { deferred.reject(args); });
    return deferred.promise;
}; 

In diesem Fall benutze ich die JavaScript Bibliothek Q für die Bereitstellung von Promises, hier wäre aber auch anderen Promises-Implementierungen denkbar.

Damit das ganze auch in TypeScript nutzbar ist, hier einmal die Erweiterung in TypeScript:

export interface ClientContext {
    executeQueryDeferred(): Q.Promise<SP.ClientRequestSucceededEventArgs>
}

SP.SOD.executeOrDelayUntilScriptLoaded(function () {
    SP.ClientContext.prototype.executeQueryDeferred = function (): Q.Promise<SP.ClientRequestSucceededEventArgs> {
        let deferred = Q.defer<SP.ClientRequestEventArgs>();
        this.executeQueryAsync(
            function (sender: any, args: SP.ClientRequestSucceededEventArgs) { deferred.resolve(args); },
            function (sender: any, args: SP.ClientRequestFailedEventArgs) { deferred.reject(args) }
        );
        return deferred.promise;
    }
}, "sp.js");

Zudem ist die Erweiterung noch in einen Script-OnDemand-Block eingebettet, um Sicherzustellen, dass es das Objekt ClientContext auch bereits gibt.

SharePoint Updates: Patchday Februar 2018

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle nur für die Plattformen 2013 und 2016 Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Zusätzlich gibt es über WSUS für SharePoint 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday Januar 2018

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Das Update KB4011021 für den Office Online Server von SharePoint 2016 scheint ein Problem zu verursachen, weshalb man die Installation dieses Updates ggf. aufschieben sollte.

Zusätzlich gibt es über WSUS für SharePoint 2010, 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday Dezember 2017

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle nur für SharePoint 2013 und 2016 Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Nachdem ja bereits mit dem November 2017 CU einige Health-Analyzer Regeln standardmäßig auf “deaktiviert” gestellt wurden, wird auch mit diesem Update (KB4011601 für SharePoint 2013 und KB4011578 für SharePoint 2016) wieder an den Regeln gearbeitet. Dabei werden einige Regeln aus dem Health-Analyzer entfernt, um eher weniger wichtiger Meldungen aus dem Health-Analyzer heraus zu halten.

Zudem wird mit dem Update KB4011596 der neue Dokumentinformationsbereich (ich habe darüber im Rahmen meines ESCP Recaps geschrieben) ab Word 2013 wieder eingeführt.

Bei SharePoint 2016 wird mit dem Update KB4011576 zudem die Standardmäßige Anzahl von Versionen pro Dokument von 500 auf 10 reduziert, was sich in deutlich geringerem Speicherbedarf wiederspiegelt

Zusätzlich gibt es über WSUS für SharePoint 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday Oktober 2017

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Zusätzlich gibt es über WSUS für SharePoint 2010, 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday September 2017

Neuer Monat, neue SharePoint Updates – dieses mal aufgrund von vielen Reisen leider ein wenig verspätet.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 2 beinhaltet.

Besonders interessant ist das Update KB4011127 und KB4011112 für SharePoint 2016: hierbei handelt es sich um das Feature-Pack 2.

Zusätzlich gibt es über WSUS für SharePoint 2007 (!), 2010, 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday August 2017

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zusätzlich gibt es über WSUS für SharePoint 2010, 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.

SharePoint Updates: Patchday Juli 2017

Neuer Monat, neue SharePoint Updates.

Wie immer hilft der Blog von Stefan Goßner mit allen Details. Dieses mal gibt es für alle drei Plattformen (2010, 2013 und 2016) Updates:

Zu beachten ist, dass das Update für SharePoint 2016 das Feature-Pack 1 beinhaltet.

Zusätzlich gibt es über WSUS für SharePoint 2013 und 2016 auch Sicherheits-Updates.

Bei den Sicherheitsupdates über WSUS ist zu beachten, dass nach der Installation (wie immer) auch der PSConfig-Wizard auszuführen ist.

Eine komplette Übersicht über alle verfügbaren Patches sowie den jeweiligen Build-Nummern als auch z.T. sehr ausführlichen Patch-Notizen gibt es unter https://sharepointupdates.com/Patches.