Wir machen jetzt auch ChatGPT. Oder doch nicht?

Gefühlt redet jeder und jede gerade über ChatGPT und wie wunderbar das ist. Beispielhafte Abfragen werden gepostet und prognostiziert, dass dies „alles verändern“ wird.

Prognosen sind schwierig, vor allem, wenn sie die Zukunft betreffen“ (Mark Twain).

Was auffällt bei diesen ganzen Abfragen; diese beziehen sich oft auf mehr oder weniger private oder sehr spezielle Themen. Das ist auch nicht weiter verwunderlich, ist doch ChatGPT mit öffentlichen Daten trainiert wurden. Was also nützt mir das jetzt im beruflichen Umfeld? Klar, wenn sie Artikel schreiben oder statt Wikipedia sich Zusammenhänge von ChatGPT erklären lassen, ist das eine prima Sache. Aber die meisten Beschäftigten in einem Unternehmen haben andere Probleme. Die wollen wissen, was die Kantine heute anbietet und wie diese ausgelastet ist. Die möchten Büromaterial bestellen und ihr Passwort zurücksetzen. Führungskräfte müssen neue Mitarbeitende einarbeiten und benötigen dafür verschiedene Prozesse über die sie den aktuellen Stand benötigen. Oder sie haben im Hintergrund ein machine learning Modell, welches ihnen ständig Analysen aus ihrem ERP durchrechnet. Diese Analysen können dann einfach per natürlicher Sprache in einem Chatbot abgefragt werden. Und gleichzeitig auch noch Hinweise geben, was interessant wäre. Die Möglichkeiten scheinen endlos, aber nichts davon kann ChatGPT. Und hoffentlich wird es das auch nicht, denn es sind private Daten.

Wie kann man einem Chatbot überhaupt praktikabel in eine Kommunikationsstruktur einbinden? Und wer soll das leisten? Dieser Artikel beschäftigt sich nicht mit der Integration von ChatGPT ins geschäftliche Umfeld, sondern überlegt, wie Sie erst einmal eine einfache ChatBot Lösung mit Microsoft Mitteln einfach und schnell bereitstellen können. Eine (spätere) Integration von ChatGPT fällt dann umso einfacher.

Chatbot basierende Interaktion, auf welchen Kanal auch immer, bestimmt schon heute unsere Kommunikation. Der Kanal kann ein Chat auf einer öffentlichen Website sein, der mich beim Buchen von Leistungen unterstützt. Das kann ein Telefonroboter sein oder das automatische Beantworten von Emails. All diese Kanäle können von einen einzigen Chatbot abgedeckt werden. Diese Art der Kommunikation wird massiv zunehmen, denn viele Prozesse können mit einem Chatbot preiswerter und genauer durchgeführt werden. Kein Manager wird dem widerstehen können. Zeit also, sich mit der Thematik zu beschäftigen, sofern sie dies bisher (hoffentlich nicht) nicht getan haben. Sie können dies natürlich auch versuchen auszusitzen, die Historie zeigt aber, dass dies keine Lösung ist. In Zeiten, in welchen immer schneller fundierte Entscheidungen getroffen werden müssen, sind Chatbots eine hervorragende Möglichkeit Sie dabei zu unterstützen.

Ein Chatbot kann auch nur ein Baustein in einer KI Strategie sein. Viel und vor allem einen schnellerer Gewinn kann mit anderen KI Anwendungen erreicht werden. Das geht von automatischer Bilderkennung und Verarbeitung über maschinelles Lernen bis zu augmented reality. Ein Chatbot sollte nur ein Baustein in einer KI Strategie sein, er ist mit Sicherheit aber nicht das alles heilende Wundermittel. Ich hoffe, sie haben eine solche KI Strategie.

Bei der Integration eines Chatbots stehen sie sowohl vor einer technischen als auch einer kulturellen Herausforderung. Die technische Herausforderung lässt sich relativ einfach lösen. Microsoft bietet dafür mehrere Möglichkeiten an. Einige davon sind

  • das Azure Bot Framework oder
  • der Power Virtual Agent, welcher sowohl eigenständig betrieben werden kann als auch in leicht abgewandelter Form in Teams implementiert ist. Für diesen steht auch schon das nächste Release in den Startlöchern, welche die Erstellung noch einmal vereinfachen wird.

Das Azure Bot Framework ist ein leistungsfähiges Werkzeug zum Erstellen von Chatbots in Microsoft Azure. Hier haben Sie alle Freiheiten, aber gleichzeitig auch den größten Aufwand. Der Power Virtual Agent hingegen bietet nicht die technischen Möglichkeiten wie im Azure Bot Framework, lässt sich aber ungleich einfacher einführen und adaptieren. Und wer es braucht und möchte, eine erste Vorschau bei der Implementierung von ChatGPT in Azure LogicApps gibt es schon.

Abbildung 1 ChatGPT in Azure LogicApps

Die technische Implementierung ist dabei allerdings noch das Einfachste. Diese können Sie auch outsourcen, die kulturelle Herausforderung zumindest nicht komplett. Unter der kulturellen Herausforderung verstehe ich das Bereitstellen der inneren Logik des Chatbots. Welche Themen soll dieser wie behandeln, auf welche Trigger soll er reagieren und welche Antworten soll er liefern? Die Beantwortung dieser Fragen sind entscheidend für die Akzeptanz eines Chatbots.

