Technische Informationen rund um das Thema Modernes Arbeiten

Schlagwort: Office 365

Presentation Translator in Action

In diesem zweiten Beitrag zum Presentation Translator möchte ich zeigen, wie Teilnehmer an einer Präsentation selbst auswählen können, mit welcher Sprache sie einer Präsentation folgen können. Im ersten Beitrag habe ich gezeigt, wie Presentation Translator genutzt wird, wenn ich eine Präsentation halte und nur mit einer Sprache arbeiten möchte. Gleichzeitig habe ich auch die Einstellungen aufgezeigt, die im Konfigurationsmenü vorgenommen werden können.

In diesem Video nun zeige ich, wie Teilnehmer selbst wählen können, mit welcher Sprache sie an der Präsentation teilnehmen wollen. Hier kommt die Website „www.translate.it“ zum Zuge, auf der der Benutzer den Zugriffscode für die Präsentation eintragen und dann die für Ihn passende Sprache wählen kann.

 

Microsoft 365 – Overview Briefing

Microsoft 365 ist eine Lösung, die eine umfassende, die Office 365, Windows 10 und Enterprise Mobility + Security vereint. Matt Soseman hat in seinem Blog eine Übersicht zu Microsoft 365 veröffentlicht.

Einen Vergleich der beiden Lösungen Microsoft 365 E3 und Microsoft 365 E5 finden Sie hier:

Satya Nadella hatte es auf der Inspire 2017 angekündigt. Auf Youtube gibt es dazu auch die entsprechende Demo.

Öffentliche Ordner nach Office 365 Groups migrieren

Seit gefühlt 10 Jahren sind die Public Folder in Exchange totgesagt. Immer wieder gab es Ansätze, diese z. B. in Richtung SharePoint zu migrieren.

Nun ist im September ein Whitepaper erschienen: Migrate your public folders to Office 365 Groups.

Office 365 Groups erlaubt es, auf einfache Art und Weise, Teams für die interne und externe Zusammenarbeit zusammenzustellen und zu verwalten. Dabei werden die für die Zusammenarbeit notwendigen Ressourcen (wie Posteingang, gemeinsamer Kalender aber auch eine Dokumentenbibliothek) in einem einzigen Konfigurationsschritt zur Verfügung gestellt. Eingeladene Mitglieder erhalten sofort die notwendigen Berechtigungen auf die unterschiedlichen Ressourcen.

Interessant an dem Whitepaper sind sicher die Beschreibungen und Anleitung für eine Batch-Migration:

Migration instructions

Select the appropriate link below for step-by-step instructions on running a batch migration.

 

PowerApps – ein vielfach unterschätztes Tool

Bereits im November 2015 kündigte Bill Staples ein neues Mitglied in der Office 365 Familie an – PowerApps:

„PowerApps is an enterprise service for innovators everywhere to connect, create and share business apps with your team on any device in minutes. And PowerApps helps anyone in your organization unlock new business agility.”

Ich wurde im Juni 2017 mit dem Thema konfrontiert – für eine Veranstaltung sollte ein App genutzt werden, die es erlauben sollte, von einem beliebigen Endgerät Daten in SharePoint Listen einzutragen, die während der Veranstaltung dann als Referenz-Informationen herangezogen werden sollte. Die Lösung, die es uns ermöglichte, diese App in recht kurzer Zeit zu erstellen und zur Verfügung zu stellen, war Microsoft PowerApp.

