SlideShare a Scribd company logo
1 of 51
Piloter Intune avec PowerShell
Pour les noob par un noob
@syst_and_deploy
#PSSATPARIS2019
Merci !
#PSSATPARIS2019
Qui suis-je ?
#PSSATPARIS2019
Damien Van Robaeys
• Ingénieur systèmes Metsys
• MVP Microsoft x3
• Blog: http://www.systanddeploy.com
• Twitter: @syst_and_deploy
• Mail: damien.vanrobaeys@gmail.com
#PSSATPARIS2019
À propos de Metsys
#PSSATPARIS2019
0
5
10
15
20
25
30
35
40
CA 2014 CA 2015 CA 2016 CA 2017 CA 2018 Obj. CA 2019
Une société en forte croissance
5 M€
8,5 M€
16,5 M€
27,7M€
35 M€
+ 67 %
Effectifs
2014
28
2016
79
2015
59
Une relation
de confiance
Création fin 2011
Laurent Cayatte
Président
Yannick Varloud
Directeur Général
11 M€
Obj. 2019
300
Socialement
responsable
2017
103
7 agences en France
1
2
3
Satisfaction
Transparence
Engagement2018
200
#PSSATPARIS2019
Qu’est-ce que Intune ?
#PSSATPARIS2019
Intune, Intune: c’est quoi au juste ?
• Service Cloud disponible dans le portail Azure
• Connexion via compte Azure AD
• Gérer appareils mobiles et PC de vos utilisateurs
• Gérer les applications PC et mobiles (installation, déploiement…)
• Permettre le BYOD à vos utilisateurs
• Vérifier que vos appareils répondent aux exigences de sécurité
• Déployer applications, fond d’écran, lockscreen, restrictions…
#PSSATPARIS2019
Les licences Intune
• Microsoft 365 E5
• Microsoft 365 E3
• Enterprise Mobility + Security E5
• Enterprise Mobility + Security E3
• Microsoft 365 Business
• Microsoft 365 F1
• Microsoft 365 Education A5
• Microsoft 365 Education A3
#PSSATPARIS2019
Intune for Education ?
Choisir entre Intune for education et Intune
Tester Intune gratuitement
• Configuration de Intune: ici
• Autopilot en action: ici
• Gérer vos appareils: ici
#PSSATPARIS2019
SCCM est mort, vive Intune ?
#PSSATPARIS2019
Non SCCM n’est pas mort
• SCCM & Intune co-existence and Co-Management is the future!
#PSSATPARIS2019
Intune et les ressources
Trouver la bonne ressource
#PSSATPARIS2019
Des ressources pour quoi faire ?
• Composants de Intune sont des ressources
• Il faut savoir sur quoi on veut agir avant d’intéragir avec Posh
• Se rendre dans la doc de Graph pour trouver son équivalent
#PSSATPARIS2019
Qu’est-ce que MS Graph ?
#PSSATPARIS2019
Microsoft Graph ?
• Accéder aux ressources de Office 365
• Principe: Les ressources sont interconnectées
• Office 365: Excel, Teams, OneDrive, OneNote, Outlook…
• EMS: ATA, ATP, Azure AD, Intune
• Windows 10: Activités, appareils, notifications
#PSSATPARIS2019
Microsoft Graph, pour faire quoi ?
• Analyse du calendrier pour trouver les meilleures heures pour la
prochaine réunion d’équipe
• Examine la prochaine réunion et fournit informations sur le profil des
participants
• Lister les machines inscrites dans Intune et lister toutes les informations.
• Effectuer des actions à distance sur des machines: redémarrer, réinitialiser,
connexion à distance, scan antivirus
• Création d’utilisateurs, groupes dans Azure AD
• Déployer des applications sur vos appareils
#PSSATPARIS2019
Utiliser Graph API
• Comment utiliser Graph API ?
• Deux versions de l’API: Beta, v1.0
• Plusieurs méthodes pour agir sur les ressources: GET, PATCH, POST, DELETE
• Méthodes POST et PATCH requiert de fournir un JSON
• Action via une requête HTTP
• Method + https://graph.microsoft.com/$Version_API/$Resource
• Trouver la bonne ressource en utilisant les docs de références
• On va cherche les appareils gérés, managed devices
• Lister les appareils: GET /deviceManagement/managedDevices
• Pour une machine: GET /deviceManagement/managedDevices/ID
#PSSATPARIS2019
Les permissions pour utiliser Graph
• En fonction de ce que l’on souhaite faire, il faut des permissions
• Lister les permissions requises pour une ressource sur le lien de référence.
• Exemple pour les appareils gérés
#PSSATPARIS2019
Reference
Piloter Intune avec Graph Explorer
#PSSATPARIS2019
Graph Explorer, c’est quoi ?
• Site web permettant d’effectuer des requêtes Graph sur O365 ou Intune
• Se connecter
• Choisissez la méthode: GET, PATCH, POST, DELETE
• Choisissez version API: v1.0 ou Beta
• Saisissez le lien de votre ressource
• https://developer.microsoft.com/en-us/graph/graph-explorer
• /deviceManagement/managedDevices
• /deviceManagement/managedDevices/ID
#PSSATPARIS2019
Les permissions depuis Graph Explorer
• Vérifier les permissions requises
• Cliquer sur modify your permissions
• Appliquer les bonnes permissions
• Recommencer 
#PSSATPARIS2019
Partie JSON: pour modifier ou créer
• Affiche le résultat de votre requête
• Réutiliser un template pour pouvoir modifier une ressource
#PSSATPARIS2019
Vérifier message d’absence
• beta/me/mailboxSettings
• Modifier permissions
• Actions via Graph: ici
#PSSATPARIS2019
Action sur un device
• /deviceManagement/managedDevices/ID de la machine
• Différentes actions
• Voir équivalent sur la doc de l’API
• Reboot d’une machine en action
#PSSATPARIS2019
Depuis Intune
Depuis Graph
Autres exemples de ressources
• Profile de déploiement Autopilot
• Trouver la bonne ressource: ici
• beta/deviceManagement/windowsAutopilotDeploymentProfiles
• Liste des utilisateurs
• Trouver la bonne ressource: ici
• beta/users
• Lister les conditions et termes
• Trouver la bonne ressource: ici
• Beta/deviceManagement/termsAndConditions
#PSSATPARIS2019
Créer un nouveau profil
• Choisir méthode POST
• beta/deviceManagement/windowsAutopilotDeploymentProfiles
• Exemple de query
#PSSATPARIS2019
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"displayName": "mon nouveau profil",
"description": "My profile description",
"enrollmentStatusScreenSettings": null,
"extractHardwareHash": false,
"deviceNameTemplate": "",
"deviceType": "windowsPc"
}
Modifier un profil existant
• Choisir méthode PATCH
• beta/deviceManagement/windowsAutopilotDeploymentProfiles/ID du profil
• Exemple de query
#PSSATPARIS2019
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"displayName": "mon nouveau profil",
"description": "Ma nouvelle description",
"enrollmentStatusScreenSettings": null,
"extractHardwareHash": false,
"deviceNameTemplate": "",
"deviceType": "windowsPc"
}
Supprimer un profil existant
• Choisir méthode DELETE
• beta/deviceManagement/windowsAutopilotDeploymentProfiles/ID du profil
#PSSATPARIS2019
Créer un nouvel utilisateur
• Choisir méthode POST
• beta/users
• Modifier les permissions si besoin
• Exemple de query – Voir exemple sur Doc Graph
#PSSATPARIS2019
{
"accountEnabled": true,
"displayName": "Thomas Shelby",
"mailNickname": "Group1",
"userPrincipalName": "ThomasShelby@damvanrobaeysgmail.onmicrosoft.com",
"passwordProfile" : {
"forceChangePasswordNextSignIn": true,
"password": "P@$$w0rd"}
}
Modifier un utilisateur existant
• Choisir méthode PATCH
• beta/users/ID de l’utilisateur
• Exemple de query
#PSSATPARIS2019
{
"accountEnabled": true,
"displayName": "Thomas Shelby",
"mailNickname": "Group1",
"jobTitle": "System engineer",
"userPrincipalName": "ThomasShelby@damvanrobaeysgmail.onmicrosoft.com"
}
Supprimer un utilisateur existant
• Choisir méthode DELETE
• beta/users/ID de l’utilisateur
#PSSATPARIS2019
Action sur une machine (ou plusieurs)
• Choisir méthode POST
• Voir les actions disponibles: ici
• beta/deviceManagement/managedDevices/ID de la machine
• Reboot: beta/deviceManagement/managedDevices/ID de la machine/rebootnow
• Wipe: beta/deviceManagement/managedDevices/ID de la machine/wipe
#PSSATPARIS2019
PowerShell et Intune
Comment s’y connecter et l’interroger ?
#PSSATPARIS2019
Méthode 1
• Deux fonctions:
 Get-AuthToken  Créer un token d’authetifcation
 Connect-AutoPilotIntune  Connexion à Intune