Wie jeder Einführung einer Kommunikationslösung haben sie auch hier nur einen Versuch. Schlägt dieser fehl, ist es sehr schwierig die Mitarbeitenden für einen zweiten Versuch zu motivieren. Eine Herausforderung ist es auch, den Prozess einer Fachabteilung zu verstehen. Auch dies ist nicht immer die Stärke der IT-Abteilung. Eine gute Chatbot Lösung lässt sich nur zusammen mit den Akteuren entwickeln. Ein Chatbot krank wie jede Software oder besser, wie jede Interaktion, an mangelnder Logik. Die Erfahrung, dass eine solche Lösung mehr Frust als Lust macht, haben wahrscheinlich schon alle.

Wie schon oben erwähnt, lässt sich die Microsoft Lösung einfach in Teams implementieren. Dies ist immer eine gute Idee, findet doch hier eh schon Kommunikation statt. Die Mitarbeitenden können hier einfach oftmals auch mit minimalen Mitteln effektiv unterstützt werden. Wenn Sie einen Chatbot zum ersten Mal in ihrer Organisation einführen, versuchen sie ein vergleichsweise einfaches und zugleich wichtiges Thema zu finden, wie eben zum Beispiel die Beschaffung von Büromaterial. Die Microsoft Chatbot Lösungen können Power Automate benutzen und damit einfach und schnell Workflows anstoßen. Klein starten, groß denken.

Nehmen sie Beratung in Anspruch bei der Planung und Implementierung

Dies betrifft vor allem erst ein einmal die Plattform. Einige mögliche Wege sind oben skizziert. Alle haben ihr Vor- und Nachteile. Sollten Sie zum Beispiel eine schnelle Lösung benötigen und wenig oder keine Entwicklerkapazitäten zur Verfügung haben, ist der Power Virtual Agent das Mittel der Wahl. Sollten Sie auf der anderen Seite eine komplexe Lösung entwickeln und gleichzeitig Entwicklerkapazitäten haben, dann entwickeln Sie den Chatbot mit Azure Bot Framework.

Überprüfen Sie Ihre Implementierung regelmäßig

Einen Chatbot im Unternehmen ist keine fire and forget Anwendung. Ganz im Gegenteil, es ist eine sich ständig entwickelnde, quasi evolutionäre Anwendung. Dieser Punkt ist sehr wichtig, denn aus meiner Erfahrung sehe ich immer wieder, dass solche Themen/Anwendungen komplett der IT überlassen werden und diese sich nach der Implementierung nicht mehr darum kümmert. Dies nicht einmal, weil sie es nicht möchte, sondern weil sie es mangels Kapazitäten nicht kann. Wenn sie einen unternehmensweiten Chat einführen und diesen nicht regelmäßig revisionieren, sparen sie sich das Geld. Machen sie was anderes sinnvolles.

Zusammen mit Kollegen haben wir jahrelange Erfahrung mit dem Thema AI und natürlich auch Chatbots. Gerade für Organisationen, welche mit dem Thema anfangen, haben wir ein attraktives Angebot geschnürt. In drei Tagen machen wir sie fit in Sachen Chatbot und entwickeln mit Ihnen zusammen einen ersten Prototypen. Sie können diesen sofort mit ihrer Zielgruppe im Alltagsgeschäft testen oder wenn er komplexer ist, selber weiterentwickeln. Für diese drei Tage nutzen wir den Power Virtual Agent. Sollten Sie danach ihr Wissen vertiefen wollen, bieten wir weitere Beratungen, unter anderem mit den Azure Bot Framework an. Sprechen sie mich an!

AI in Azure und in der PowerPlatform

Dieser Artikel liefert eine Übersicht über die AI Komponenten von Microsoft in Azure und in der PowerPlatform.

Das Thema AI ist ein Thema, welche viele Entscheider umtreibt und vor dem gleichzeitig viele IT-Entscheider und Mitarbeiter noch etwas ratlos stehen. Abgesehen von der technischen Problematik ist das Thema an sich schwer zu greifen. In der „klassischen“ IT wird von einer Anforderung zu einem erwartenden Ergebnis gearbeitet. Ein Server soll installiert, ein Postfach verschoben werden. Das Ergebnis ist binär, entweder geht es oder eben nicht. Das trifft auf AI nur bedingt zu.

Sicher liefert eine AI Ergebnisse, aber ob damit ein Auftraggeber zufrieden ist, ist die andere Frage. Bei einer Bilderkennung ist dies noch relativ einfach, bei einer Vorhersage über Buchungsvolumina wird es schon komplizierter. Und oft genug werden an eine AI auch Forderungen gestellt und Wünsche formuliert, welche schlicht unerfüllbar sind. In einem System mit vielen sich gegenseitig bedingenden Eingangsgrößen lassen sich oft keine 100% genaue Prognosen erstellen. Dies wird aber zum Teil erwartet, obwohl dies in der Regel nicht der Sinn einer AI ist. Dieser ist eher, eine so nah wie möglich Prognose abzugeben. Und oftmals reicht diese auch schon völlig aus.

In dieser Gemengelage agiert eine AI und diejenigen, welche sie erstellen oder parametrisieren. Doch bevor es damit losgeht, noch ein Hinweis auf die Daten, welcher eine AI zu Grunde liegen. Wie in jeder datengetriebenen Anwendung ist hier die Qualität der Daten entscheidend. Daten, welche unvollständig oder welche geglättet sind, werfen viele Probleme auf. Die Entscheidung einer AI ist immer nur so gut wie die dahinterstehenden Daten. Das unterscheidet die AI nicht vom Menschen. Wenn ich nie gesegelt bin, kann ich kein Schiff segeln. Und genau wie Menschen aus Mustern lernen, so lernt auch eine AI aus Mustern oder eben der ihr zur Verfügung gestellten Daten.