Die App umfasst 3 verschiedene Bereiche, die in der App mit unterschiedlichen Lösungen umgesetzt sind:

 

  • Erfassung einer Umfrage. Hier sollen die Benutzer während eines Vortrags verschiedene Fragen beantworten. Die Fragen werden aus einer Liste aus SharePoint gezogen. Die Reihenfolge der Fragen wird über ein Feld in SharePoint festgelegt. Unterfragen können weitere Erläuterungen haben. Auch die Erläuterungen werden aus einer Liste in SharePoint gezogen und zum richtigen Zeitpunkt angezeigt. Die Herausforderung hierbei war es, die Informationen in SharePoint zu finden und den richtigen Fragen zuzuordnen bzw. anzuzeigen.

 

  • Nach dem ersten Durchlauf sollen die Teilnehmer am Ende der Veranstaltung die Möglichkeit haben, Ihre Antworten noch einmal zu sichten und Änderungen in der Bewertung vorzunehmen. Hierbei sollten die bestehenden Antworten nicht überschrieben werden, sondern für eine Gegenüberstellung weiterhin zur Verfügung stehen. Hieraus entstand eine zweite Erfassungsmaske – der sogenannte Ausblick:

 

  • Die Teilnehmer sollen am Ende der Veranstaltung die Möglichkeit haben, über die App ihr Feedback zur Veranstaltung abzugeben. Die Ergebnisse des Feedbacks sollten in eine Liste in SharePoint zurückgeschrieben werden.

 

Ich denke, an diesen kleinen Beispielen kann man schon gut sehen, welche Möglichkeiten PowerApps bietet. Der Vorteil – die Anwendung war in wenigen Stunden erstellt, lief sowohl auf iPhone, Windows Devices und im Browser. Selbst auf einem Surface Hub konnte die Anwendung sofort ausgeführt werden.

Der Startpunkt für die Erstellung der App war die relativ gute Übersicht auf der PowerApps-Website.

Über das dort verfügbare „geführte Lernen“ findet man schnell einen ersten Einstieg in die Entwicklung von PowerApps.

Am Beispiel der Startseite möchte ich einen ersten Eindruck geben, wie einfach PowerApps zu nutzen ist.

 

Aufbau der Startseite

Nach dem Start von PowerApps bietet PowerApps an, aus den reichlich vorhandenen Beispielanwendungen zu wählen, oder aber eine neue App zu erstellen.
Wählt man hier den Punkt „Neu“, bekommt man eine erste Auswahl, mit welchen Daten man Arbeiten möchte und welches Grundlayout (das man später ändern kann) man beginnen möchte:

 

Im Start-Menü kann man einen neuen Bildschirm erstellen. Wählen Sie hierzu den Unterpunkt „Neuer Bildschirm“. Dort finden Sie auch gleich mehrere Layouts, die Sie nutzen können:

Laden Sie nun als nächstes die für die Anwendung benötigten Bilder in die PowerApp.

Wählen Sie hierzu den Menüpunkt „Datei“ und dort den Unterpunkt „Medien“ aus- Klicken Sie nun auf den Bereich „Bilder“

 

und am rechten Rand die Option „Durchsuchen“.

Wählen Sie nun das einzufügende Bild aus.

Die Bilder werden in den Medienbereich geladen.

 

Nun können Sie die Bilder auf der leeren Seite positionieren. Den passenden Eintrag hierzu finden Sie im Menüpunkt „Einfügen“.

Auf der leeren Seite wird ein Platzhalter für Ihr Bild eingefügt.

Stellen Sie sicher, dass Sie den Platzhalter für das Bild markiert haben (notfalls mit der Maus doppelt auf das Bild klicken). Es öffnet sich am rechten Rand das Eigenschaftenmenü für das Bild.

Geben Sie die Bezeichnung des Bildes in der Eingabeleiste ein (unterhalb der Menüleiste).

 

Danach habe ich noch das zweite Bild auf die erste Seite gebracht und 3 Buttons am unteren Rand eingefügt. Damit war die erste Seite schon fertig.

Für die weitere Arbeit habe ich nun eine zweite Seite eingefügt (Screen4). Da diese Seite auf Daten aus SharePoint zugreifen soll, wird als Vorlage „Formularbildschirm“ ausgewählt.

Da noch keine Datenquellen verbunden sind, wird die Seite wie folgt dargestellt:

 

