PI Services

Le blog des collaborateurs de PI Services

Teams : Customiser ses effets d'arrière plan

Si vous avez déjà utilisé Teams en réunion, vous avez pu remarquer des évolutions au fil du temps (floutage de l'arrière plan, effets d'arrière plan...)

Aujourd'hui je vous donne un petit tips pour modifier votre image d'arrière plan et vous démarquer de vos collègues.

  1. Sélectionnez une image qui vous plait ou un fond d'écran.
  2. Copiez la.
  3. Collez la dans le répertoire "C:\Users\votrenom\AppData\Roaming\Microsoft\Teams\Backgrounds\Uploads"
  4. Dans Teams durant votre conversation vidéo sélectionnez les 3 petits points "..." (autres actions)
  5. Puis sélectionnez "Afficher les effets d'arrière plan"

  1. Dans "Paramètres d'arrière plan" descendez tout en bas et vous verrez vos images. 

 

Et voila, have fun.

O365 : Exporter le contenue d'une boite mail dans un pst

Il peut être nécessaire de réaliser la sauvegarde d'une boite mail avant une action ou pour diverses raisons, voici comment réaliser l'opération depuis le portail O365.

 

1 - Connectez vous au portail admin O365 (https://protection.office.com)

2 - Sélectionnez "Permissions"

3 - Puis cochez "eDiscovery Manager"

4 - Et enfin attribuer les droits au compte avec lequel vous souhaitez faire l'export sur les deux rôles suivants:

 

et

 

5 - Déroulez le menu "Search" et sélectionnez "Content Search"

6 - Dans le nouvel onglet sélectionnez "New Search"

7 - Sélectionnez "Specify location" puis cliquez sur "Modify..."

8 - Sélectionnez "Choose users, groups, or teams"

9 - cliquez sur "Choose users, groups, or teams"

 

10 - Entrez au moins les trois premiers caractères de la boite au lettre, puis sélectionnez le compte en cochant la case sur sa gauche et faites "Choose"

11 - Cliquez sur "Done"

12 - Puis sur "Save"

13 - Et enfin "Save & Run"

14 - Donnez un nom à votre recherche puis faites "Save"

15 - Attendez la fin de l'opération

Voila, vous avez réalisez un fichier PST de la boite mail, pour l'exporter il faudra vous rendre sur "Search"

 

16 - Sélectionnez la recherche créée précédemment.

 

17 - Sélectionnez "Export Results"

18 - Choisissez les options qui vous conviennent et cliquez sur "Export"

 

Voilà, votre sauvegarde est maintenant en ligne et prête à être téléchargée.

Si toutes fois vous envisagiez de télécharger le PST, il faudra utiliser Internet Explorer ou Edge (à l'heure ou j'écris ces lignes) et vous rendre dans "Export

Puis sélectionnez votre export et faites "Download Results"

 

Copiez la clé d'export

Collez la clé d'export et indiquez le répertoire de téléchargement, puis faites "Démarrer"

Office 365 : Voir qui a réservé la salle de réunion

Aujourd'hui lorsque l'on utilise Exchange Online et les boites aux lettre de salle, la configuration par défaut du calendrier de ces boites ne permet de voir que le statut de celle-ci soit "Libre ou Occupée" en revanche il n'est pas possible de voir qui a réservé la salle.

C'est parce que par défaut les droits sur le calendrier sont en "AvailabilityOnly", comme le montre la capture ci dessous.

 

 

A l'aide de Powershell, il est possible de modifier les droits sur le calendrier pour afficher qui est la personne ayant fait la réservation, pour ce faire voici les cmdlets.

#Construction de la session Exchange Online
$cred = Get-Credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection

# Import de la session
Import-PSSession $Session

# Audit des droits
Get-MailboxFolderPermission -Identity Nom_de_la_Salle_de_réunion:\calendar

# Modification des droits
Set-MailboxFolderPermission -Identity Nom_de_la_Salle_de_réunion:\calendar -User default -AccessRights LimitedDetails

 

Maintenant il est possible de voir le statut de la salle de réunion ainsi que les personnes l'ayant réservé.

O365 : Modification de l'UPN

Dans certain cas de figure (mariage, divorce...) les utilisateurs de l'AD change de nom, ceux qui a pour impact un renommage du compte Active Directory, jusque la pas de problème mais (parce qu'il en faut un) lorsque vous utilisez "AD Connect" pour synchroniser vos utilisateurs locaux (votre Active Directory) avec Office 365 (Azure Active Directory), certains paramètres ne sont pas synchronisés.