Dies schafft auch Raum zum oft ungewollten Missbrauch. Als negatives Beispiel könnte ein Kreditbewertung gelten, welche weniger Daten weiblicher Kreditnehmerinnen enthält als männlicher. Die AI könnte dies so interpretieren, dass es immer besser ist männliche Kreditnehmer zu bevorzugen und damit weibliche benachteiligen, indem diese automatisch eine schlechtere Bewertung erhalten. Hier könnte man zu einem Daten von weiteren weiblichen Kreditnehmerinnen einspeisen oder das Kriterium Geschlecht in die Bewertung nicht mit einbeziehen.

Algorithmen, Modelle und einiges mehr

AI kann für verschiedene Zwecke eingesetzt werden, zum Beispiel für maschinelles Lernen, was Vorhersagemodelle basierend auf Daten und Statistiken sind. Für Anomalieerkennung, die ungewöhnlichen Muster oder Ereignisse erkennt und gegebenenfalls vorbeugende Maßnahmen ermöglicht. Maschinelles Sehen, die Bilder und Videos analysiert. Sprachverarbeitung, um Sprache zu erkennen und interpretieren sowie übersetzen zu können. Konversationen betreiben, wie es zum Beispiel Bots machen. Natürlich kann man das alles miteinander kombinieren. Zum Beispiel ein Chat, in welchen Benutzer mit einem Bot interagieren und Bilder schicken können, welche automatisch analysiert werden.

Microsoft Azure bietet für die oben genannten Anwendungszwecke die Module Azure Machine Learning, Cognitive Services und Azure Bot Service an. Genutzt werden diese Services primär in Azure ML und in der PowerPlatform.

Arbeiten mit Azure ML

Für den Einstieg in Azure ML ist es notwendig, einige Abläufe und Begriffe zu verstehen. Der prinzipielle Ablauf ist dabei, das als erstes ein Dataset erstellt wird. Dieses Dataset kann aus unterschiedlichen Quellen stammen und ist nicht spezifisch. Im Dataset werden die Daten aggregiert, welche später der AI zur Verfügung gestellt werden.

Als nächstes muss ein Modelltyp ausgewählt werden, also was soll eigentlich erreicht werden. Eine Vorhersage ist keine Klassifizierung. Übliche Modelle im maschinellen Lernen sind Regression für die Vorhersage eines numerischen Wertes, die Klassifizierung mit denen neue Daten aufgrund vorhandener Daten bezeichnet werden können und dem Clustering, welches bei der Mustererkennung verwendet wird. Jeder dieser Modelle verwendet unterschiedliche Algorithmen. Dabei gibt es in jedem Modell nicht nur einen Algorithmus, sondern viele.

Das Durchrechnen vieler verschiedener Algorithmen wird als Experiment bezeichnet. Dafür benötigten Sie eine Compute Umgebung, was nichts weiter als virtuelle, vorkonfigurierte Maschinen sind. Wenn Sie ein Azure ML Experiment erstellen, erstellt Ihnen Azure die Umgebung im Hintergrund.

In einem Experiment wird Azure ML eine Teilmenge der vorhandenen Daten abtrennen und versuchen einen Algorithmus zu finden, der dem vorhandenen Daten am besten entspricht. Es ist nicht notwendig, selbst zu wissen, was der beste Algorithmus ist. Azure ML wird alle ausgewählten Algorithmen durchrechnen und eine Aussage darüber treffen, welcher Algorithmus am besten mit den gegebenen Daten übereinstimmt. Bei der Modellauswahl kann auch festgelegt werden, dass nur bestimmte Algorithmen genutzt werden. Dies verkürzt die Rechenzeit und damit die Kosten erheblich, setzt aber das Wissen um die Algorithmen voraus.

Ist der für die Fragestellung effektivste Algorithmus gefunden, kann ein Modell damit trainiert werden. Es ist möglich, ein Modell mit Modellerklärungen zu untersuchten. Auch hier geht es wieder darum, wie nah ein Algorithmus an der Wirklichkeit ist. Azure ML bietet dazu eine grafische Oberfläche. Diese zeigt die Abweichung vom Ergebnis des Modells und den Daten, welche vorher abgetrennt wurden.

Azure ML Pipelines bilden einen Workflow ab. Damit kann festgelegt werden, woher neue Daten kommen und wie diese in der Anwendung zu verwenden sind. Ein Modell kann damit ständig neu trainiert werden. Erstellt werden können diese im Pipeline Designer oder aber per Code. Azure ML Pipelines können noch weitere Aufgaben erfüllen, dies würde aber den Rahmen dieses Artikels sprengen.

Ist das Modell fertig, kann es per Endpunkt über http(s) veröffentlicht werden. Damit kann eine Anwendung eine kleine Menge an Daten schicken und das Modell beziehungsweise der darunter liegende Algorithmus liefert das Ergebnis an die aufrufende Anwendung zurück.

AI in der PowerPlatform

Azure ML ist extrem flexibel und damit auch vergleichsweise aufwendig. Aber es ist die ideale Lösung, wenn Sie kein vorbereitetes Modell haben und ganz von vorn beginnen. In einer Lösung für Endanwender geht das nicht. Da braucht es schon fertige Modelle, die der Benutzer nur noch mit seinen eignen Daten füttern muss. Und genau das liefert AI Builder in der PowerPlatform. Es gibt darin verschiedene, schon vorkonfigurierte Modelle für Bilderkennung, Dokumentenerkennung und einiges mehr. Es ist auch möglich, mit Einschränkungen Modelle aus Azure ML zu verwenden.

