Windows Autopilot et PowerShell – Partie 2

Dans l’article précédent, nous avons découvert le module WindowsAutopilotIntune, développé par Microsoft, permettant de gérer et préparer son environnement Autopilot.

Dans cet article, je vais vous présenter quelques fonctionnalités, cmdlets, supplémentaires que j’ai intégré dans ce module, dans mon lab, en espérant que celles-ci soient implémentées dans le module officiel.

Mes ajouts

Dans cet article je vais vous présenter les cmdlets que j’ai ajouté:
Set-AutopilotProfile: Modifuer les options d’un profil de déploiement
Remove-AutoPilotProfile: Supprimer un profil de déploiement
Set-AutoPilotProfileAssignedGroup: Assigner un groupe à un profil
Remove-AutoPilotProfileAssignedGroup: Supprimer l’assignation d’un groupe
Get-AutoPilotProfileAssignedDevice: Lister les appareils assignés à un profil
Get-AutoPilotProfileAssignments: Lister les groupes assigner à un profil
Add-EnrollmentStatusPage: Créer une page d’enrollment
Get-EnrollmentStatusPage: Lister les pages d’enrollment
Set-EnrollmentStatusPage: Modifier les options d’une page d’enrollment
Remove-EnrollmentStatusPage: Suuprimer une page d’enrollment

Où les trouver ?

Modifier un profil de déploiement

Quel cmdlet ?
Set-AutoPilotProfile
Que fait-elle ?
Cette cmdlet existe déjà dans le module WindowsAutopilot.
Par défaut, celle-ci ne permet que de modifier le paramètre de langue.
J’y ai donc ajouté la possibilité de modifier les paramètres ci-dessous:
– Cacher les paramètres EULA
– Cacher privacy settings
– Changer le nom d’affichage de la machine
– Changer la description
– Ajouter un modèle de nom
– Change option to hide or not the change account options
– Configure the value “Convert all targeted devices to Autopilot”
Comment l’utiliser ?
Saisir Set-AutoPilotProfile puis l’ID du profile à modifier.
Les différents paramètres sont disponibles ci-dessous:

.PARAMETER id
The ID (GUID) of the profile to be updated.

.PARAMETER language
The language identifier (e.g. "en-us") to be configured in the profile.

.PARAMETER description
The description to be configured in the profile.

.PARAMETER ConvertDeviceToAutopilot
Configure the value "Convert all targeted devices to Autopilot"

.PARAMETER OOBE_HideEULA
Configure the OOBE option to hide or not the EULA

.PARAMETER OOBE_hidePrivacySettings
Configure the OOBE option to hide or not the privacy settings

.PARAMETER OOBE_HideChangeAccountOpts
Configure the OOBE option to hide or not the change account options

.PARAMETER OOBE_userTypeAdmin
Configure the user accout type as administrator. If ot set user type is Standard

.PARAMETER OOBE_NameTemplate
Configure the OOBE option to apply a device name template

.PARAMETER OOBE_SkipKeyboard
Configure the OOBE option to skip or not the keyboard selection page

.EXAMPLE
Set-AutoPilotProfile -ID <guid> -Language "en-us"
Set-AutoPilotProfile -ID <guid> -Language "en-us" -displayname "My testing profile" -Description "Description of my profile" -OOBE_HideEULA $True -OOBE_hidePrivacySettings $True

La cmdlet en action
Ci-dessous les options de mon profil avant modification:

Dans l’exemple suivant, je vais modifier les paramètres tel que ci-dessous:
– Description: Testing profile
– Hide EULA: Yes
– Hide privacy settings: Yes

Ci-dessous la cmdlet en action:

Ci-dessous le profil après modification dans Intune:

Créer un profil de déploiement

Quel cmdlet ?
Add-AutoPilotProfile
Que fait-elle ?
Permet de créer un profil de déploiement.
Comment l’utiliser ?
Saisir Add-AutoPilotProfile puis au moins le nom du profile à créer.
Les différents paramètres sont disponibles ci-dessous:

.PARAMETER language
The language identifier (e.g. "en-us") to be configured in the profile.

.PARAMETER description
The description to be configured in the profile.

.PARAMETER ConvertDeviceToAutopilot
Configure the value "Convert all targeted devices to Autopilot"