• Installation module Azure AD
• Load les assemblies ADAL (Active Directory Authentication Library)
• Vous permet d’obtenir un token pour accéder aux API web comme Graph
#PSSATPARIS2019
Connexion à Intune
• Deux fonctions:
 Get-AuthToken
 Connect-AutoPilotIntune
• Disponibles dans le module Autopilot de MS
• Accessibles sur le GitHub du FRPSUG
• Copier les deux fonctions
• Saisir Connect-AutoPilotIntune
• Saisir ses credentials
#PSSATPARIS2019
Interroger Intune
• Cmdlet: Invoke-RestMethod
• $authToken: Variable permettant d’obtenir le token pour se connecter
• Ajout -Uri « URL » -Headers $authToken –Method Get/Post/Patch/Delete
• Création et update: Ajout -Body puis le fichier JSON
#PSSATPARIS2019
Créer un nouveau profil
• Cmdlet: Invoke-RestMethod
#PSSATPARIS2019
$MyProfile = @"
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"displayName": "My new profile for test2",
"description": "",
"language": "en-US",
"extractHardwareHash": false,
"deviceType": "windowsPc",
}
"@
$Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles"
Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Body $MyProfile -Method Post
Modifier un profil existant
• Cmdlet: Invoke-RestMethod et ajouter l’ID du profil
#PSSATPARIS2019
$MyProfile = @"
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"description": "ssssssss",
}
"@
$Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles/0863f75e-4f7b-4dcf-830f-882924c17b41"
Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Body $MyProfile -Method Patch
Supprimer un profil existant
• Cmdlet: Invoke-RestMethod et ajouter l’ID du profil
#PSSATPARIS2019
$Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles/0863f75e-4f7b-4dcf-830f-882924c17b41"
Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Method Delete
Méthode 2: Module Graph.Intune
Chargement du module
Module PowerShell
Connexion à Intune
Pour accéder aux ressources
Interroger Intune
Lister, modifier, créer, supprimer
Microsoft.Graph.Intune
• Module Microsoft sur PSGallery
• SDK disponible sur GitHub
• Vous permet d’accéder à intune en utilisant l’API Graph
• Installation module via install-module
• Import du module via import-module
#PSSATPARIS2019
Install-Module Microsoft.Graph.Intune
Import-Module Microsoft.Graph.Intune
Contenu du module
• Le module contient à ce jour 1056 cmdlets
• Lister les cmdlets pour gérer les devices: 50
• Lister les cmdlets pour gérer les profil de déploiement: 0
#PSSATPARIS2019
Connexion à Intune
• Cmdlet: Connect-MSGraph
• Connexion basique
• Connexion avec credentials
#PSSATPARIS2019
$Intune_UDP = "dvr-adm@systanddeploy.com"
$Intune_PWD | ConvertFrom-SecureString | Out-File $Intune_PWD_File
$adminPwd = Get-Content $Intune_PWD_File | ConvertTo-SecureString
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($Intune_UDP, $adminPwd)
Connect-MSGraph -PSCredential $creds
Créer requête personnalisée
• Si pas de cmdlets pour ce que l’on cherche à faire
• Exemple: gestion des profils de déploiement
• Cmdlet: Invoke-MSGraphRequest
• Invoke-MSGraphRequest -Url "Votre_URL" -HttpMethod Get/Post/Patch/Delete
• Pour update ou création: ajouter -Content « Votre_JSON »
#PSSATPARIS2019
Lister les appareils
• Cmdlet: Get-DeviceManagement_ManagedDevices
• Pas toutes les informations
#PSSATPARIS2019
Créer un nouveau profil
• Cmdlet: Invoke-MSGraphRequest
#PSSATPARIS2019
$MyProfile = @"
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"displayName": "My new profile for test2",
"description": "",
"language": "en-US",
"extractHardwareHash": false,
"deviceType": "windowsPc",
}
"@
$Resource = " beta/deviceManagement/windowsAutopilotDeploymentProfiles "
Invoke-MSGraphRequest -Url "https://graph.microsoft.com/$Resource" -HttpMethod Post -Content $MyProfile
Action sur un device
• Cmdlet: Invoke-MSGraphRequest
#PSSATPARIS2019
$MyProfile = @"
{
"@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile",
"displayName": "My new profile for test2",
"description": "",
"deviceType": "windowsPc",
}
"@
$Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles"
Invoke-MSGraphRequest -Url "https://graph.microsoft.com/$Resource" -HttpMethod Post -Content $MyProfile
Exemple d’outil utilisant Graph
#PSSATPARIS2019
Intune Device Manager
• Liste les appareils enrollés
• Permet d’effectuer des actions sur ces appareils
#PSSATPARIS2019

