Archiv der Kategorie: Powershell

Bei Office 365 das Ablaufen der Benutzer-Passwörter deaktivieren (Set up office 365 user passwords to never expire)

Als Standardeinstellung werden bei Office 365 Accounts die Passwörter nach 90 Tagen ungültig bzw. laufen aus und müssen neu gesetzt werden. Wenn man diese Zeit als zu kurz ansieht oder den Zwang, die Passwörter neu zu setzen ganz abschalten will, muss man die Windows PowerShell zu Hilfe nehmen.

Um sich mit der Powershell mit seinem Cloud ActiveDirectory zu verbinden, braucht man zwei Voraussetzungen:

  1. „MS Online Sign In Assistant“ Download
  2. Install the Powershell Azure AD Module Download

Sind beide Voraussetzungen installiert, gibt man folgende Befehle in der Powershell Eingabeaufforderung ein:

Import-Module MSOnline

#Hier gibt man seine Administrator-Zugangsdaten ein, mit dem man Office 365 administriert
$msolcred = get-credential

#Verbindungsaufbau zum Active Directory seines Office 365 Accounts
connect-msolservice -credential $msolcred

#Zu bearbeitendes Userobjekt ermitteln
$user=Get-MsolUser -UserPrincipalName „user@domain.tld

# Setzen der PasswordNeverExpires Eigenschaft aus True
$user | Set-MsolUser -PasswordNeverExpires $true

Um die Einstellungen zu kontrollieren, kann man sich alle Eigenschaften des Benutzerobjekts anzeigen lassen:

Get-MsolUser -UserPrincipalName User@Domain.tld | fl

Weitere Infos

Zusätzliche E-Mail-Adressen zu Office 365 Exchange Online-Kontakten hinzufügen

In der Office 365 Web-Administration kann man für Exchange Online-Kontaktobjekte nur eine E-Mail-Adresse konfigurieren. Möchte man zusätzliche E-Mail-Adressen angeben, muss man dies über die Powershell erledigen.

Weitere E-Mail-Adressen für Kontaktobjekte können nützlich sein, um beliebige Weiterleitungen von E-Mail-Adressen an externe Adressen zu konfigurieren. E-Mails an alle weiteren E-Mail-Adressen von Kontaktobjekten werden an die primäre E-Mail-Adresse des Kontaktobjekts weitergeleitet.

Vorgehensweise:

Set-ExecutionPolicy RemoteSigned

#Hier Benutzername und Passwort des administrativen Office 365 Accounts eingeben
$UserCredential = Get-Credential 

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

#Optionales Hinzufügen eines neuen Kontaktobjekts

$myContact=New-MailContact -Name „Max Mustermann“ -DisplayName „Max Mustermann“ -ExternalEmailAddress „max@mustermann.de“

#Alternativermitteln eines bestehenden Kontaktobjektes

$myContact =Get-MailContact -Identity “ Max Mustermann „

#Hinzufügen der zusätzlichen E-Mail-Adressen zu dem Kontaktobjekt

$myContact |Set-MailContact -EmailAddresses „SMTP:mail@test.de“

#Kontrolle, welche zusätzlichen E-Mail-Adressen einem Kontakt zugewiesen wurden

Get-MailContact -Identity „Max Mustermann“|select -ExpandProperty EmailAddresses

#Trennen der Remote-Powershellverbindung

Remove-PSSession $Session

Weitere Informationen: Adding multiple Email addresses to mail contacts in Office 365

Darstellen der Ordnerstruktur einer SharePoint-Dokumentenbibliothek mithilfe einer Treeview

Die Aufgabenstellung war, ein Formularcenter mithilfe von SharePoint zu erstellen. Es sollten über 400 Formulare hierarchisch gegliedert zum Download angeboten werden. Nach längerem Testen der standardmäßigen Gruppierungfunktionalitäten für Sharepoint-Listen, was nicht das gewünschte Ergebnis brachte, stieß ich auf folgenden englischen Blogeintrag: Adding a Treeview to a Document Library using SPTreeView and SPHierarchicalDataSource