Ein Benutzer muss diese Modelle nur noch trainieren. Will er zum Beispiel verschiedene Verpackungen erkennen, muss er ein Modell zur Bilderkennung auswählen und in dieses verschiedene Bilder von Verpackungen hochladen. Nach dem Hochladen muss er jedes Bild klassifizieren, welche Verpackung dies nun ist. Ist das Training abgeschlossen, kann das Model z.B. in einer PowerApp verwendet werden. Ein Benutzer lädt ein Bild hoch und es wird automatisch erkannt, um welche Verpackung es sich handelt. Dies funktioniert natürlich nur, wenn das ein Bild auch eine Verpackung zeigt. Der AI Builder kann auch in PowerAutomate verwendet werden, wenn zum Beispiel ein Bild hochgeladen wird und ein Flow danach das Bild kategorisiert.

Azure Cognitive Services

Ähnlich dem AI Builder können die Azure Cognitive Services verwendet werden. Während aber im AI Builder eine grafische Oberfläche zur Verfügung steht und keine wirkliche Programmierung unterstützt wird, ist dies bei den Azure Cognitive Services umgedreht. Auch hier gibt es vorbereitete Modelle, zum Beispiel für Bild- oder Sprachanalyse. Diese Modelle sind explizit dafür gedacht in einer Entwicklung verwendet zu werden und stellen dafür spezifische APIs zur Verfügung.

Genutzt werden können diese APIs in jeder Entwicklungsumgebung oder auch in der PowerPlatform. Besonders interessant ist, dass die meisten APIs ein freies Kontigent von Abfragen zur Verfügung stellen. Gerade wenn man damit erst einmal testen möchte, ist dies sehr nützlich. Auf der Website https://aidemos.microsoft.com kann man dies aber auch ohne Anmeldung im Browser.

Fazit

Ob man AI einsetzt, ist keine Frage mehr. Die Frage ist eher, an welcher Stelle welches Werkzeug eingesetzt wird. Microsoft Azure und die PowerPlatform bieten eine große Vielfalt von AI Werkzeugen. Dabei können komplett eigene Modelle bin hin schon zu fertigen Lösungen genutzt werden. Für viele typische Anwendungsfälle wie Bild-, Text und Sprachanalyse stehen diese schon einsatzbereit zur Verfügung.

Sensitivity labels (Vertraulichkeitsbezeichnungen) für Gruppen und Microsoft Teams anwenden

Sensitivity labels, im Deutschen etwas holprig mit Vertraulichkeitsbezeichnungen übersetzt, sind in Microsoft 365 eine gute Möglichkeit, um Zugriffe auf eine Microsoft 365 Gruppe schnell und einfach zu schützen. Sie können dazu sensitivity labels, welche üblicherweise auf Dokumente oder E-Mails vergeben werden, nutzen. Es ist möglich, mit dem gleichen Label Dokumente oder E-Mails zu schützen und den Zugang zu einer Gruppe. Das Label muss im Compliance Center von Microsoft 365 angelegt und mittels einer Policy veröffentlicht werden. Ein erster Start ist mit Hilfe https://docs.microsoft.com/de-de/microsoft-365/compliance/get-started-with-sensitivity-labels?view=o365-worldwide möglich.

Das Labeln von Dokumenten oder E-Mails ist ein übliches Verfahren und auch schon länger bekannt. Er steht auch in den meisten Microsoft 365 Plänen mit zur Verfügung. Weniger bekannt ist, dass sensitivity labels auch für Microsoft 365 Gruppen verwendet werden können. Dies bedeutet, dass eine Microsoft 365 Gruppe beim Erstellen oder auch zu einem beliebigen Zeitpunkt danach mit einem Label versehen wird. Mit diesem Label können Sie folgendes erreichen. Alle Einstellungen können miteinander kombiniert werden.

  • Für eine gelabelte Gruppe können Sie den Datenschutz (öffentlich oder privat) vorgeben. Wenn Sie zum Beispiel ein Label Vertraulich konfigurieren und ein Benutzer wählt dieses aus, so kann er nur eine private Gruppe erstellen und keine öffentliche Gruppe. Natürlich müssen Sie dies während der Konfiguration mit angeben.
  • Sie könne den Zugriff externer Benutzer reglementieren. Wenn zum Beispiel in Microsoft Teams der Gastzugriff aktiviert ist, ist in allen Teams bzw. in den dahinterliegenden Microsoft 365 Gruppen der Gastzugriff aktiviert. Wenn Sie keine Gäste in dem Team haben wollen, so geht das ohne sensitivity labels nicht. Wenn Sie aber ein entsprechendes Label anwenden, sind trotz aktivierten Gastzugriff keine Gäste erlaubt.
  • Sie können mit einen entsprechend konfigurierten Label die externe Freigabe von SharePoint-Websites kontrollieren.
  • Sie können festlegen, ob der Zugriff von nicht verwalteten Geräten auf Gruppen zulässig ist.
  • Über den Authentifizierungskontext, welcher in einer Richtlinie für den bedingten Zugriff konfiguriert wird, können Sie Zugriff verweigern oder erlauben.

Voraussetzungen