Parmi ces paramètres le UserPrincipalName, plus communément appelé UPN ne peut être modifié depuis l'AD et répliqué vers O365.

Pour modifier l'UPN côté O365 vous devrez utiliser la commande Powershell suivante:

Set-MsolUserPrincipalName -UserPrincipalName AncienUPN@mondomaine.com -NewUserPrincipalName NouvelUPN@mondomaine.com

 

 

Restreindre la création des groupes dans tous les services Office 365.

En effet dans 365, les utilisateurs peuvent créer facilement des groupes Office 365.

il est important de contrôler les personnes autorisées à créer des groupes.

Pour cela, nous allons voir comment créer un groupe de sécurité pour des utilisateurs qui ont besoin de créer des Groupes dans Office 365

 

Pres requis :

Installer la version préliminaire d’Azure Active Directory PowerShell pour Graph

Etape 1 : Installer la version la plus récente d’Azure Active Directory PowerShell pour Graph

Depuis la console powershell Vérifiez le module installé :

Get-InstalledModule -Name "AzureAD*"

Désinstaller la version précédente de AzureADPreview ou AzureAD, en exécutant la commande suivante :

Uninstall-Module AzureADPreview ou Uninstall-Module AzureAD

Maintenant il faut installer la dernière version de d’Azure Active Directory PowerShell pour Graph :

Install-Module AzureADPreview

 

Etape 2 : Exécuter le script PowerShell

Premièrement il faut créer le groupe de sécurité dont les personnes membre, seront autorisées à créer des groupes dans 365

Exemple : GG_APP_ALLOW_CREATEGROUP_0365

$GroupName = "GG_APP_ALLOW_CREATEGROUP_O365"

$AllowGroupCreation = "False"

$username = "LOGIN"

$password = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password

Connect-AzureAD -Credential $cred

$settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id

if(!$settingsObjectID)

{

      $template = Get-AzureADDirectorySettingTemplate | Where-object {$_.displayname -eq "group.unified"}

    $settingsCopy = $template.CreateDirectorySetting()

    New-AzureADDirectorySetting -DirectorySetting $settingsCopy

    $settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id

}

$settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID

$settingsCopy["EnableGroupCreation"] = $AllowGroupCreation

if($GroupName)

{

    $settingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString $GroupName).objectid

}

Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $settingsCopy

 

(Get-AzureADDirectorySetting -Id $settingsObjectID).Values

 

Étape 3 : vérifier qu’elle fonctionne

Connectez-vous à Office 365 avec le compte d'utilisateur d'une personne qui ne doit PAS être autorisée à créer des groupes. C’est à dire les personnes qui ne sont pas membre du groupe « GG_APP_ALLOW_CREATEGROUP_0365 », groupe contenant des personnes autorisées à créer des groupes.

  1. Sélectionnez la vignette planificatrice.
  2. Dans le planificateur, sélectionnez nouveau plandans le volet de navigation de gauche pour créer un plan.
  3. Vous devriez recevoir un message indiquant que la création de plan et de groupe est désactivée.

Sharepoint Online : Script de Restauration d'éléments dans la corbeille.

Restaurer des milliers d'éléments supprimés par une personne sur un site Sharepoint peut être une opération fastidieuse, voici donc un script Powershell pour le faire à votre place et vous bénéficierez aussi d'un rapport d'état ("Success", "Failure") pour chacun des éléments.