Hier wurde gezeigt, wie man mittels SharePoint-Designer eine Ansicht erstellen kann, die die Ordnerstruktur einer SharePoint-Dokumentenbibliothek mittels eines TreeView-Steuerelementes abbildet – und dies ganz ohne Hilfe eines Webparts.

Folgende Schritte sind für eine TreeView-Ansicht einer SharePoint-Dokumentenbibliothek notwendig:
1. Aktivieren der Dateiansicht im SharePoint-Designer, um „Alle Dateien“ anzuzeigen. Dies muss unter den Website-Einstellungen der entsprechenden Websitesammlung gemacht werden. Hier ist unter der Rubrik „Websitesammlungsverwaltung“ der Link „SharePoint Designer-Einstellungen“ auszuwählen. Danach muss die Checkbox „Verwaltung der URL-Struktur der Website aktivieren“ aktiv gesetzt werden.

SharePoint_Designer_Einstellungen

SharePoint_Designer_Alle_Dateien_anzeigen

2.  Danach ist die entsprechende View, die mit dem TreeView-Steuerelement versehen werden soll, im SharePoint-Designer im erweiterten Modus zu bearbeiten.

SharePoint_Designer_Datei_im_erweiterten_Modus_bearbeiten

3. Danach wird der komplette Inhalt des ContentPlaceHolder-Tags mit der ID „PlaceHolderMain“ ausgeschnitten und über die Zwischenablage in einem externen Editor temporär abgelegt.

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

<-- Gesamten Taginhalt ausschneiden und zwischenspeichern -->

</asp:Content>

4. Erstellen einer HTML-Tabelle in dem leeren ContentPlaceHolder-Tag, um das Treeview-Steuerelement und die ursprüngliche Liste der Dokumentenbibliothek zu platzieren.

<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server">

<-- Tabelle als Layouthilfe für die Treeviev und die Liste der Dokumentenbibliothek -->
<table style="width: 100%">
 <tr valign="top">
     <td width="20%">
     <-- Spalte für die Treeview -->
     </td>
     <td>
     <-- Spalte für die Listendarstellung der Dokumentenbibliothek -->
     </td>

    </tr>
</table>
</asp:Content>

5. Ermitteln der notwendigen Informationen für das Treeview-Steuerelement mithilfe der Powershell und dem SharePoint-Designer. Benötigt werden die ListID der Dokumentenbibliothek und die ID der Webseite, in der sich die Dokumentenbibliothek befindet.

Die ListID der Dokumentenbibliothek wird mit dem SharePoint-Designer ermittelt:

ListID_von_SharePoint_Liste_mit_SharePoint_Designer_ermitteln

Die ID der Website kann mit der PowerShell ermittelt werden:

PS C:\scripts> $site=get-spsite http://xxxxxxxxx/formularcenter
PS C:\scripts> $site.id
Guid
----
e2044234-0449-4362-af2b-7ba48b9ad678

6. Vorbereiten und Anpassen des Codes für das Treeview-Steuerelement:

<SharePoint:SPHierarchyDataSourceControl id="doclibDataSource" runat="server" RootListId="XXXXXXXXXXXXXXX" RootWebId="YYYYYYYYYYYYY" ShowFolderChildren="true" EnableViewState="false"></SharePoint:SPHierarchyDataSourceControl>
<SharePoint:SPTreeView ID="doclibtreeview" runat="server" DataSourceID="doclibDataSource" EnableViewState="false" ExpandDepth="2"  SelectedNodeStyle-CssClass="ms-tvselected"></SharePoint:SPTreeView>

<-- XXXXXXXXXXXXXX = ID der Dokumentenbibliothek, ermittelt mit dem SharePoint Designer -->
<-- YYYYYYYYYYYYYY = ID der Website, ermittelt mit der Powershell -->

7. Einfügen des Treeview-Codes in die oben erstellte Tabelle.

8. Einfügen des zwischengespeicherten Codes für die eigentliche Listendarstellung der Dokumentenbibliothek, ebenfalls in die oben erstellte Tabelle.

9. Das Ganze sollte nun wie folgt aussehen:

SharePoint_Dokumentenbibliothek_mit_Treeview