.PARAMETER OOBE_HideEULA
Configure the OOBE option to hide or not the EULA

.PARAMETER OOBE_hidePrivacySettings
Configure the OOBE option to hide or not the privacy settings

.PARAMETER OOBE_HideChangeAccountOpts
Configure the OOBE option to hide or not the change account options

.PARAMETER OOBE_userTypeAdmin
Configure the user accout type as administrator. If ot set user type is Standard

.PARAMETER OOBE_NameTemplate
Configure the OOBE option to apply a device name template

.PARAMETER OOBE_SkipKeyboard
Configure the OOBE option to skip or not the keyboard selection page

.EXAMPLE
Add-AutoPilotProfile -displayname "My testing profile"
Add-AutoPilotProfile -Language "en-us" -displayname "My testing profile" -Description "Description of my profile" -OOBE_HideEULA $True -OOBE_hidePrivacySettings $True

La cmdlet en action
Ci-dessous la liste des profils avant création:

Ci-dessous la cmdlet en action:

Ci-dessous le profil après modification dans Intune:

Supprimer un profil de déploiement

Quel cmdlet ?
Remove-AutoPilotProfile
Que fait-elle ?
Permet de supprimer un profil de déploiement.
Comment l’utiliser ?
Saisir Remove-AutoPilotProfile puis l’ID du profile à supprimer.
Pur obtenir l’ID du profil de déploiement, vous pouvez utiliser la cmdlet Get-DeploymentProfile, ou cliquer sur le profil concerné dans Intune. L’ID est alors visible dans la barre d’adresse.

La cmdlet en action
Ci-dessous la liste des profils depuis Intune:

Ci-dessous la cmdlet en action:

Ci-dessous la liste des profils depuis Intune, après suppression:

Assigner un groupe à un profil de déploiement

Quel cmdlet ?
Set-AutoPilotProfileAssignedGroup
Que fait-elle ?
Permet d’assigner un groupe Azure AD à un profil de déploiement spécifique.
Comment l’utiliser ?
Saisir Set-AutoPilotProfileAssignedGroup, l’ID du profil à supprimer et l’ID du groupe à assigner.
La cmdlet en action
Ci-dessous les options d’assignation avant la modification:

Nous allons assigner le groupe Autopilot Devices

Pour obtenir l’ID du groupe vous pouvez utiliser la cmdlet Get-AzureADGroup.
Ci-dessous la cmdlet en action:

Ci-dessous les options d’assignation après la modification:

Supprimer un groupe assigné à un profil

Quel cmdlet ?
Remove-AutoPilotProfileAssignedGroup
Que fait-elle ?
Permet de supprimer l’assignation d’un groupe à un profil de déploiement.
Comment l’utiliser ?
Saisir Remove-AutoPilotProfileAssignedGroup puis l’ID du profil concerné et l’ID du groupe à supprimer des assignations.
La cmdlet en action
Ci-dessous les options d’assignation avant la modification:

Ci-dessous les options d’assignation après la modification:

Lister les appareils assignés à un profil de déploiement

Quel cmdlet ?
Get-AutoPilotProfileAssignedDevice
Que fait-elle ?
Permet de lister les appareils assignés à un profil de déploiement.
Comment l’utiliser ?
Saisir Get-AutoPilotProfileAssignedDevice puis l’ID du profil.
La cmdlet en action
Ci-dessous la liste des appareils assignés au profil “SD Autopilot – Demo” depuis le portail Intune.

Ci-dessous la liste des appareils assignés depuis la cmdlet:

Lister les groupes assignés à un profil de déploiement

Quel cmdlet ?
Get-AutoPilotProfileAssignments
Que fait-elle ?
Permet de lister les groupes assignés à un profil de déploiement
Comment l’utiliser ?
Saisir Get-AutoPilotProfileAssignments puis l’ID du profil.
La cmdlet en action
Ci-dessous la liste des groupes assignés au profil “SD Autopilot – Demo” depuis le portail Intune.

Ci-dessous la liste des groupes assignés depuis la cmdlet:

Créer une page d’enrollment