Klicken Sie auf „Mit Daten verbinden“. Es öffnet sich ein kleines Fenster, das Ihnen die Möglichkeit bietet, eine Datenquelle anzubinden. Ich hatte in SharePoint eine kleine Liste erstellt, die im ersten Schritt nur ein Feld hat: Umfrage (als Ja/Nein-Feld). Dieses sollte dazu genutzt werden, um bei der Konfiguration entscheiden zu können, ob der Umfrage-Button auf der ersten Seite angezeigt werden soll oder nicht.

 

Klicken Sie auf den Eintrag „Neue Verbindung“. Es öffnet sich ein neues Fenster mit der Auswahl von möglichen Datenquellen. Fast am Ende der Liste finden Sie auch den Eintrag „SharePoint“. Wählen Sie diesen aus,

Wählen sie nun im nächsten Fenster die Option „Direkte Verbindung (Clouddienste) und klicken Sie auf „Erstellen“.

Tragen Sie im nächsten Fenster den Link zu der Website ein, in der sich die Liste befindet und klicken Sie auf „Los“.

Haben Sie den richtigen Link eingetragen, sollte die Liste im nächsten Fenster angezeigt werden. Wählen Sie die Liste aus und klicken Sie auf „Verbinden“.

Klicken Sie nun auf die Liste. Die Felder aus der Liste werden automatisch in das Formular eingetragen – sie können nun im mittleren Bereich das Layout der Seite wählen und im unteren Bereich die Felder, die dargestellt werden.

Wenn Sie den Haken vor dem Feldnamen entfernen, wird das Feld auch auf dem Formular entfernt. Durch Anklicken des Feldtyps können Sie wählen, wie das Feld dargestellt werden soll:

Wählen Sie nun die Felder, die auf der Seite angezeigt werden sollen. Für unseren ersten Versuch genügt es, das Feld „Umfrage“ als einziges Feld anzeigen zu lassen. Sie können zu einem späteren Zeitpunkt auf die Seite zurückkehren und – wenn Sie weitere Felder in der Liste PAConfig ergänzt haben – Felder zu dem Formular hinzufügen.

 Der erste „Code“

Ich hatte mir lange überlegt, wie ich die Möglichkeit, die Konfiguration der App dynamisch zu ermöglichen, diesen Punkt in die App bringen könnte, ohne eine aufwändige Benutzer-Verwaltung erstellen zu müssen. Letztendlich geht es bei PowerApps ja gerade darum, schnell und einfach ans Ziel zu kommen. Ich habe mich für einen kleinen Trick entschieden: ich habe auf das Logo der All for One Steeb AG ein „OnSelect“-Ereignis gelegt. Da es auch nicht wirklich schlimm ist, wenn ein Benutzer einmal in die Einstellungen kommt, war das der schnellste und einfachste Weg.

„Code“ wird hierbei von PowerApps an bestimmte Ereignisse gehängt, die im Eigenschaftenmenü des jeweiligen Objekts abgebildet werden. Klicken Sie hierzu wieder doppelt auf das Bild. Es öffnet sich das Eigenschaftenmenü. Hier finden Sie eine Eigenschaft „OnSelect“.

Tragen Sie in das Feld „OnSelect“ folgenden Code ein „EditForm(EditForm1);;Navigate(Screen4; ScreenTransition.None)“

Eine Beschreibung der einzelnen Befehle finden Sie in kompakter Form auf dieser Website[1].

PowerApps unterstützt Sie bei der Eingabe der Befehle in 2 Punkten. Zum einen wird – sobald Sie eine Formel anfangen – oberhalb des Feldes die Struktur inklusive einer Erklärung der Formel angezeigt. Hierbei ist die Stelle, an der Sie sich innerhalb der Formel gerade befinden schwarz unterlegt. Diese Hilfe hat bei längeren und verschachtelten Formeln einen großen Vorteil, da Sie so die Übersicht behalten, wo Sie sich gerade befinden. Zum anderen wird immer eine Auswahl an entsprechenden Optionen direkt in einer DropDown-Liste angeboten. Einzelne Befehle werden innerhalb des Feldes durch 2 Semikolon getrennt („;;“).