1 - Prérequis Powershell

Dans un premier temps nous allons avoir besoin d’installer le module Powershell nécessaire à la gestion de Sharepoint, pour ce faire utilisez la commande suivante :

# Installation du Module Powershell
Install-Module SharePointPnPPowerShellOnline

Une fois le module Powershell installé nous allons pouvoir nous connecter au site et atteindre sa corbeille de là nous pourrons faire le filtrage et l’export des éléments.

2 - Script Powershell

# Script to Restore RecycleBin elements
# By : Mathieu ADELAÏDE
# Date : 06/09/2019
# Version : V0

#######################
# Step 0 : Management #
#######################
#region - Step 0
# Folder Definition
# Get Current Path
$currentPath = (Get-Location).Path


$RootFolder = "C:\Temp\Sharepoint"
$LogFolder = "$RootFolder\Log"

#Folder Creation
$AllFolder = $RootFolder, $LogFolder
$AllFolder | foreach {
    $FolderName = $_
    If (!(Test-Path $FolderName)) {
        New-Item $FolderName -ItemType Directory
        }
    }

# Files Definition
$ResultState = "$LogFolder\RestaurationReport.csv"
Add-Content $ResultState -Value "Title;ItemType;Size;ItemState;DirName;DeletedByName;DeletedDate;ID;State"
$logFilePath = "$logFolder\SP_Restauration.log"

#Define Array
$Array = @()

#Config Variables
$SiteURL = "https://MySite.sharepoint.com/sites/Recrutement"
#endregion - Step 0

#######################
# Step 1 : Connection #
#######################
#region - Step 1
#Connect to Sharepoint Online
Try {
    Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
    }
Catch {
    $tmpError = $_.Exception.message
	Write-Output "The following error occurred: $tmpError" | Add-Content $logFilePath
	Write-Output "The error occurred while we trying to Connect to Sharepoint Online" | Add-Content $logFilePath
    }
#endregion - Step 1

#######################################
# Step 2 : Collection and Restoration #
#######################################
#region - Step 2
# List all Items
$RecycleBin = Get-PnPRecycleBinItem

# Filter result
$FilteredRecycleBin = $RecycleBin.Where({$_.DeletedByName -eq "DUPONT Jean"})
$FilteredRecycleBin | foreach {
    $Title = $_.Title
    $ItemType = $_.ItemType
    $Size = $_.Size
    $ItemState = $_.ItemState
    $DirName = $_.DirName
    $DeletedByName = $_.DeletedByName
    $DeletedDate = $_.DeletedDate
    $ID = $_.id
    $Guid = $ID.Guid
    
    # Restore
    Try {
        Restore-PnPRecycleBinItem -Identity $Guid -Force -ErrorAction Stop
        Write-Output "Successfully Restored File $Title" | Add-Content $logFilePath
        $State = "Succes"
        }
    Catch {
        $tmpError = $_.Exception.message
	    Write-Output "The following error occurred: $tmpError" | Add-Content $logFilePath
	    Write-Output "The error occurred while we trying to Restore $Title" | Add-Content $logFilePath
        $State = "Failed"
        }
    $Array += New-Object psobject -Property @{
        Title = $Title
        ItemType = $ItemType
        Size = $Size
        ItemState = $ItemState
        DirName = $DirName
        DeletedByName = $DeletedByName
        DeletedDate = $DeletedDate
        State = $State
        Id = $id
        }

    # Release variable
    $Title = $null
    $ItemType = $null
    $Size = $null
    $ItemState = $null
    $DirName = $null
    $DeletedByName = $null
    $DeletedDate = $null
    $ID = $null
    $State = $null
    $Guid = $null
    }
#endregion - Step 2

###################
# Step 3 : Export #
###################
#region - Step 3
Try {
    $Array | Export-Csv $ResultState -Encoding UTF8 -NoTypeInformation -Delimiter ";"
    Write-Output "Successfully Export Data" | Add-Content $logFilePath
    }