Es sind mehrere Voraussetzungen nötig, damit die Labels auf eine Microsoft 365 Gruppe angewendet werden können:

  • Sie benötigen die Azure Active Directory Premium 1 Lizenz. Diese ist in mehreren Plänen (Microsoft 365 Business Premium, Microsoft E3 und höher, EMS E3 und höher) enthalten, kann aber auch einzeln pro Benutzer erworben werden. Da ist CSP Partner bin, kann ich Ihnen diesbezüglich interessante Angebote machen. Wenn Sie Interesse daran haben, kontaktieren Sie mich hier.
  • Sie müssen erst ein PowerShell Script ausführen, damit Sie überhaupt Labels für Microsoft 365 Gruppen vergeben können. Führen Sie dies nicht aus, ist die Option beim Erstellen des Labels ausgegraut und Sie können Sie nicht konfigurieren. Das untenstehende PowerShell sollte von einem globalen Administrator ausgeführt werden. Warten Sie eine Weile, bis die Änderung im Compliance Center zur Verfügung steht.
# Nur, wenn noch nicht installiert
# Install-Module -Name AzureADPreview  -AllowClobber
# Remove-Module AzureAD
# Nur, wenn nicht in Session enthalten
# Import-Module -Name AzureADPreview  

Connect-AzureAD

$setting=(Get-AzureADDirectorySetting | where -Property DisplayName -Value "Group.Unified" -EQ)
  if ($setting -eq $null)
  {
    $template = Get-AzureADDirectorySettingTemplate -Id 62375ab9-6b52-47ed-826b-58e47e0e304b
    $setting = $template.CreateDirectorySetting()
    $setting["EnableMIPLabels"] = "True"
    New-AzureADDirectorySetting -DirectorySetting $setting
  }
  else
  {
    $setting["EnableMIPLabels"] = "True"
    Set-AzureADDirectorySetting -Id $setting.Id -DirectorySetting $setting
  }

Label erstellen

Um ein Label zu erstellen, gehen Sie in das Compliance Center unter https://compliance.microsoft.com/informationprotection?viewid=sensitivitylabels. Alternativ klicken Sie im Compliance Center am rechten Rand auf Informationprotection. Erstellen Sie ein neues sensitivity label mit einem Klick auf Create a label. Vergeben Sie einen aussagekräftigen Name, Anzeigenname und Beschreibung. Aktivieren Sie die Option Groups & sites. Gegebenenfalls deaktivieren Sie die Option Files & email. Die darauffolgenden Dialoge sind selbsterklärend. Veröffentlichen Sie nach dem Erstellten des Labels dieses über eine label policy.

Anwenden und entfernen

Typischerweise wird ein Label für eine Gruppe beim Erstellen eines Teams verwendet. Dort erscheint es auch direkt im Dialog zum Erstellen eines neuen Teams.

Beachten Sie dabei, dass wenn Sie ein Label anwenden, dieses auch auf die zu der Microsoft 365 Gruppe gehörigen Website angewendet wird, allerdings nicht auf die Dokumente in der Website.

Um ein Label von einer Microsoft 365 Gruppe zu entfernen oder zu ändern, gibt es mehrere Wege.

  • In Teams wählen Sie aus dem Kontextmenü des Teams den Eintrag Team bearbeiten. Dort können Sie dann die Änderung vornehmen.
  • Gehen Sie in die Gruppenverwaltung von Azure Active Directory, rufen die Gruppe auf und bearbeiten Sie die Eigenschaften der Gruppe. Dort kann das Label entfernt/geändert werden.

Beachten Sie, dass in beiden Fällen das Label der darunter gelegenen zugehörigen SharePoint online Website nicht geändert wird. Dieses müssen Sie gegebenenfalls im SharePoint online Admincenter ändern. Lassen Sie sich dazu die Eigenschaft der Site anzeigen und gehen in den Tab Policies. Dort können Sie das Label ändern.

Fazit

Gerade für Teams, welche erhöhte Sicherheitsanforderungen stellen, bieten sensitivity labels einen unkomplizierten und effektiven Schutz. Sie sind einfach zu erstellen, anzuwenden und zu verwalten. Für den Benutzer ist die Anwendung der Labels demgegenüber transparent.

Sitevorlagen gestalten in SharePoint online

In so ziemlich jedem SharePoint Projekt stellt sich früher oder später die Frage, wie angepasste Site Templates erstellt und verwaltet werden können. Im klassischen SharePoint können diese erstellt und mit Visual Studio einer Farm hinzugefügt werden. Dabei gibt es zwar ein paar Restriktionen, aber im Allgemeinen funktioniert das gut.
Eine Alternative zu doch der sehr aufwendigen Verwaltung mit Visual Studio ist Office PnP. Dies sind PowerShell Scripts, welche einer vorhandenen Site Funktionalitäten hinzufügen. Dies geht natürlich auch bei SharePoint Online, aber dort gibt es noch eine bessere Lösung: Die Arbeit mit Sitedesigns. Ein Sitedesign ist dabei nicht nur eine optische Anpassung, sondern ein Design umfasst auch Listen, Berechtigungen, Navigationslinks, Flows und vieles mehr. Dieser Artikel erläutert, wie man ein Sitedesign in SharePoint Online erstellt und verwaltet.

Begriffe und Vorbereitung

Um mit Websitedesign zu arbeiten, muss das aktuelle SharePoint Online PowerShell Modul installiert sein. Wenn nicht vorhanden, eine administrative PowerShell Session öffnen und darin den folgenden Befehl ausführen:

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

Dies kann auf einem lokalen Rechner passieren oder in einer serverlosen Umgebung wie z.B. Azure Functions. Dort wird das Modul natürlich anders installiert. Ist das Modul schon vorhanden, aber vielleicht ein älterer Stand, hilft ein

Update-Module -Name Microsoft.Online.SharePoint.PowerShell