Der erste Befehl EditForm(EditForm1) versetzt das Formular (EditForm1) auf Screen4 in den Edit-Modus.

Mit Navigate(Screenbezeichnung; Transitionart) wird auf die neue Seite (Screen4) gewechselt.

Auf Screen4 müssen Sie nun noch 2 Codezeilen einfügen. Wählen Sie hierzu das „Umschaltfeld“ an. Klicken Sie im Menü den Punkt „Aktion“ aus und wählen Sie die Option „Bei Aktivierung“ aus. Tragen Sie in das Funktions-Feld nun den Wert „Button1_3.Visible=true“. Wählen Sie anschließend den Punkt „Bei Deaktivierung“ aus und tragen Sie in das Funktionsfeld nun den Wert „Button1_3.Visitble=false“ ein. Damit wird der Button „Umfrage“ auf der ersten Seite nun abhängig von der Konfiguration auf Screen4 an oder ausgeschalten.

 

Durch Klicken auf den „Play“-Button am oberen rechten Bildschirmrand können Sie testen, ob Ihre App startet und funktioniert.

 

Das war nun nur ein erster Einstieg in PowerApps. Dieser sollte aber zeigen, wie die Interaktion innerhalb von PowerApps funktioniert, wie die unterschiedlichen „Screens“ genutzt werden und wie mit Code gearbeitet werden kann.
Ich werde in einem kommenden Blog-Eintrag zeigen, wie die App weiter ausgebaut werden kann – und wie man auch etwas kompliziertere Formeln nutzen kann, um die App zu steuern.

 

[1] Formelreferenz: https://powerapps.microsoft.com/de-de/tutorials/formula-reference/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Digitale Transformation @ Microsoft

Unter diesem Link erhält man 2 Teile – einen Report sowie ein eBook zum Thema „Digitale Transformation“. Zum einen einen Report zur „Digitalen Transformation bei Microsoft“ sowie eine Studie von Forrester mit dem Titel „Accelerating Digital Transformation with Technology“.

 

Auch wenn beide Quellen aus dem Jahr 2016 stammen, liefern sie auch noch heute gute Einblicke und Ideen.

Digital Transformation @ Microsoft

Obwohl schon ein Jahr alt, erscheint mir dieses Video doch sehr interessant zu sein:

„In our Finance organization and across Microsoft, Office 365 Enterprise E5 accelerates our own digital transformation—employees feel empowered to achieve more with business intelligence, collaboration, and productivity. We gather data-driven insights with Power BI and collaborate in the cloud with Skype for Business. To help provide security and ensure compliance, we’re using Advanced Security Management, Advanced Threat Protection, and eDiscovery technologies. Our experience moves us forward along a journey of innovation and growth.“

Zu diesem Thema passt dann auch gut die PDF-Datei mit Szenarien rund um Office 365 E5

 

Auf Office 365 Benutzer programmatisch zugreifen

Erst einmal vorweg: ich bin kein Entwickler. Insofern kann sicher vieles einfacher oder einfach anders gemacht werden… Aber: es funktioniert.

Trotzdem habe ich mich getraut, mich durchzukämpfen: Ich hatte die Anfoderung, dass ich für unsere Demo-Umgebung regelmäßig mehrere Benutzer in Office 365 ändern musste. Da dabei auch z. B. die Domäne – und damit der Anmeldename und u. U. auch das Passwort des Benutzers geändert werden musste – verfiel ich auf die Idee, ein kleines Programm in C# anzulegen, das es mir erlaubte, alle Benutzer, die eine Lizenz haben aus einem aktiven Office 365 – Tenant auszulesen und mit neuen Daten (Anmeldename, Vor-/Nachname sowie wenn gewünscht neuem Passwort) wieder zu speichern.
Ich habe viel Zeit gebraucht, um in den verschiedenen Foren Lösungen zu finden – aber letztendlich habe ich dann die nötige Information gefunden und konnte daraus mein eigenes kleines Programm schreiben.

