Skip to content

Commit 5ae9927

Browse files
Merge pull request KelvinTegelaar#1923 from ZenTopBrandon/bug/autopilot-profile-standard
Bug/autopilot profile standard
2 parents 1f03dc4 + c3dbea0 commit 5ae9927

2 files changed

Lines changed: 31 additions & 19 deletions

File tree

Modules/CIPPCore/Public/Set-CIPPDefaultAPDeploymentProfile.ps1

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,20 @@ function Set-CIPPDefaultAPDeploymentProfile {
2020
)
2121

2222
try {
23-
if ($Language -eq 'user-select') { $Language = '' }
23+
if ($Language -in @('user-select', 'os-default')) { $Language = '' }
24+
25+
# userType in outOfBoxExperienceSetting is only valid for user-driven (singleUser) mode.
26+
# The Intune API rejects it for self-deploying (shared) mode.
27+
$OutOfBoxSetting = [ordered]@{
28+
'deviceUsageType' = "$DeploymentMode"
29+
'escapeLinkHidden' = $([bool]($true))
30+
'privacySettingsHidden' = $([bool]($HidePrivacy))
31+
'eulaHidden' = $([bool]($HideTerms))
32+
'keyboardSelectionPageSkipped' = $([bool]($AutoKeyboard))
33+
}
34+
if ($DeploymentMode -ne 'shared') {
35+
$OutOfBoxSetting['userType'] = "$UserType"
36+
}
2437

2538
$ObjBody = [pscustomobject]@{
2639
'@odata.type' = '#microsoft.graph.azureADWindowsAutopilotDeploymentProfile'
@@ -32,14 +45,7 @@ function Set-CIPPDefaultAPDeploymentProfile {
3245
'deviceType' = 'windowsPc'
3346
'hardwareHashExtractionEnabled' = $([bool]($CollectHash))
3447
'roleScopeTagIds' = @()
35-
'outOfBoxExperienceSetting' = @{
36-
'deviceUsageType' = "$DeploymentMode"
37-
'escapeLinkHidden' = $([bool]($true))
38-
'privacySettingsHidden' = $([bool]($HidePrivacy))
39-
'eulaHidden' = $([bool]($HideTerms))
40-
'userType' = "$UserType"
41-
'keyboardSelectionPageSkipped' = $([bool]($AutoKeyboard))
42-
}
48+
'outOfBoxExperienceSetting' = $OutOfBoxSetting
4349
}
4450
$Body = ConvertTo-Json -InputObject $ObjBody -Depth 10
4551

Modules/CIPPCore/Public/Standards/Invoke-CIPPStandardAutopilotProfile.ps1

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ function Invoke-CIPPStandardAutopilotProfile {
6969
($CurrentConfig.outOfBoxExperienceSetting.deviceUsageType -eq $DeploymentMode) -and
7070
($CurrentConfig.outOfBoxExperienceSetting.privacySettingsHidden -eq $Settings.HidePrivacy) -and
7171
($CurrentConfig.outOfBoxExperienceSetting.eulaHidden -eq $Settings.HideTerms) -and
72-
($CurrentConfig.outOfBoxExperienceSetting.userType -eq $userType) -and
72+
($DeploymentMode -eq 'shared' -or $CurrentConfig.outOfBoxExperienceSetting.userType -eq $userType) -and
7373
($CurrentConfig.outOfBoxExperienceSetting.keyboardSelectionPageSkipped -eq $Settings.AutoKeyboard)
7474
} catch {
7575
$ErrorMessage = Get-CippException -Exception $_
@@ -78,29 +78,35 @@ function Invoke-CIPPStandardAutopilotProfile {
7878
}
7979

8080
$CurrentValue = $CurrentConfig | Select-Object -Property displayName, description, deviceNameTemplate, locale, preprovisioningAllowed, hardwareHashExtractionEnabled, @{Name = 'outOfBoxExperienceSetting'; Expression = {
81-
[PSCustomObject]@{
81+
$oobe = [PSCustomObject]@{
8282
deviceUsageType = $_.outOfBoxExperienceSetting.deviceUsageType
8383
privacySettingsHidden = $_.outOfBoxExperienceSetting.privacySettingsHidden
8484
eulaHidden = $_.outOfBoxExperienceSetting.eulaHidden
85-
userType = $_.outOfBoxExperienceSetting.userType
8685
keyboardSelectionPageSkipped = $_.outOfBoxExperienceSetting.keyboardSelectionPageSkipped
8786
}
87+
if ($DeploymentMode -ne 'shared') {
88+
$oobe | Add-Member -NotePropertyName 'userType' -NotePropertyValue $_.outOfBoxExperienceSetting.userType
89+
}
90+
$oobe
8891
}
8992
}
93+
$ExpectedOobe = [PSCustomObject]@{
94+
deviceUsageType = $DeploymentMode
95+
privacySettingsHidden = $Settings.HidePrivacy
96+
eulaHidden = $Settings.HideTerms
97+
keyboardSelectionPageSkipped = $Settings.AutoKeyboard
98+
}
99+
if ($DeploymentMode -ne 'shared') {
100+
$ExpectedOobe | Add-Member -NotePropertyName 'userType' -NotePropertyValue $userType
101+
}
90102
$ExpectedValue = [PSCustomObject]@{
91103
displayName = $Settings.DisplayName
92104
description = $Settings.Description
93105
deviceNameTemplate = $Settings.DeviceNameTemplate
94106
locale = $Settings.Languages.value
95107
preprovisioningAllowed = $Settings.AllowWhiteGlove
96108
hardwareHashExtractionEnabled = $Settings.CollectHash
97-
outOfBoxExperienceSetting = [PSCustomObject]@{
98-
deviceUsageType = $DeploymentMode
99-
privacySettingsHidden = $Settings.HidePrivacy
100-
eulaHidden = $Settings.HideTerms
101-
userType = $userType
102-
keyboardSelectionPageSkipped = $Settings.AutoKeyboard
103-
}
109+
outOfBoxExperienceSetting = $ExpectedOobe
104110
}
105111

106112
# Remediate if the state is not correct

0 commit comments

Comments
 (0)