More Related Content

Similar to Piloter intune avec PowerShell

2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...Modern Workplace Conference Paris
 
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...Benoit Mortier
 
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...Vincent Thavonekham-Pro
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...Identity Days
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...ENSIBS
 
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...Benoit Mortier
 
Construire un moteur de workflow modulaire et convivial dans une gestion des ...
Construire un moteur de workflow modulaire et convivial dans une gestion des ...Construire un moteur de workflow modulaire et convivial dans une gestion des ...
Construire un moteur de workflow modulaire et convivial dans une gestion des ...Identity Days
 
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content Services
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content ServicesaOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content Services
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content ServicesSébastien Paulet
 
#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teamsVincent Biret
 
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...Modern Workplace Conference Paris
 
Piège dans les Nuages - Version Rebuild 2015 Nantes
Piège dans les Nuages - Version Rebuild 2015 NantesPiège dans les Nuages - Version Rebuild 2015 Nantes
Piège dans les Nuages - Version Rebuild 2015 NantesPatrick Guimonet
 
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...Microsoft Technet France
 
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...Microsoft Décideurs IT
 
La métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsLa métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsPatrick Allaert
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwthkairi
 
MWCP19 Cybersécurité et M365 en action
MWCP19 Cybersécurité et M365 en actionMWCP19 Cybersécurité et M365 en action
MWCP19 Cybersécurité et M365 en actionSébastien Paulet
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesBenoit Jester
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Etienne Bailly
 