Im ersten Schritt werden die Grundinformationen erfasst:

  • Wie heißt der Tenant
  • Wie heißt der Admin-User
  • Passwort des Admin-Users
  • Soll eine neue Domäne vergeben werden? (muss dem Tenant aber schon zugeordnet sein)
  • Soll ein neues Passwort vergeben werden?
  • Wie soll der Benutzername aufgebaut sein?

Über den Button „Load“ können dann die Benutzer aus Office 365 geladen werden.

Anschließendkönnen den Benutzern neue Vor- und Nachnamen zugeordnet werden.

Über den „Change“-Button werden die Benutzer, die neue Namen zugeordnet bekommen haben, in Office 365 zurückgeschrieben.

Viele der gefundenen und genutzten Codefragmente stammen aus dem DEV Center von Microsoft oder von MSDN. So wird z. B.

und weiteren öffentlich zugänglichen Quellen genutzt.

Für das Programm werden folgende Bibliotheken genutzt:

[code language=“csharp“]

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using Microsoft.SharePoint.Client;
using System.Collections.ObjectModel;
using System.Security;
[/code]

Nachdem in die Felder die notwendige Information eingegeben wurde und der Load-Button angeklickt wurde, werden die Daten aus dem Office 365 Tenant ausgelesen:

[code language=“csharp“]

/// <summary>
/// Erzeugen einer temporären Benutzerliste.
/// </summary>
/// <param name=“sender„></param>
/// <param name=“EventArgs„></param>
/// <return value=“void“></return>

private void BT_PeopleLoad_Click(object sender, EventArgs e)
{
try
{
Cursor.Current = Cursors.WaitCursor;
UserCredential.UserName = TB_User.Text;
UserCredential.Password = get_password();
// Befehl zum Verbinden mit Officee 365 wird erstellt.
List<Command> psCommand = new List<Command>();    
// Anlegen des Initial Session State
InitialSessionState initialSession = InitialSessionState.CreateDefault();
initialSession.ImportPSModule(new[] { „MSOnline“ });
// Anlegen des CredentialObjects
PSCredential credential = new PSCredential(UserCredential.UserName, UserCredential.Password);
// Erzeugen des Befehls zum Verbinden mit Office 365.
 psCommand.Add(new Command(„Connect-MsolService“));
 psCommand[0].Parameters.Add((new CommandParameter(„Credential“, credential)));
// Erzeugen des Befehls zum extrahieren der Office 365 Benutzer.
 psCommand.Add(new Command(„Get-MsolUser“));
// Ermitteln der Benutzerliste innerhalb des Tenants.
Collection<PSObject> results = execute_ps(psCommand);
if (results != null && results.Count > 0)
{
FillUserList(results);      // Benutzerliste wird gefüllt
}
else
{
Cursor.Current = Cursors.Default;
return;
}
Cursor.Current = Cursors.Default;
    }
 catch (Exception ex)
{
Cursor.Current = Cursors.Default;
MessageBox.Show(ex.Message);
return;
}

 }

[/code]

Das Passwort wird in der Routine get_password() generiert – Ziel ist es, einen Secure-Passwort-String zu übergeben:

[code language=“csharp“]

/// <summary>
/// Erstellen eines sicheren Passwort-Strings
/// </summary>
///
/// <return value=“SecureString“></return>

private SecureString get_password()
{
SecureString passWord = new SecureString();
foreach (char c in TB_Password.Text.ToCharArray()) passWord.AppendChar(c);
return passWord;
}

[/code]

Nun werden (neben dem Aufbau und Ausgabe der Tabelle) eigentlich nur noch eine wichtige Routine benötigt:  Sie führt die Powershell Skripte aus…

 

[code language=“csharp“]