Catch {
    $tmpError = $_.Exception.message
	Write-Output "The following error occurred: $tmpError" | Add-Content $logFilePath
	Write-Output "The error occurred while we trying to Export Data" | Add-Content $logFilePath
    }
#endregion - Step 3

 

Sharepoint Online : Comment faire un export des éléments dans la corbeille d’un site.

Récemment j’ai été confronté à un sujet délicat, une synchronisation entre Sharepoint Online et un poste client s’est terminée par la suppression de la majorité des dossiers et fichiers du site en question.

Pour pouvoir connaitre l’étendue des dégâts il a fallu faire un audit de ce qui avait été supprimés par erreur.

On pourrait le faire graphiquement via le portail, mais lorsque le nombre d’éléments s’élève à plusieurs milliers ce n’est pas pratique.

Voici une petite astuce pour faire un export au format CSV des éléments dans la corbeille et en option comment les filtrer sur un utilisateur en particulier.

 

1 - Prérequis Powershell

Dans un premier temps nous allons avoir besoin d’installer le module Powershell nécessaire à la gestion de Sharepoint, pour ce faire utilisez la commande suivante :

# Installation du Module Powershell
Install-Module SharePointPnPPowerShellOnline

Une fois le module Powershell installé nous allons pouvoir nous connecter au site et atteindre sa corbeille de là nous pourrons faire le filtrage et l’export des éléments.

2 - Script Powershell

2.1 Version avec tous les éléments de la corbeille.

#Config Variables
$SiteURL = "https://Monsite.sharepoint.com/sites/Recrutement"
$Items = "C:\temp\RecycleBinItems.csv"
Add-Content $Items -Value "Title;ItemType;Size;ItemState;DirName;DeletedByName;DeletedDate"
$Array = @()
 

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

# List and export all Items in Recycle bin
$RecycleBin = Get-PnPRecycleBinItem
$RecycleBin | foreach {
    $Title = $_.Title
    $ItemType = $_.ItemType
    $Size = $_.Size
    $ItemState = $_.ItemState
    $DirName = $_.DirName
    $DeletedByName = $_.DeletedByName
    $DeletedDate = $_.DeletedDate

    $Array += New-Object psobject -Property @{
        Title = $Title
        ItemType = $ItemType
        Size = $Size
        ItemState = $ItemState
        DirName = $DirName
        DeletedByName = $DeletedByName
        DeletedDate = $DeletedDate
        }
    }

$Array | Export-Csv $Items -Encoding UTF8 -NoTypeInformation 

2.2 Version avec option de filtrage.

Dans cette version nous faisons la même requête, en ajoutant un filtrage sur un utilisateur bien précis.

#Config Variables
$SiteURL = "https://Monsite.sharepoint.com/sites/Recrutement"
$Items = "C:\temp\RecycleBinItems.csv"
Add-Content $Items -Value "Title;ItemType;Size;ItemState;DirName;DeletedByName;DeletedDate"
$Array = @()
 

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

# List and export all Items in Recycle bin
$RecycleBin = Get-PnPRecycleBinItem
$FilteredRecycleBin = $RecycleBin.Where({$_.DeletedByName -eq "DUPONT Jean"})
$FilteredRecycleBin | foreach {
    $Title = $_.Title
    $ItemType = $_.ItemType
    $Size = $_.Size
    $ItemState = $_.ItemState
    $DirName = $_.DirName
    $DeletedByName = $_.DeletedByName
    $DeletedDate = $_.DeletedDate

    $Array += New-Object psobject -Property @{
        Title = $Title
        ItemType = $ItemType
        Size = $Size
        ItemState = $ItemState
        DirName = $DirName
        DeletedByName = $DeletedByName
        DeletedDate = $DeletedDate
        }
    }

$Array | Export-Csv $Items -Encoding UTF8 -NoTypeInformation 

 