Quel cmdlet ?
Add-EnrollmentStatusPage
Que fait-elle ?
Permet de créer une page d’enrollment
Comment l’utiliser ?
Saisir Add-EnrollmentStatusPage puis au moins le nom de la page d’enrollment.


.PARAMETER DisplayName
Type: String - Configure the display name of the enrollment status page

.PARAMETER description
Type: String - Configure the description of the enrollment status page

.PARAMETER HideProgress
Type: Boolean - Configure the option: Show app and profile installation progress

.PARAMETER AllowCollectLogs
Type: Boolean - Configure the option: Allow users to collect logs about installation errors

.PARAMETER Message
Type: String - Configure the option: Show custom message when an error occurs

.PARAMETER AllowUseOnFailure
Type: Boolean - Configure the option: Allow users to use device if installation error occurs

.PARAMETER AllowResetOnError
Type: Boolean - Configure the option: Allow users to reset device if installation error occurs

.PARAMETER BlockDeviceUntilComplete
Type: Boolean - Configure the option: Block device use until all apps and profiles are installed

.PARAMETER TimeoutInMinutes
Type: Integer - Configure the option: Show error when installation takes longer than specified number of minutes

.EXAMPLE
Add-EnrollmentStatusPage
Add-EnrollmentStatusPage -Message "Oops an error occured, please contact your support" -HideProgress $True -AllowResetOnError $True
Add-EnrollmentStatusPage -HideProgress $true -Description "desc" -message "oops" -displayname "yoooo" -AllowCollectLogs $true -AllowUseOnFailure $true -AllowResetOnError $true -BlockDeviceUntilComplete $true -TimeoutInMinutes 20

La cmdlet en action
Ci-dessous la cmdlet en action:

Ci-dessous la nouvelle page d’enrollment depuis Intune:

Lister les pages d’enrollment

Quel cmdlet ?
Get-EnrollmentStatusPage
Que fait-elle ?
Permet de lister options d’une page d’enrollment.
Comment l’utiliser ?
Saisir Get-EnrollmentStatusPage puis l’ID de la page.
Vous pouvez trouver l’ID de la page d’enrollment dans la barre d’adresse depuis le portail Intune.
La cmdlet en action
Ci-dessous la liste des pages d’enrollment depuis le portail Intune:

Ci-dessous ma page d’enrollment via la cmdlet:

Supprimer une page d’enrollment

Remove an Enrollment Status Page
Quel cmdlet ?
Remove-EnrollmentStatusPage
Que fait-elle ?
Permet de supprimer une page d’enrollment.
Comment l’utiliser ?
Saisir Remove-EnrollmentStatusPage puis l’ID de la page.

Modifier les paramètres d’une page d’enrollment

Quel cmdlet ?
Set-EnrollmentStatusPage
Que fait-elle ?
Permet de modifier les options d’une page d’enrollment.
Ci-dessous les options modifiables:
– Display name
– Description
– Show custom message when an error occurs
– Show app and profile installation progress
– Show error when installation takes longer than specified number of minutes
– Allow users to collect logs about installation errors
– Block device use until all apps and profiles are installed
– Allow users to reset device if installation error occurs
– Allow users to use device if installation error occurs
Comment l’utiliser ?
Saisir Set-EnrollmentStatusPage puis l’ID de la page d’enrollment.
La cmdlet en action
Ci-dessous les options de ma page d’enrollment avant modification:

Nous allons modifier les options ci-dessous:
– Description: This is a testing page
– Custom message: Oops !!! Houston we have a problem !!!

Ci-dessous la cmdlet en action:

Ci-dessous les options depuis intune après modification:

Nous allons maintenant modifier le paramètre de Timeout à 20 minutes et configurer le paramètre
– Timeout: 20 minutes
– Block device use until all apps and profiles are installed: No

Ci-dessous le résultat obtenu:

About the Author

Damien VAN ROBAEYS

Ingénieur Systèmes travaillant principalement sur ce qui tourne autour du poste de travail (MDT, SCCM, Intune) et l’automatisation avec PowerShell. MVP Microsoft et auteur pour ENI, il publie régulièrement sur son blog et gère différents groupes Facebook, PowerShell et WPF (~3000 membres), Windows Autopilot (~2000 membres).

No Comments

Laisser un commentaire