Alle Befehle in diesem Artikel gehen davon aus, dass das Modul installiert und der Benutzer sich an SharePoint Online angemeldet hat mit

Connect-SPOService -Url https://<Mandantenname>-admin.sharepoint.com -Credential <SharePoint online Login>

Ein Websitescript ist eine JSON Datei, welche Verben enthält. Diese Verben sind Aktionen, die auf einer Website ausgeführt werden sollen. Aktionen können Unteraktionen haben. So kann eine Liste erstellt (Aktion) und dieser Liste neue Felder hinzugefügt werden (Unteraktion). Es könnten auch erst Inhaltstypen- und Spalten erzeugt und diese der Liste hinzugefügt werden. Eine komplette Referenz der JSON Verben finden sich unter https://docs.microsoft.com/de-de/sharepoint/dev/declarative-customization/site-design-json-schema

Ein Websitescript wird einem Mandanten hinzugefügt und über eine ID eindeutig identifiziert.  Über den Befehl Get-SPOSiteScript kann man diese finden. Wird der Befehl ohne weitere Parameter aufgerufen, zeigt er alle Websiteskripte im Mandanten an. Vor dem ersten eigenen Websitescript liefert er allerdings nichts zurück.

Ein Sitedesign umfasst ein oder mehrere Scripts und führt diese aus, wenn das Design angewendet wird. Es muss also bei dem Erstellen eines Design mindestens ein Script hinzugefügt werden. Das Script muss im Mandanten schon vorhanden sein und wird über seine ID identifiziert. Der folgende Code erstellt ein Script im Mandanten und erstellt anschließend ein Design.