Similar to Piloter intune avec PowerShell (20)

2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
2018-10-17 J1 7D - Introduction au Microsoft Graph démarrez vite et livrez ra...
 
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...
workflow-api-webservice-synchronisation-comment-construire-une-gestion-des-id...
 
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
Gab2015 Cedric Derue Vincent Thavonekham Approche Devops pour builder une sol...
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...
Construire-un-moteur-de-workflow-modulaire-et-convivial-dans-une-gestion-des-...
 
Construire un moteur de workflow modulaire et convivial dans une gestion des ...
Construire un moteur de workflow modulaire et convivial dans une gestion des ...Construire un moteur de workflow modulaire et convivial dans une gestion des ...
Construire un moteur de workflow modulaire et convivial dans une gestion des ...
 
API Management
API ManagementAPI Management
API Management
 
Hybride share point search
Hybride share point searchHybride share point search
Hybride share point search
 
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content Services
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content ServicesaOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content Services
aOS Nice 2020 : Les nouveautés du MS Ignite 2020 sur les Content Services
 
#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams
 
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
2018-10-18 J2 4D - Implémentez votre prochain assistant personnel d’intranet ...
 
Piège dans les Nuages - Version Rebuild 2015 Nantes
Piège dans les Nuages - Version Rebuild 2015 NantesPiège dans les Nuages - Version Rebuild 2015 Nantes
Piège dans les Nuages - Version Rebuild 2015 Nantes
 
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
 
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
La transformation du SI avec le Cloud Microsoft, quel sera le rôle de la DSI ...
 
La métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devopsLa métrique, ce n'est pas que pour le devops
La métrique, ce n'est pas que pour le devops
 
GtugDakar AppEngine, Gwt
GtugDakar AppEngine, GwtGtugDakar AppEngine, Gwt
GtugDakar AppEngine, Gwt
 
MWCP19 Cybersécurité et M365 en action
MWCP19 Cybersécurité et M365 en actionMWCP19 Cybersécurité et M365 en action
MWCP19 Cybersécurité et M365 en action
 
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensablesyOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
yOS Montpellier - Piloter Office 365 grâce à powershell - Les indispensables
 
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
Piloter Office 365 grâce à PowerShell - Les indispensables - Benoit Jester - ...
 

Piloter intune avec PowerShell

  • 1. Piloter Intune avec PowerShell Pour les noob par un noob @syst_and_deploy #PSSATPARIS2019
  • 4. Damien Van Robaeys • Ingénieur systèmes Metsys • MVP Microsoft x3 • Blog: http://www.systanddeploy.com • Twitter: @syst_and_deploy • Mail: damien.vanrobaeys@gmail.com #PSSATPARIS2019
  • 5. À propos de Metsys #PSSATPARIS2019
  • 6. 0 5 10 15 20 25 30 35 40 CA 2014 CA 2015 CA 2016 CA 2017 CA 2018 Obj. CA 2019 Une société en forte croissance 5 M€ 8,5 M€ 16,5 M€ 27,7M€ 35 M€ + 67 % Effectifs 2014 28 2016 79 2015 59 Une relation de confiance Création fin 2011 Laurent Cayatte Président Yannick Varloud Directeur Général 11 M€ Obj. 2019 300 Socialement responsable 2017 103 7 agences en France 1 2 3 Satisfaction Transparence Engagement2018 200
  • 8. Qu’est-ce que Intune ? #PSSATPARIS2019
  • 9. Intune, Intune: c’est quoi au juste ? • Service Cloud disponible dans le portail Azure • Connexion via compte Azure AD • Gérer appareils mobiles et PC de vos utilisateurs • Gérer les applications PC et mobiles (installation, déploiement…) • Permettre le BYOD à vos utilisateurs • Vérifier que vos appareils répondent aux exigences de sécurité • Déployer applications, fond d’écran, lockscreen, restrictions… #PSSATPARIS2019
  • 10. Les licences Intune • Microsoft 365 E5 • Microsoft 365 E3 • Enterprise Mobility + Security E5 • Enterprise Mobility + Security E3 • Microsoft 365 Business • Microsoft 365 F1 • Microsoft 365 Education A5 • Microsoft 365 Education A3 #PSSATPARIS2019 Intune for Education ? Choisir entre Intune for education et Intune
  • 11. Tester Intune gratuitement • Configuration de Intune: ici • Autopilot en action: ici • Gérer vos appareils: ici #PSSATPARIS2019
  • 12. SCCM est mort, vive Intune ? #PSSATPARIS2019
  • 13. Non SCCM n’est pas mort • SCCM & Intune co-existence and Co-Management is the future! #PSSATPARIS2019
  • 14. Intune et les ressources Trouver la bonne ressource #PSSATPARIS2019
  • 15. Des ressources pour quoi faire ? • Composants de Intune sont des ressources • Il faut savoir sur quoi on veut agir avant d’intéragir avec Posh • Se rendre dans la doc de Graph pour trouver son équivalent #PSSATPARIS2019
  • 16. Qu’est-ce que MS Graph ? #PSSATPARIS2019
  • 17. Microsoft Graph ? • Accéder aux ressources de Office 365 • Principe: Les ressources sont interconnectées • Office 365: Excel, Teams, OneDrive, OneNote, Outlook… • EMS: ATA, ATP, Azure AD, Intune • Windows 10: Activités, appareils, notifications #PSSATPARIS2019
  • 18. Microsoft Graph, pour faire quoi ? • Analyse du calendrier pour trouver les meilleures heures pour la prochaine réunion d’équipe • Examine la prochaine réunion et fournit informations sur le profil des participants • Lister les machines inscrites dans Intune et lister toutes les informations. • Effectuer des actions à distance sur des machines: redémarrer, réinitialiser, connexion à distance, scan antivirus • Création d’utilisateurs, groupes dans Azure AD • Déployer des applications sur vos appareils #PSSATPARIS2019
  • 19. Utiliser Graph API • Comment utiliser Graph API ? • Deux versions de l’API: Beta, v1.0 • Plusieurs méthodes pour agir sur les ressources: GET, PATCH, POST, DELETE • Méthodes POST et PATCH requiert de fournir un JSON • Action via une requête HTTP • Method + https://graph.microsoft.com/$Version_API/$Resource • Trouver la bonne ressource en utilisant les docs de références • On va cherche les appareils gérés, managed devices • Lister les appareils: GET /deviceManagement/managedDevices • Pour une machine: GET /deviceManagement/managedDevices/ID #PSSATPARIS2019
  • 20. Les permissions pour utiliser Graph • En fonction de ce que l’on souhaite faire, il faut des permissions • Lister les permissions requises pour une ressource sur le lien de référence. • Exemple pour les appareils gérés #PSSATPARIS2019 Reference
  • 21. Piloter Intune avec Graph Explorer #PSSATPARIS2019
  • 22. Graph Explorer, c’est quoi ? • Site web permettant d’effectuer des requêtes Graph sur O365 ou Intune • Se connecter • Choisissez la méthode: GET, PATCH, POST, DELETE • Choisissez version API: v1.0 ou Beta • Saisissez le lien de votre ressource • https://developer.microsoft.com/en-us/graph/graph-explorer • /deviceManagement/managedDevices • /deviceManagement/managedDevices/ID #PSSATPARIS2019
  • 23. Les permissions depuis Graph Explorer • Vérifier les permissions requises • Cliquer sur modify your permissions • Appliquer les bonnes permissions • Recommencer  #PSSATPARIS2019
  • 24. Partie JSON: pour modifier ou créer • Affiche le résultat de votre requête • Réutiliser un template pour pouvoir modifier une ressource #PSSATPARIS2019
  • 25. Vérifier message d’absence • beta/me/mailboxSettings • Modifier permissions • Actions via Graph: ici #PSSATPARIS2019
  • 26. Action sur un device • /deviceManagement/managedDevices/ID de la machine • Différentes actions • Voir équivalent sur la doc de l’API • Reboot d’une machine en action #PSSATPARIS2019 Depuis Intune Depuis Graph
  • 27. Autres exemples de ressources • Profile de déploiement Autopilot • Trouver la bonne ressource: ici • beta/deviceManagement/windowsAutopilotDeploymentProfiles • Liste des utilisateurs • Trouver la bonne ressource: ici • beta/users • Lister les conditions et termes • Trouver la bonne ressource: ici • Beta/deviceManagement/termsAndConditions #PSSATPARIS2019
  • 28. Créer un nouveau profil • Choisir méthode POST • beta/deviceManagement/windowsAutopilotDeploymentProfiles • Exemple de query #PSSATPARIS2019 { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "displayName": "mon nouveau profil", "description": "My profile description", "enrollmentStatusScreenSettings": null, "extractHardwareHash": false, "deviceNameTemplate": "", "deviceType": "windowsPc" }
  • 29. Modifier un profil existant • Choisir méthode PATCH • beta/deviceManagement/windowsAutopilotDeploymentProfiles/ID du profil • Exemple de query #PSSATPARIS2019 { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "displayName": "mon nouveau profil", "description": "Ma nouvelle description", "enrollmentStatusScreenSettings": null, "extractHardwareHash": false, "deviceNameTemplate": "", "deviceType": "windowsPc" }
  • 30. Supprimer un profil existant • Choisir méthode DELETE • beta/deviceManagement/windowsAutopilotDeploymentProfiles/ID du profil #PSSATPARIS2019
  • 31. Créer un nouvel utilisateur • Choisir méthode POST • beta/users • Modifier les permissions si besoin • Exemple de query – Voir exemple sur Doc Graph #PSSATPARIS2019 { "accountEnabled": true, "displayName": "Thomas Shelby", "mailNickname": "Group1", "userPrincipalName": "ThomasShelby@damvanrobaeysgmail.onmicrosoft.com", "passwordProfile" : { "forceChangePasswordNextSignIn": true, "password": "P@$$w0rd"} }
  • 32. Modifier un utilisateur existant • Choisir méthode PATCH • beta/users/ID de l’utilisateur • Exemple de query #PSSATPARIS2019 { "accountEnabled": true, "displayName": "Thomas Shelby", "mailNickname": "Group1", "jobTitle": "System engineer", "userPrincipalName": "ThomasShelby@damvanrobaeysgmail.onmicrosoft.com" }
  • 33. Supprimer un utilisateur existant • Choisir méthode DELETE • beta/users/ID de l’utilisateur #PSSATPARIS2019
  • 34. Action sur une machine (ou plusieurs) • Choisir méthode POST • Voir les actions disponibles: ici • beta/deviceManagement/managedDevices/ID de la machine • Reboot: beta/deviceManagement/managedDevices/ID de la machine/rebootnow • Wipe: beta/deviceManagement/managedDevices/ID de la machine/wipe #PSSATPARIS2019
  • 35. PowerShell et Intune Comment s’y connecter et l’interroger ? #PSSATPARIS2019
  • 36. Méthode 1 • Deux fonctions:  Get-AuthToken  Créer un token d’authetifcation  Connect-AutoPilotIntune  Connexion à Intune • Installation module Azure AD • Load les assemblies ADAL (Active Directory Authentication Library) • Vous permet d’obtenir un token pour accéder aux API web comme Graph #PSSATPARIS2019
  • 37. Connexion à Intune • Deux fonctions:  Get-AuthToken  Connect-AutoPilotIntune • Disponibles dans le module Autopilot de MS • Accessibles sur le GitHub du FRPSUG • Copier les deux fonctions • Saisir Connect-AutoPilotIntune • Saisir ses credentials #PSSATPARIS2019
  • 38. Interroger Intune • Cmdlet: Invoke-RestMethod • $authToken: Variable permettant d’obtenir le token pour se connecter • Ajout -Uri « URL » -Headers $authToken –Method Get/Post/Patch/Delete • Création et update: Ajout -Body puis le fichier JSON #PSSATPARIS2019
  • 39. Créer un nouveau profil • Cmdlet: Invoke-RestMethod #PSSATPARIS2019 $MyProfile = @" { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "displayName": "My new profile for test2", "description": "", "language": "en-US", "extractHardwareHash": false, "deviceType": "windowsPc", } "@ $Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles" Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Body $MyProfile -Method Post
  • 40. Modifier un profil existant • Cmdlet: Invoke-RestMethod et ajouter l’ID du profil #PSSATPARIS2019 $MyProfile = @" { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "description": "ssssssss", } "@ $Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles/0863f75e-4f7b-4dcf-830f-882924c17b41" Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Body $MyProfile -Method Patch
  • 41. Supprimer un profil existant • Cmdlet: Invoke-RestMethod et ajouter l’ID du profil #PSSATPARIS2019 $Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles/0863f75e-4f7b-4dcf-830f-882924c17b41" Invoke-RestMethod -Uri "https://graph.microsoft.com/$Resource" -Headers $authToken -Method Delete
  • 42. Méthode 2: Module Graph.Intune Chargement du module Module PowerShell Connexion à Intune Pour accéder aux ressources Interroger Intune Lister, modifier, créer, supprimer
  • 43. Microsoft.Graph.Intune • Module Microsoft sur PSGallery • SDK disponible sur GitHub • Vous permet d’accéder à intune en utilisant l’API Graph • Installation module via install-module • Import du module via import-module #PSSATPARIS2019 Install-Module Microsoft.Graph.Intune Import-Module Microsoft.Graph.Intune
  • 44. Contenu du module • Le module contient à ce jour 1056 cmdlets • Lister les cmdlets pour gérer les devices: 50 • Lister les cmdlets pour gérer les profil de déploiement: 0 #PSSATPARIS2019
  • 45. Connexion à Intune • Cmdlet: Connect-MSGraph • Connexion basique • Connexion avec credentials #PSSATPARIS2019 $Intune_UDP = "dvr-adm@systanddeploy.com" $Intune_PWD | ConvertFrom-SecureString | Out-File $Intune_PWD_File $adminPwd = Get-Content $Intune_PWD_File | ConvertTo-SecureString $creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($Intune_UDP, $adminPwd) Connect-MSGraph -PSCredential $creds
  • 46. Créer requête personnalisée • Si pas de cmdlets pour ce que l’on cherche à faire • Exemple: gestion des profils de déploiement • Cmdlet: Invoke-MSGraphRequest • Invoke-MSGraphRequest -Url "Votre_URL" -HttpMethod Get/Post/Patch/Delete • Pour update ou création: ajouter -Content « Votre_JSON » #PSSATPARIS2019
  • 47. Lister les appareils • Cmdlet: Get-DeviceManagement_ManagedDevices • Pas toutes les informations #PSSATPARIS2019
  • 48. Créer un nouveau profil • Cmdlet: Invoke-MSGraphRequest #PSSATPARIS2019 $MyProfile = @" { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "displayName": "My new profile for test2", "description": "", "language": "en-US", "extractHardwareHash": false, "deviceType": "windowsPc", } "@ $Resource = " beta/deviceManagement/windowsAutopilotDeploymentProfiles " Invoke-MSGraphRequest -Url "https://graph.microsoft.com/$Resource" -HttpMethod Post -Content $MyProfile
  • 49. Action sur un device • Cmdlet: Invoke-MSGraphRequest #PSSATPARIS2019 $MyProfile = @" { "@odata.type": "#microsoft.graph.azureADWindowsAutopilotDeploymentProfile", "displayName": "My new profile for test2", "description": "", "deviceType": "windowsPc", } "@ $Resource = "beta/deviceManagement/windowsAutopilotDeploymentProfiles" Invoke-MSGraphRequest -Url "https://graph.microsoft.com/$Resource" -HttpMethod Post -Content $MyProfile
  • 50. Exemple d’outil utilisant Graph #PSSATPARIS2019
  • 51. Intune Device Manager • Liste les appareils enrollés • Permet d’effectuer des actions sur ces appareils #PSSATPARIS2019