/// <summary>
/// Execute PowerShell Skripts. Übergeben wird ein Array mit PowerShell Befehlen
/// </summary>
/// <param name=“psCommand„></param>
/// <return value=“Collection“></return>
private Collection<PSObject> execute_ps(List<Command> psCommand)
{
UserCredential.UserName = TB_User.Text;
UserCredential.Password = get_password();
 // Anlegen der Initialen Session.
InitialSessionState initialSession = InitialSessionState.CreateDefault();
 initialSession.ImportPSModule(new[] { „MSOnline“ });
using (Runspace psRunSpace = RunspaceFactory.CreateRunspace(initialSession))
{
Collection<PSObject> results = null;
// runspace öffnen.
psRunSpace.Open();
//Durchlaufen der Liste mit den Befehlen – und Ausführung der Befehle.
 
foreach (var com in psCommand) // new Command[] { connectCommand, getUserCommand, setUserPName }
{

    var pipe = psRunSpace.CreatePipeline();
pipe.Commands.Add(com);

    // Ausführen des Befehls – Analyse etwaiger Fehler.
results = pipe.Invoke();

   var error = pipe.Error.ReadToEnd();
if (error.Count > 0) //&& com == connectCommand)
{

        MessageBox.Show(error[0].ToString(), „Problem beim login“);
return results;
}

   }

  // Runspace schließen.
   psRunSpace.Close();

   return results;
}

}

[/code]

Der Rest der Anwendung besteht darin, die Tabelle zu füllen, die Änderungen dann wieder aus der Tabelle auszulesen und als Skript wieder an execute_ps zu übergeben.

Als Zielpunkte der Skripte werden folgende Powershell-Skripte genutzt:

  • Connect-MsolService
  • Set-MsolUser (um die Änderungen am Benutzer durchzuführen)
  • Set-MsolUserPrincipalName
  • Set-MsolUserPassword

Wichtig ist, dass bei der Übergabe der Skript-Befehle weitergehende Parameter als „Parameters“ übergeben werden, beispielhaft hier mit Set-MsolUserPrincipalname dargestellt.

[code language=“csharp“]

psCommand.Add(new Command(„Set-MsolUserPrincipalName“));  // Powershell – Befehl
psCommand[2].Parameters.Add((new CommandParameter(„-UserPrincipalName“, old_cUserName + „@“ + domains[1]))); // Parameter -UserPrincipalName
psCommand[2].Parameters.Add((new CommandParameter(„-NewUserPrincipalName“, new_UserPrincipalName))); // Parameter -NewUserPrincipalName

[/code]

Der entsprechende Powershell – Befehl hierzu lautet:

[code language=“powershell“]

Set-MsolUserPrincipalName
-NewUserPrincipalName <String>
[-ImmutableId <String>]
[-NewPassword <String>]
-UserPrincipalName <String>
[-TenantId <Guid>]
[<CommonParameters>]

[/code]

Ich hoffe, das Beispiel hilft, um vergleichbare Themen schneller lösen zu können. Ich danke allen, die im Web so viel interessanten Beispielcode veröffentlicht haben. Das gesamte Projekt setzt sich aus einzelnen Teilen aus den oben genannten Beispielen zusammen.

 

Berichte in Office 365

In vielen Unternehmen hält Office 365 Einzug – es werden die unterschiedlichsten Dienste für das Unternehmen frei gegeben. Letztendlich aber bleibt für das Unternehmen die Frage, wie werden die Dienste angenommen, was wird genutzt. Hier hilft im Office 365 Portal die Möglichkeit, sich Nutzungsberichte anzeigen lassen zu können:

Seit kurzer Zeit dort z. B. auch der Punkt „Microsoft Teams-Aktivitäten“ vertreten. Hier können Sie sehr leicht sehen, wie Microsoft Teams angenommen und genutzt wird.

Sie finden die Berichte im Office 365 Portal unter [Admin Center][Berichte][Verwendung].

 

© 2023 Modernesarbeiten

Theme von Anders NorénHoch ↑