$siteScript = Get-Content '<Pfad zum Script>' -Raw
$scriptID = Add-SPOSiteScript  `
-Title "Website Script example"  `
-Content $siteScript  `
-Description
Add-SPOSiteDesign `
  -Title "Site design example" `
  -WebTemplate "64" `
  -SiteScripts ($scriptID).Id  `
  -Description "Just example design"

Der Befehl Add-SPOSiteDesign hat dabei einige interessante Parameter. So können dem Design zum Beispiel noch ein Bild mitgegeben werden, welches bei der Auswahl des Designs angezeigt wird. Am wichtigsten ist aber der Parameter -WebTemplate. Diese legt fest, an welchen Vorlagentyp das Design gebunden wird. Dabei können nur moderne Websitevorlagen verwendet werden und es gelten die folgenden Werte für den Parameter:

  • 64 = Teamweb
  • 68 = Communication Web
  • 1 = Groupless Team Site

Wird jetzt eine neue Site erstellt, kann das Design ausgewählt werden.

Soll das Design auf alle neu erstellt Websites standardmäßig angewendet werden, soll hilft der Parameter -IsDefault.

Ein Design auf eine vorhandene Site anwenden

Natürlich kann ein Design auch auf eine schon vorhandene Site angewendet werden. Dazu muss das Design allerdings vorher veröffentlich wurden und die ID des Designs bekannt sein. Ist dies nicht der Fall, kann man sich mit Get-SPOSiteDesign alle veröffentlichen Designs anzeigen lassen.

Um ein vorhandenes Design anzuwenden, benutzen Sie bei weniger als 30 Aktionen und Unteraktionen in den Scripts den Befehlt Invoke-SPOSiteDesign. Wenn Sie in den Scripts mehr als 30 Aktionen und Unteraktionen ausführen, müssen Sie stattdessen Add-SPOSiteDesignTask verwenden. Dieser Befehl hat ein Limit von 300 Aktionen oder 100.000 Zeichen. Die Argumente sind analog. Ein typischer Aufruf könnte so aussehen:

Invoke-SPOSiteDesign  -weburl 'https://ntscript.sharepoint.com/sites/training' -Identity 68c78fbb-b60b-5678-1234-840329934676

Ein Design aus einer vorhandenen Site verwenden

Natürlich kann man alles von Anfang an in ein Script schreiben um ein gewünschtes Design zu erreichen. Einfacher ist aber möglicherweise sich zuerst eine Vorlage zusammen zu klicken und dann diese Vorlage zu exportieren. Das geht einfach mit dem Befehl Get-SPOSiteScriptFromWeb wenn man ein ganzes Web als Vorlage verwenden möchte oder Get-SPOSiteScriptFromList wenn es eine Liste sein soll. Beide Befehle geben JSON zurück, welches dann noch als Datei abgelegt werden muss. Der folgende Code erledigt dies.  Für die Parameter, sofern sich diese nicht von selbst erklären, hilft ein Blick in die Doku.

$extracted = Get-SPOSiteScriptFromWeb `
    -WebUrl https://msdx090099.sharepoint.com/sites/ceoconnection `
    -IncludeBranding `
    -IncludeTheme `
    -IncludeRegionalSettings `
    -IncludeSiteExternalSharingCapability `
    -IncludeLinksToExportedItems `
    -IncludedLists ("Shared Documents")

Out-File -FilePath 'C:\Demo\SPOScripts\siteexample.json' -InputObject $extracted -Encoding bigendianunicode

Das Erstellen eines SiteDesigns bietet sich auch dann an, wenn man mit JSON und vor allem dem Schema der Scripts noch nicht so vertraut ist. Man kann damit schnell lernen und auf einer Testsite seine eigenen Entwürfe anwenden, bevor man diese auf die Vorlagen anwendet.

Pflege der Scripts und Designs

Soll ein Script im Web geändert werden, was relativ häufig vorkommt, hilft der Befehl Set-SPOSiteScript. Hier muss dann wieder der neue Inhalt und natürlich die ID des Scripts angegeben werden. Soll ein Design geändert werden, weil diesem zum Beispiel ein neues Script hinzugefügt werden soll, so geht dies mit Set-SPOSiteDesign. Über die Befehle Remove-SPOSiteScript bzw. Remove-SPOSiteDesign kann ein Script/Design entfernt werden.

Fazit

SiteDesigns sind eine einfache und schnelle Möglichkeit Vorlagen in SharePoint online bereitzustellten. Dabei kann man flexibel auf Änderungen reagieren und schnell einen Mehrwert generieren.

Training Office 365 Administrator

Nehmen Sie zur Buchung mit mir Kontakt auf.

Dauer und Ablauf:

2 Tage, remote oder vor Ort

Preis und Unterlagen:

950 Euro pro Person, Durchführung ab zwei Personen
Sie erhalten die gesamte Präsentation mit über hundert Folien als PDF!

Zielgruppe:

Netzwerk-Administratoren

Voraussetzung:

Allgemeine Kenntnisse in der Administration von Windows-Umgebungen.

Ablauf:

Dieser Kurs ist eine Mischung aus Theorie und Praxis. Jeder Teilnehmer erhält einen virtuellen Computer in Microsoft Azure, welcher als DC fungiert. Von dort aus wird ein lokales Active Directory nach Azure Active Directory synchronisiert und damit gearbeitet. Sie erhalten eine fundierte Übersicht, um Office 365 erfolgreich einzuführen.

Ziel:

Sie erhalten einen Überblick über die Bestandteile von Office 365. Sie können außerdem Azure Active Directory, Exchange Online, SharePoint Online und Office Professional Plus verwalten. Ebenfalls können Sie die Synchronisierung des Azure Active Directory administrieren. Mit den Security & Compliance Center schützen Sie die Informationen.

Inhalte:

  • Die Office 365-Dienste
  • Lizenzierung im Überblick
  • Basiskonfiguration und Domänenverwaltung
  • Clients: Voraussetzungen und Vorbereitung
  • Möglichkeiten der Benutzeranmeldungen
  • Active-Directory-Synchronisierung
  • Übersicht Exchange Online-Migration
  • SharePoint Online-Administration
  • Office 365 installieren und verwalten, inkl. Device Lizenzierung
  • Arbeiten mit den Security & Compliance Center

Nehmen Sie zur Buchung mit mir Kontakt auf.

Neuer Artikel im IT-Administrator 08/2020: „DLP und Vertraulichkeitsbezeichnungen in Office 365“

In der aktuellen Ausgabe vom IT Administrator gibt es von mir einen Artikel über das Arbeiten mit DLP und Vertraulichkeitsbezeichnungen in Office 365.

Besprechungen im Teams Client mit Räumen buchen

Teams Besprechungen erfreuen sich aus gutem Grund großer Beliebtheit. Eine solche aufzusetzen ist im Outlook Desktop Client kein Problem. Das geht auch wunderbar im Teams Client und im Outlook im Web. Möchte man allerdings einer Besprechung Räume hinzufügen, funktioniert dies nur im Outlook Desktop Client. Der Screenshots unten zeigt den erfolglosen Versuch im Team Client einer Besprechung einen Raum hinzuzufügen. Dabei existiert mindestens ein Raum.

Um Räume im Teams Client und Outlook im Web verfügbar zu machen, müssen Sie eine Raumliste erstellen, was nur eine spezielle Verteilergruppe ist. Leider gibt es dafür keine Möglichkeit in der Oberfläche, dies geht nur mit Power Shell. Kopieren Sie das unten stehende Script und passen Sie es entsprechend an. Ausgeführt werden sollte es vom Exchange online oder auch dem globalen Administrator.

Ich habe das Script bewusst einfach gehalten, in einer produktiven Umgebung würde ich zum Beispiel noch eine Abfrage einfügen ob eine Gruppe mit dem gewählten Name schon existiert. Möchten Sie der Raumliste mehrere Räume hinzufügen, könnte man zum Beispiel eine CSV Datei importieren und über eine Schleife die entsprechenden Räume hinzufügen.
Die Abbildung unten zeigt das Erstellen einer Besprechung im Teams Client dem erfolgreich Räume hinzugefügt wurden. Wenn die Räume nicht sofort erscheinen, den Teams Client einmal komplett neu starten.

Set-ExecutionPolicy RemoteSigned

# Verbindung zu Exchange online aufbauen
$UserCredential = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection
Import-PSSession $Session -DisableNameChecking

# Name der Raumliste und Gruppe erzeugen
$Groupname ="Conference Rooms"
New-DistributionGroup -Name $Groupname -RoomList

# Raum hinzufügen, <Room E-Mail> entsprechend ersetzen
Add-DistributionGroupMember -Identity $Groupname -Member <Room E-Mail>

# Session entfernen
Remove-PSSession $Session

Noch Fragen zu Microsoft Teams? Dann schreiben Sie einen Kommentar!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.

Neuer Artikel im IT-Administrator 04/2020: „Arbeiten mit Aufbewahrungsbezeichnungen in Office 365“

In der aktuellen Ausgabe vom IT Administrator gibt es von mir einen Artikel über das Arbeiten mit Aufbewahrungsbezeichnungen in Office 365.

IT-Admin-02-2020

Arbeiten mit Vorlagen in Microsoft Teams

In der aktuellen Corona Situation ist für viele Firmen Home Office und damit Microsoft Teams das Mittel der Wahl. Dementsprechend gibt es viele KollegInnen, welche entsprechende Anleitungen schreiben wie man Teams am besten einführt, wie man es anpasst und die Nutzer animiert es optimal zu nutzen. Dies ist nicht der nächste Artikel unter vielen zu dem Thema, denn dieser Artikel beschäftigt sich mit dem Thema Vorlagen in Microsoft Teams. Er erläutert, wie Sie einfach ein neues Team aus einem schon bestehenden erzeugen können und wo die Grenzen dessen liegen.
Microsoft Teams wird in vielen Geschäftsprozessen innerhalb einer Organisation eingesetzt. Oft sind dies Projekte und gerade dort kann man gut mit einer generischen Vorlage arbeiten. Eine Vorlage mit allen Kanälen und Tabs wird einmal erstellt und dann bei jedem neuem Projekt wieder verwendet. Dabei ist zu beachten, dass die neuen Teams natürlich eine Kopie sind und Änderungen am Template nicht auf die schon damit erstellten Teams weitergereicht werden. Änderungen an der Vorlage sind immer erst an danach erstellten Teams sichtbar. Die folgenden Ausführungen gelten für alle Teams, welche KEINE privaten Kanäle enthalten. Wie Sie mit privaten Kanälen umgehen, lesen Sie weiter unten.
Wenn Sie ein neues Team aus einem schon vorhandenen Team erstellen möchten, so erstellen Sie ggf. die Vorlage und gehen dann auf Team beitreten oder erstellen.  Dort wählen Sie dann Team erstellen und Erstellen aus… Im nächsten Dialog klicken Sie auf Team. Sie sehen alle Teams, in welchen Sie Mitglied sind. Wählen Sie das entsprechende Team und klicken Sie auf dieses. Im folgenden Fenster geben Sie dem neuen Team ein Name, wählen den Datenschutz und scrollen in dem Fenster ganz nach unten. Erst dann können Sie alle Einstellungen sehen, was Sie übernehmen wollen.
2020-03-29_13h37_16
Das neue Team wird sofort erstellt und steht den Mitgliedern zur Verfügung. Die folgende Abbildung zeigt zum einen die Vorlage und zum anderen das daraus neu erstellte Team.
2020-03-29_13h39_251

Vorlagen und private Kanäle

Wenn man die Vorlage und das neue Team vergleicht, fällt auf, dass der private Kanal Finanzen fehlt. Dies ist keine Einstellung in einer Konfiguration, sondern private Kanäle können in Vorlagen auf diesem Weg nicht verwendet werden. Es gibt allerdings andere Möglichkeiten private Kanäle in einer Vorlage zu verwenden. Bevor wir aber dazu kommen, noch ein paar Worte zu privaten Kanälen.
Auf private Kanäle darf nur ein bestimmter Personenkreis zugreifen, welcher sich zudem im Team bzw. der Office 365 Gruppe, die dem Team zugeordnet ist, befinden muss. Es ist nicht möglich, auf einen privaten Kanal eine bestehende Office 365 Gruppe direkt zu berechtigen. Muss man mit Code Teams Vorlagen erstellen, so muss man die einzelnen Benutzer aus der Office 365 Gruppe holen (aufzählen) und jeden Benutzer einzeln zuordnen. Das ist nicht weiter kompliziert, denn Microsoft Office Graph bietet dafür Methoden. Komplexer wird es, wenn nach dem Erstellen des Teams neue Benutzer hinzugefügt oder entfernt werden. Dazu könnte man an die Gruppe einen Power Automate Workflow hängen, der auf Änderung der Gruppenmitgliedschaft reagiert. Dieser Workflow entfernt oder fügt Mitglieder in die entsprechenden privaten Kanäle hinzu.
Um eine Teamvorlage zu erstellen, welche auch private Kanäle unterstützt, bieten sich verschiedene Wege an. Das eine wäre PowerShell. Man könnte die gesamte Vorlage per PowerShell coden und dieses PowerShell z.B. in Azure Automation oder Azure Function  ablegen. Über eine SharePoint Liste würden die Metadaten des neuen Teams erfasst. Das Speichern des Listeneintrages triggert dann das PowerShell. Eine Übersicht über alle Kommandos PowerShell für Teams finden Sie hier. Beachten Sie bei dieser Technik die Frage der Authentifizierung und des Kontext.
Intern machen die Kommandos der PowerShell Gebrauch von Microsoft Office Graph. Darüber können Sie nicht nur Teams verwalten, sondern so ziemlich alles machen was in Office 365 geht. Mit dem Microsoft Office Graph können Sie auch direkt arbeiten, Sie brauchen dafür kein PowerShell.
Microsoft stellt auch eigene Vorlagen für Teams zur Verfügung, welche Teams für verschiedene Branchen abbilden. Diese Vorlagen nutzen ebenfalls direkt Microsoft Office Graph. Eine Dokumentation dazu gibt hier. Die Definition eines Teams erfolgt in JSON. Eine Anleitung, wie solch eine Vorlage erstellt und ausgeführt wird, finden Sie hier. Natürlich wäre es auch möglich, wie in dem Beispiel oben, zu einem schon bestehenden Team weitere private Kanäle hinzuzufügen. Das ist das schöne an Microsoft Office Graph, er ist einfach und gleichzeitig extrem flexibel.
Das Erstellen einer Vorlage kann allerdings für jemand ohne einen Entwicklerhintergrund schwierig werden. Es ist aber nicht unmöglich, zumal man die Vorlage direkt im Browser auch testen kann. Aber vielleicht ist da der Dienstleister oder das Tool eines Drittanbieters die bessere Wahl…

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.