Sharepoint Online : Problème d'accès

Il m'est arrivé il y a peu de temps un cas un peu spécifique, quelqu'un qui bénéficiait de droit "Full Control" sur Sharepoint online se voyait gratfié d'un "Access Denied" à chaque tentative de connexion sur l'url de son site et ceux même en cliquant sur le lien envoyé par Sharepoint lorsqu'on lui attribuait les droits.

La Cause:

En fait cette personne avait bénéficié de droits divers et variés (en accès direct, via l'appartenance à des groupes, via les demandes, Full Control, Edit, Read Only, Limited Access...) car personne parmis les gestionnaires Shrepoint ne parvenait à lui donner les droits.

Par conséquent nous sommes tombé dans un conflit de droits d'accès qui n'a pu être résolu de manière graphique, mais via Powershell.

 

La Solution: 

Afin de solder le problème il a fallu passer par Powershell et supprimer les dépendances de ce compte via la suppression du compte de la "UserInfo List".

Pour ce faire nous avons utilisé les commandes ci-dessous (Attention le module Sharepoint Online pour Powershell est nécessaire):

# Connexion à Sharepoint Online
Connect-SPOService -Url https://monnorganisation.sharepoint.com -Credential "adm-maade@monorganisation.com"

# Vérification des groupes d'appartenance pour mon Utilisateur
$AllUsers = Get-SPOUser -Site https://monnorganisation.sharepoint.com/sites/Toto
$FilterMonUser = $AllUsers.where({$_.loginname -eq "tartanpion@globule.net"})

# Afficher les groupes de mon Utilisateur
$FilterMonUser.groups

# Suppression de mon utilisateur de la UserInfo List
Remove-SPOUser -Site "https://monnorganisation.sharepoint.com/sites/Toto" -LoginName "tartanpion@globule.net"

 

Une fois la commande terminée, j'ai pu réaffecter les bons droits au travers du bon groupe dans l'interface du site Sharepoint.

Info supplémentaires:

https://docs.microsoft.com/en-us/sharepoint/remove-users

 

Office 365 - Nouvelle interface d'administration pour Skype for Business et Teams

Depuis quelques temps Microsoft propose une nouvelle interface d'administration pour Skype for Business et Teams.

Pour y accéder vous pouvez utiliser le lien suivant : https://adminportal.services.skypeforbusiness.com/analytics/home

2017-11-24_151049

Pour le moment toutes les fonctionnalités annoncées ne sont pas encore actives. Cependant on peut déjà analyser les appels passés via Skype Online !

2017-11-24_151427

Sur un appel / une conférence de mauvaise qualité il est possible de voir quel utilisateur a eu des problèmes.

2017-11-24_151650

Tout comme dans Skype for Business OnPremise les rapports nous permettent d’avoir des informations précises sur l’incident (micro de mauvaise qualité, jitter trop élevé, nombre de paquet perdu…).

2017-11-24_151810

2017-11-24_151856

Vivement la suite des fonctionnalités !

Office 365 - Script de récupération des fonctionnalités O365 pour l'ensemble des utilisateurs

Contexte

Dans un environnement Office 365 il peut être nécessaire de savoir quelles fonctionnalités (Exchange, Skype, Yammer...) sont actives sur les utilisateurs.

Script

J'ai écrit le script suivant afin de récupérer automatiquement ces informations :

Get-UsersO365Features.ps1 (6,44 kb)

Pré-requis : 

  • Avoir un compte administrateur dans Office 365
  • Avoir un dossier C:\temp\ sur sa machine

Limites :

  • Actuellement le script ne prend en compte que les licences E1, E3 et K1

Résultat :

Une fois le script exécuté, vous avez dans le dossier C:\temp\ un dossier Export contenant :

  • Trois fichiers contenant l'ensemble des utilisateurs et leur utilisation
  • Trois dossiers contenant chacun le nombre de fonctionnalités actives et inactives

Licence du script : 

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.