diff --git a/Core.psm1 b/Core.psm1 index 56d8e1d..9d39e39 100644 --- a/Core.psm1 +++ b/Core.psm1 @@ -12,7 +12,7 @@ This module handles the WPF UI function Get-ModuleVersion { - '3.1.6' + '3.1.7' } function Start-CoreApp @@ -1095,6 +1095,14 @@ function Add-DefaultSettings Type = "Boolean" DefaultValue = $false }) "General" + + Add-SettingsObject (New-Object PSObject -Property @{ + Title = "Preview" + Key = "PreviewFeatures" + Type = "Boolean" + DefaultValue = $false + Description = "Enable featurs that are marked as Preview. This might require a restart and prompt for consent" + }) "General" } function Add-SettingsObject diff --git a/Documentation/ObjectCategories.json b/Documentation/ObjectCategories.json index 0f350b5..d0ba58a 100644 --- a/Documentation/ObjectCategories.json +++ b/Documentation/ObjectCategories.json @@ -665,6 +665,7 @@ "PolicyTypeLanguageId": "deviceRestrictions", "PlatformLanguageId": "MacOS", "Categories": [ + "ApplicationsAndGames", "BuiltinApps", "CloudAndStorage", "ConnectedDevices", diff --git a/Documentation/ObjectInfo/androiddeviceownerapplications_androiddeviceownergeneral.json b/Documentation/ObjectInfo/androiddeviceownerapplications_androiddeviceownergeneral.json index 4b3ec61..13b28ad 100644 --- a/Documentation/ObjectInfo/androiddeviceownerapplications_androiddeviceownergeneral.json +++ b/Documentation/ObjectInfo/androiddeviceownerapplications_androiddeviceownergeneral.json @@ -108,6 +108,112 @@ "booleanActions": 0, "policyType": 2, "enabled": true + }, + { + "isSettingDescription": false, + "showAsSectionHeader": true, + "dataType": 8, + "category": 2, + "nameResourceKey": "dedicatedAndroidEnrollmentTypesHeaderName", + "descriptionResourceKey": "dedicatedAndroidEnrollmentTypesHeaderDescription", + "childSettings": [ + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 2, + "nameResourceKey": "appNameName", + "descriptionResourceKey": "Empty", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "name", + "booleanActions": 0, + "policyType": 2, + "enabled": false + } + }, + { + "metadata": { + "dataType": 20, + "category": 2, + "nameResourceKey": "packageName", + "descriptionResourceKey": "Empty", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "appId", + "booleanActions": 0, + "policyType": 2, + "enabled": false + } + }, + { + "metadata": { + "dataType": 20, + "category": 2, + "nameResourceKey": "appUrlName", + "descriptionResourceKey": "Empty", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "appStoreUrl", + "booleanActions": 0, + "policyType": 2, + "enabled": false + } + }, + { + "metadata": { + "dataType": 20, + "category": 2, + "nameResourceKey": "appPublisherName", + "descriptionResourceKey": "Empty", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "publisher", + "booleanActions": 0, + "policyType": 2, + "enabled": false + } + } + ], + "dataType": 21, + "category": 2, + "nameResourceKey": "aadSharedDeviceDataClearAppsName", + "descriptionResourceKey": "aadSharedDeviceDataClearAppsDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "azureAdSharedDeviceDataClearApps", + "booleanActions": 0, + "policyType": 2, + "enabled": false + } + ], + "options": [ + + ], + "booleanActions": 0, + "policyType": 2, + "enabled": false } ] } diff --git a/Documentation/ObjectInfo/applicationsandgames_iosgeneral.json b/Documentation/ObjectInfo/applicationsandgames_iosgeneral.json index 7a5a2e8..726d02a 100644 --- a/Documentation/ObjectInfo/applicationsandgames_iosgeneral.json +++ b/Documentation/ObjectInfo/applicationsandgames_iosgeneral.json @@ -1883,6 +1883,23 @@ "defaultValue": false, "policyType": 46, "enabled": true + }, + { + "dataType": 0, + "category": 7, + "nameResourceKey": "managedPasteboardRequiredName", + "descriptionResourceKey": "managedPasteboardRequiredDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "managedPasteboardRequired", + "booleanActions": 9, + "defaultValue": false, + "policyType": 46, + "enabled": true } ], "options": [ diff --git a/Documentation/ObjectInfo/applicationsandgames_macgeneral.json b/Documentation/ObjectInfo/applicationsandgames_macgeneral.json new file mode 100644 index 0000000..4eee2ed --- /dev/null +++ b/Documentation/ObjectInfo/applicationsandgames_macgeneral.json @@ -0,0 +1,69 @@ +{ + "applicationsandgames_macgeneral": { + "isSettingDescription": false, + "showAsSectionHeader": true, + "dataType": 8, + "category": 7, + "nameResourceKey": "automatedDeviceEnrollmentHeaderNameMac", + "descriptionResourceKey": "automatedDeviceEnrollmentHeaderDescriptionMac", + "childSettings": [ + { + "dataType": 0, + "category": 7, + "nameResourceKey": "addingGameCenterFriendsBlockedMacName", + "descriptionResourceKey": "addingGameCenterFriendsBlockedMacDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "addingGameCenterFriendsBlocked", + "booleanActions": 9, + "defaultValue": false, + "policyType": 61, + "enabled": true + }, + { + "dataType": 0, + "category": 7, + "nameResourceKey": "gameCenterBlockedMacName", + "descriptionResourceKey": "gameCenterBlockedMacDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "gameCenterBlocked", + "booleanActions": 9, + "defaultValue": false, + "policyType": 61, + "enabled": true + }, + { + "dataType": 0, + "category": 7, + "nameResourceKey": "multiplayerGamingBlockedMacName", + "descriptionResourceKey": "multiplayerGamingBlockedMacDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "multiplayerGamingBlocked", + "booleanActions": 9, + "defaultValue": false, + "policyType": 61, + "enabled": true + } + ], + "options": [ + + ], + "booleanActions": 0, + "policyType": 61, + "enabled": true + } +} diff --git a/Documentation/ObjectInfo/builtinapps_iosgeneral.json b/Documentation/ObjectInfo/builtinapps_iosgeneral.json index 78fe6ae..6b0e9f3 100644 --- a/Documentation/ObjectInfo/builtinapps_iosgeneral.json +++ b/Documentation/ObjectInfo/builtinapps_iosgeneral.json @@ -173,6 +173,23 @@ "defaultValue": false, "policyType": 46, "enabled": true + }, + { + "dataType": 0, + "category": 16, + "nameResourceKey": "onDeviceOnlyTranslationForcedName", + "descriptionResourceKey": "onDeviceOnlyTranslationForcedDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "onDeviceOnlyTranslationForced", + "booleanActions": 9, + "defaultValue": false, + "policyType": 46, + "enabled": true } ], "options": [ diff --git a/Documentation/ObjectInfo/customconfiguration_maccustom.json b/Documentation/ObjectInfo/customconfiguration_maccustom.json index af963cd..7fa8c05 100644 --- a/Documentation/ObjectInfo/customconfiguration_maccustom.json +++ b/Documentation/ObjectInfo/customconfiguration_maccustom.json @@ -17,6 +17,33 @@ "policyType": 56, "enabled": true }, + { + "dataType": 16, + "category": 25, + "nameResourceKey": "customPolicyConfigurationDeploymentChannelName", + "descriptionResourceKey": "customPolicyConfigurationDeploymentChannelDescription", + "childSettings": [ + + ], + "options": [ + { + "nameResourceKey": "customPolicyConfigurationDeviceChannel", + "value": "deviceChannel", + "enabled": true + }, + { + "nameResourceKey": "customPolicyConfigurationUserChannel", + "value": "userChannel", + "enabled": true + } + ], + "entityKey": "deploymentChannel", + "booleanActions": 0, + "defaultValue": "deviceChannel", + "unconfiguredValue": "deviceChannel", + "policyType": 56, + "enabled": true + }, { "dataEntityKey": "payload", "filenameEntityKey": "payloadFileName", diff --git a/Documentation/ObjectInfo/defenderexploitguard_windows10endpointprotection.json b/Documentation/ObjectInfo/defenderexploitguard_windows10endpointprotection.json index ac53e23..ed334c7 100644 --- a/Documentation/ObjectInfo/defenderexploitguard_windows10endpointprotection.json +++ b/Documentation/ObjectInfo/defenderexploitguard_windows10endpointprotection.json @@ -61,7 +61,7 @@ "options": [ { "nameResourceKey": "notConfigured", - "value": "userDefined", + "value": "notConfigured", "enabled": true }, { @@ -77,8 +77,8 @@ ], "entityKey": "defenderPreventCredentialStealingType", "booleanActions": 0, - "defaultValue": "userDefined", - "unconfiguredValue": "userDefined", + "defaultValue": "notConfigured", + "unconfiguredValue": "notConfigured", "policyType": 77, "enabled": true }, @@ -93,7 +93,7 @@ "options": [ { "nameResourceKey": "notConfigured", - "value": "userDefined", + "value": "notConfigured", "enabled": true }, { @@ -109,8 +109,8 @@ ], "entityKey": "defenderAdobeReaderLaunchChildProcess", "booleanActions": 0, - "defaultValue": "userDefined", - "unconfiguredValue": "userDefined", + "defaultValue": "notConfigured", + "unconfiguredValue": "notConfigured", "policyType": 77, "enabled": true }, @@ -269,7 +269,7 @@ "options": [ { "nameResourceKey": "notConfigured", - "value": "userDefined", + "value": "notConfigured", "enabled": true }, { @@ -285,8 +285,8 @@ ], "entityKey": "defenderOfficeCommunicationAppsLaunchChildProcess", "booleanActions": 0, - "defaultValue": "userDefined", - "unconfiguredValue": "userDefined", + "defaultValue": "notConfigured", + "unconfiguredValue": "notConfigured", "policyType": 77, "enabled": true }, @@ -541,7 +541,7 @@ "options": [ { "nameResourceKey": "notConfigured", - "value": "userDefined", + "value": "notConfigured", "enabled": true }, { @@ -557,8 +557,8 @@ ], "entityKey": "defenderAdvancedRansomewareProtectionType", "booleanActions": 0, - "defaultValue": "userDefined", - "unconfiguredValue": "userDefined", + "defaultValue": "notConfigured", + "unconfiguredValue": "notConfigured", "policyType": 77, "enabled": true }, diff --git a/Documentation/ObjectInfo/deviceexperience_androiddeviceownergeneral.json b/Documentation/ObjectInfo/deviceexperience_androiddeviceownergeneral.json index 1f5b2f4..e80bfac 100644 --- a/Documentation/ObjectInfo/deviceexperience_androiddeviceownergeneral.json +++ b/Documentation/ObjectInfo/deviceexperience_androiddeviceownergeneral.json @@ -591,6 +591,175 @@ "defaultValue": false, "policyType": 2, "enabled": true + }, + { + "dataType": 0, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenSignInEnabledName", + "descriptionResourceKey": "kioskManagedHomeScreenSignInEnabledDescription", + "childSettings": [ + { + "dataType": 20, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenSignInBackgroundName", + "descriptionResourceKey": "kioskManagedHomeScreenSignInBackgroundDescription", + "emptyValueResourceKey": "kioskManagedHomeScreenSignInBackgroundEmptyValueKey", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenSignInBackground", + "booleanActions": 0, + "defaultValue": "", + "policyType": 2, + "enabled": true + }, + { + "dataType": 20, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenSignInBrandingLogoName", + "descriptionResourceKey": "kioskManagedHomeScreenSignInBrandingLogoDescription", + "emptyValueResourceKey": "kioskManagedHomeScreenSignInBrandingLogoEmptyValueKey", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenSignInBrandingLogo", + "booleanActions": 0, + "defaultValue": "", + "policyType": 2, + "enabled": true + }, + { + "dataType": 0, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenPINRequiredName", + "descriptionResourceKey": "kioskManagedHomeScreenPINRequiredDescription", + "childSettings": [ + { + "dataType": 16, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenPINComplexityName", + "descriptionResourceKey": "kioskManagedHomeScreenPINComplexityDescription", + "childSettings": [ + + ], + "options": [ + { + "nameResourceKey": "kioskManagedHomeScreenPINComplexityNotConfigured", + "value": "notConfigured", + "enabled": true + }, + { + "nameResourceKey": "kioskManagedHomeScreenPINComplexitySimple", + "value": "simple", + "enabled": true + }, + { + "nameResourceKey": "kioskManagedHomeScreenPINComplexityComplex", + "value": "complex", + "enabled": true + } + ], + "entityKey": "kioskModeManagedHomeScreenPinComplexity", + "booleanActions": 0, + "defaultValue": "notConfigured", + "unconfiguredValue": "notConfigured", + "policyType": 2, + "enabled": true + }, + { + "dataType": 0, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenPINRequiredToResumeName", + "descriptionResourceKey": "kioskManagedHomeScreenPINRequiredToResumeDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenPinRequiredToResume", + "booleanActions": 2, + "defaultValue": false, + "policyType": 2, + "enabled": true + } + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenPinRequired", + "booleanActions": 2, + "defaultValue": false, + "policyType": 2, + "enabled": true + }, + { + "dataType": 0, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenAutoSignOutName", + "descriptionResourceKey": "kioskManagedHomeScreenAutoSignOutDescription", + "childSettings": [ + { + "dataType": 14, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenInactiveSignOutDelayName", + "descriptionResourceKey": "kioskManagedHomeScreenInactiveSignOutDelayDescription", + "emptyValueResourceKey": "kioskScreenSaverSecondsEmptyValueKey", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenInactiveSignOutDelayInSeconds", + "booleanActions": 0, + "defaultValue": 300, + "policyType": 2, + "enabled": true + }, + { + "dataType": 14, + "category": 43, + "nameResourceKey": "kioskManagedHomeScreenInactiveNoticeDelayName", + "descriptionResourceKey": "kioskManagedHomeScreenInactiveNoticeDelayDescription", + "emptyValueResourceKey": "kioskScreenSaverSecondsEmptyValueKey", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenInactiveSignOutNoticeInSeconds", + "booleanActions": 0, + "defaultValue": 60, + "policyType": 2, + "enabled": true + } + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenAutoSignout", + "booleanActions": 2, + "defaultValue": false, + "policyType": 2, + "enabled": true + } + ], + "options": [ + + ], + "entityKey": "kioskModeManagedHomeScreenSignInEnabled", + "booleanActions": 2, + "defaultValue": false, + "policyType": 2, + "enabled": true } ], "enabled": true diff --git a/Documentation/ObjectInfo/devicehealth_complianceaospdeviceowner.json b/Documentation/ObjectInfo/devicehealth_complianceaospdeviceowner.json new file mode 100644 index 0000000..2adb75a --- /dev/null +++ b/Documentation/ObjectInfo/devicehealth_complianceaospdeviceowner.json @@ -0,0 +1,19 @@ +{ + "devicehealth_complianceaospdeviceowner": { + "dataType": 0, + "category": 36, + "nameResourceKey": "complianceRootedAllowedName", + "descriptionResourceKey": "complianceRootedAllowedDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "securityBlockJailbrokenDevices", + "booleanActions": 3, + "defaultValue": false, + "policyType": 32, + "enabled": true + } +} diff --git a/Documentation/ObjectInfo/devicerestrictions_androiddeviceownergeneral.json b/Documentation/ObjectInfo/devicerestrictions_androiddeviceownergeneral.json index e46f95e..1759d3b 100644 --- a/Documentation/ObjectInfo/devicerestrictions_androiddeviceownergeneral.json +++ b/Documentation/ObjectInfo/devicerestrictions_androiddeviceownergeneral.json @@ -266,6 +266,23 @@ "policyType": 2, "enabled": true }, + { + "dataType": 0, + "category": 41, + "nameResourceKey": "securityDeveloperSettingsEnabledName", + "descriptionResourceKey": "securityDeveloperSettingsEnabledDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "securityDeveloperSettingsEnabled", + "booleanActions": 0, + "defaultValue": false, + "policyType": 2, + "enabled": false + }, { "dataType": 0, "category": 41, @@ -1169,6 +1186,39 @@ "booleanActions": 0, "policyType": 2, "enabled": true + }, + { + "isSettingDescription": false, + "showAsSectionHeader": true, + "dataType": 8, + "category": 41, + "nameResourceKey": "workProfileAndroidEnrollmentTypesHeaderName", + "descriptionResourceKey": "workProfileAndroidEnrollmentTypesHeaderDescription", + "childSettings": [ + { + "dataType": 0, + "category": 41, + "nameResourceKey": "workProfileBlockContactSharingViaBluetoothName", + "descriptionResourceKey": "workProfileBlockContactSharingViaBluetoothDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "bluetoothBlockContactSharing", + "booleanActions": 3, + "defaultValue": false, + "policyType": 2, + "enabled": true + } + ], + "options": [ + + ], + "booleanActions": 0, + "policyType": 2, + "enabled": true } ] } diff --git a/Documentation/ObjectInfo/devicerestrictions_aospdeviceownerdevice.json b/Documentation/ObjectInfo/devicerestrictions_aospdeviceownerdevice.json index 0db973b..02e9676 100644 --- a/Documentation/ObjectInfo/devicerestrictions_aospdeviceownerdevice.json +++ b/Documentation/ObjectInfo/devicerestrictions_aospdeviceownerdevice.json @@ -85,23 +85,6 @@ "policyType": 28, "enabled": true }, - { - "dataType": 0, - "category": 41, - "nameResourceKey": "blockStorageUsbName", - "descriptionResourceKey": "blockStorageUsbDescription", - "childSettings": [ - - ], - "options": [ - - ], - "entityKey": "storageAllowUsb", - "booleanActions": 9, - "defaultValue": false, - "policyType": 28, - "enabled": true - }, { "dataType": 0, "category": 41, @@ -117,7 +100,7 @@ "booleanActions": 9, "defaultValue": false, "policyType": 28, - "enabled": true + "enabled": false }, { "dataType": 0, @@ -170,23 +153,6 @@ "policyType": 28, "enabled": true }, - { - "dataType": 0, - "category": 41, - "nameResourceKey": "blockBluetoothContactSharingName", - "descriptionResourceKey": "blockBluetoothContactSharingDescription", - "childSettings": [ - - ], - "options": [ - - ], - "entityKey": "bluetoothBlockContactSharing", - "booleanActions": 9, - "defaultValue": false, - "policyType": 28, - "enabled": true - }, { "dataType": 0, "category": 41, @@ -202,24 +168,7 @@ "booleanActions": 9, "defaultValue": false, "policyType": 28, - "enabled": true - }, - { - "dataType": 0, - "category": 41, - "nameResourceKey": "allowAppsInstallFromUnknownSourcesName", - "descriptionResourceKey": "allowAppsInstallFromUnknownSourcesDescription", - "childSettings": [ - - ], - "options": [ - - ], - "entityKey": "appsAllowInstallFromUnknownSources", - "booleanActions": 9, - "defaultValue": false, - "policyType": 28, - "enabled": true + "enabled": false }, { "dataType": 0, diff --git a/Documentation/ObjectInfo/devicerestrictions_iosgeneral.json b/Documentation/ObjectInfo/devicerestrictions_iosgeneral.json index 23e6d7e..42ab910 100644 --- a/Documentation/ObjectInfo/devicerestrictions_iosgeneral.json +++ b/Documentation/ObjectInfo/devicerestrictions_iosgeneral.json @@ -245,8 +245,8 @@ { "dataType": 0, "category": 41, - "nameResourceKey": "blockDeviceEraseContentAndSettingsName", - "descriptionResourceKey": "blockDeviceEraseContentAndSettingsDescription", + "nameResourceKey": "blockDeviceEraseContentAndSettingsIosName", + "descriptionResourceKey": "blockDeviceEraseContentAndSettingsIosDescription", "childSettings": [ ], diff --git a/Documentation/ObjectInfo/devicerestrictions_macgeneral.json b/Documentation/ObjectInfo/devicerestrictions_macgeneral.json index 6834e51..6f32f6a 100644 --- a/Documentation/ObjectInfo/devicerestrictions_macgeneral.json +++ b/Documentation/ObjectInfo/devicerestrictions_macgeneral.json @@ -91,7 +91,7 @@ "descriptionResourceKey": "userApprovedAndAutomatedDeviceEnrollmentHeaderDescriptionMac", "childSettings": [ { - "dataType": 13, + "dataType": 16, "category": 41, "nameResourceKey": "updateDelayPolicyName", "descriptionResourceKey": "updateDelayPolicyDescription", @@ -100,7 +100,53 @@ ], "options": [ { - "nameResourceKey": "delayOSUpdateVisibilityOption", + "nameResourceKey": "notConfigured", + "value": "none", + "enabled": true + }, + { + "nameResourceKey": "delayMajorOSUpdateVisibilityOption", + "value": "delayMajorOsUpdateVisibility", + "children": [ + { + "dataType": 14, + "category": 41, + "nameResourceKey": "enforcedSoftwareUpdateDelayName", + "descriptionResourceKey": "enforcedSoftwareUpdateDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdatesEnforcedDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMajorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMajorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMajorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + } + ], + "enabled": true + }, + { + "nameResourceKey": "delayMinorOSUpdateVisibilityOption", "value": "delayOSUpdateVisibility", "children": [ { @@ -119,6 +165,23 @@ "defaultValue": 30, "policyType": 61, "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMinorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMinorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMinorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true } ], "enabled": true @@ -143,6 +206,272 @@ "defaultValue": 30, "policyType": 61, "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateNonOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateNonOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateNonOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + } + ], + "enabled": true + }, + { + "nameResourceKey": "delayMajorAndMinorOSUpdateVisibilityOption", + "value": "delayMajorOsUpdateVisibility,delayOSUpdateVisibility", + "children": [ + { + "dataType": 14, + "category": 41, + "nameResourceKey": "enforcedSoftwareUpdateDelayName", + "descriptionResourceKey": "enforcedSoftwareUpdateDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdatesEnforcedDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMajorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMajorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMajorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMinorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMinorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMinorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + } + ], + "enabled": true + }, + { + "nameResourceKey": "delayMajorAndNonOsUpdateVisibilityOption", + "value": "delayMajorOsUpdateVisibility,delayAppUpdateVisibility", + "children": [ + { + "dataType": 14, + "category": 41, + "nameResourceKey": "enforcedSoftwareUpdateDelayName", + "descriptionResourceKey": "enforcedSoftwareUpdateDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdatesEnforcedDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMajorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMajorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMajorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateNonOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateNonOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateNonOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + } + ], + "enabled": true + }, + { + "nameResourceKey": "delayMinorAndNonOSUpdateVisibilityOption", + "value": "delayOSUpdateVisibility,delayAppUpdateVisibility", + "children": [ + { + "dataType": 14, + "category": 41, + "nameResourceKey": "enforcedSoftwareUpdateDelayName", + "descriptionResourceKey": "enforcedSoftwareUpdateDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdatesEnforcedDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMinorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMinorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMinorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateNonOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateNonOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateNonOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + } + ], + "enabled": true + }, + { + "nameResourceKey": "delayAllUpdateVisibilityOption", + "value": "delayMajorOsUpdateVisibility,delayOSUpdateVisibility,delayAppUpdateVisibility", + "children": [ + { + "dataType": 14, + "category": 41, + "nameResourceKey": "enforcedSoftwareUpdateDelayName", + "descriptionResourceKey": "enforcedSoftwareUpdateDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdatesEnforcedDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMajorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMajorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMajorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateMinorOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateMinorOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateMinorOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true + }, + { + "dataType": 14, + "category": 41, + "nameResourceKey": "softwareUpdateNonOSDeferredInstallDelayName", + "descriptionResourceKey": "softwareUpdateNonOSDeferredInstallDelayDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "softwareUpdateNonOSDeferredInstallDelayInDays", + "booleanActions": 0, + "defaultValue": 30, + "policyType": 61, + "enabled": true } ], "enabled": true @@ -150,6 +479,7 @@ ], "entityKey": "updateDelayPolicy", "booleanActions": 0, + "defaultValue": "none", "policyType": 61, "enabled": true } @@ -253,6 +583,40 @@ "defaultValue": false, "policyType": 61, "enabled": true + }, + { + "dataType": 0, + "category": 41, + "nameResourceKey": "wallpaperModificationBlockedMacName", + "descriptionResourceKey": "wallpaperModificationBlockedMacDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "wallpaperModificationBlocked", + "booleanActions": 9, + "defaultValue": false, + "policyType": 61, + "enabled": true + }, + { + "dataType": 0, + "category": 41, + "nameResourceKey": "blockDeviceEraseContentAndSettingsMacOsName", + "descriptionResourceKey": "blockDeviceEraseContentAndSettingsMacOsDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "eraseContentAndSettingsBlocked", + "booleanActions": 9, + "defaultValue": false, + "policyType": 61, + "enabled": true } ], "options": [ diff --git a/Documentation/ObjectInfo/extensiblesinglesignon_macdevicefeatures.json b/Documentation/ObjectInfo/extensiblesinglesignon_macdevicefeatures.json index ad1f425..17ff126 100644 --- a/Documentation/ObjectInfo/extensiblesinglesignon_macdevicefeatures.json +++ b/Documentation/ObjectInfo/extensiblesinglesignon_macdevicefeatures.json @@ -41,38 +41,6 @@ "nameResourceKey": "singleSignOnExtensionTypeAzureAdOption", "value": "#microsoft.graph.macOSAzureAdSingleSignOnExtension", "children": [ - { - "dataType": 0, - "category": 56, - "nameResourceKey": "singleSignOnExtensionEnableSharedDeviceModeName", - "descriptionResourceKey": "singleSignOnExtensionEnableSharedDeviceModeDescription", - "childSettings": [ - { - "isSettingDescription": false, - "showAsSectionHeader": false, - "dataType": 8, - "category": 56, - "nameResourceKey": "singleSignOnExtensionSharedDeviceModeWarning", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 58, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "enableSharedDeviceMode", - "booleanActions": 9, - "defaultValue": false, - "policyType": 58, - "enabled": true - }, { "columns": [ { diff --git a/Documentation/ObjectInfo/scepproperties_macscep.json b/Documentation/ObjectInfo/scepproperties_macscep.json index 35ddd92..f3b154a 100644 --- a/Documentation/ObjectInfo/scepproperties_macscep.json +++ b/Documentation/ObjectInfo/scepproperties_macscep.json @@ -709,6 +709,22 @@ "booleanActions": 0, "policyType": 63, "enabled": true + }, + { + "dataType": 0, + "category": 96, + "nameResourceKey": "MacOSAllowAllAppsAccess", + "descriptionResourceKey": "MacOSAllowAllAppsAccess", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "allowAllAppsAccess", + "booleanActions": 2, + "policyType": 63, + "enabled": false } ] } diff --git a/Documentation/ObjectInfo/sharedpcaccountmanager_windows10sharedpc.json b/Documentation/ObjectInfo/sharedpcaccountmanager_windows10sharedpc.json index b992525..f6885e9 100644 --- a/Documentation/ObjectInfo/sharedpcaccountmanager_windows10sharedpc.json +++ b/Documentation/ObjectInfo/sharedpcaccountmanager_windows10sharedpc.json @@ -494,7 +494,6 @@ "entityKey": "accountDeletionPolicy", "booleanActions": 0, "defaultValue": "diskSpaceThreshold", - "unconfiguredValue": "diskSpaceThreshold", "policyType": 86, "enabled": true } diff --git a/Documentation/ObjectInfo/systemsecurity_complianceandroiddeviceowner.json b/Documentation/ObjectInfo/systemsecurity_complianceandroiddeviceowner.json index 9d72f98..b94cc04 100644 --- a/Documentation/ObjectInfo/systemsecurity_complianceandroiddeviceowner.json +++ b/Documentation/ObjectInfo/systemsecurity_complianceandroiddeviceowner.json @@ -430,6 +430,38 @@ "booleanActions": 0, "policyType": 31, "enabled": true + }, + { + "isSettingDescription": false, + "showAsSectionHeader": false, + "dataType": 8, + "category": 106, + "nameResourceKey": "complianceDeviceSecurityHeader", + "childSettings": [ + { + "dataType": 0, + "category": 106, + "nameResourceKey": "requireIntuneAppIntegrityName", + "descriptionResourceKey": "requireIntuneAppIntegrityDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "securityRequireIntuneAppIntegrity", + "booleanActions": 1, + "defaultValue": false, + "policyType": 31, + "enabled": true + } + ], + "options": [ + + ], + "booleanActions": 0, + "policyType": 31, + "enabled": true } ] } diff --git a/Documentation/ObjectInfo/usersandaccounts_androiddeviceownergeneral.json b/Documentation/ObjectInfo/usersandaccounts_androiddeviceownergeneral.json index 0d4d3b7..384e464 100644 --- a/Documentation/ObjectInfo/usersandaccounts_androiddeviceownergeneral.json +++ b/Documentation/ObjectInfo/usersandaccounts_androiddeviceownergeneral.json @@ -24,6 +24,23 @@ "defaultValue": false, "policyType": 2, "enabled": true + }, + { + "dataType": 0, + "category": 111, + "nameResourceKey": "certificateCredentialConfigurationDisabledName", + "descriptionResourceKey": "certificateCredentialConfigurationDisabledDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "certificateCredentialConfigurationDisabled", + "booleanActions": 3, + "defaultValue": false, + "policyType": 2, + "enabled": true } ], "options": [ @@ -74,23 +91,6 @@ "defaultValue": false, "policyType": 2, "enabled": true - }, - { - "dataType": 0, - "category": 111, - "nameResourceKey": "certificateCredentialConfigurationDisabledName", - "descriptionResourceKey": "certificateCredentialConfigurationDisabledDescription", - "childSettings": [ - - ], - "options": [ - - ], - "entityKey": "certificateCredentialConfigurationDisabled", - "booleanActions": 3, - "defaultValue": false, - "policyType": 2, - "enabled": true } ], "options": [ diff --git a/Documentation/ObjectInfo/vpn_androiddeviceownervpn.json b/Documentation/ObjectInfo/vpn_androiddeviceownervpn.json index bd0b67b..165440e 100644 --- a/Documentation/ObjectInfo/vpn_androiddeviceownervpn.json +++ b/Documentation/ObjectInfo/vpn_androiddeviceownervpn.json @@ -179,54 +179,6 @@ "nameResourceKey": "derivedCredentialsOption", "value": "derivedCredential", "enabled": false - }, - { - "nameResourceKey": "derivedCredentialsOption", - "value": "derivedCredential", - "children": [ - { - "dataType": 9, - "category": 120, - "childSettings": [ - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsSearchingForTenantLevel", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - }, - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsTenantLevelNotConfigured", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "derivedCredentialSettings@odata.bind", - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "enabled": true } ], "entityKey": "authenticationMethod", @@ -432,54 +384,6 @@ "nameResourceKey": "derivedCredentialsOption", "value": "derivedCredential", "enabled": false - }, - { - "nameResourceKey": "derivedCredentialsOption", - "value": "derivedCredential", - "children": [ - { - "dataType": 9, - "category": 120, - "childSettings": [ - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsSearchingForTenantLevel", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - }, - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsTenantLevelNotConfigured", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "derivedCredentialSettings@odata.bind", - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "enabled": true } ], "entityKey": "authenticationMethod", @@ -685,54 +589,6 @@ "nameResourceKey": "derivedCredentialsOption", "value": "derivedCredential", "enabled": false - }, - { - "nameResourceKey": "derivedCredentialsOption", - "value": "derivedCredential", - "children": [ - { - "dataType": 9, - "category": 120, - "childSettings": [ - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsSearchingForTenantLevel", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - }, - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsTenantLevelNotConfigured", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "derivedCredentialSettings@odata.bind", - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "enabled": true } ], "entityKey": "authenticationMethod", @@ -938,54 +794,6 @@ "nameResourceKey": "derivedCredentialsOption", "value": "derivedCredential", "enabled": false - }, - { - "nameResourceKey": "derivedCredentialsOption", - "value": "derivedCredential", - "children": [ - { - "dataType": 9, - "category": 120, - "childSettings": [ - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsSearchingForTenantLevel", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - }, - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsTenantLevelNotConfigured", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "derivedCredentialSettings@odata.bind", - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "enabled": true } ], "entityKey": "authenticationMethod", @@ -1191,54 +999,6 @@ "nameResourceKey": "derivedCredentialsOption", "value": "derivedCredential", "enabled": false - }, - { - "nameResourceKey": "derivedCredentialsOption", - "value": "derivedCredential", - "children": [ - { - "dataType": 9, - "category": 120, - "childSettings": [ - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsSearchingForTenantLevel", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - }, - { - "dataType": 10, - "category": 120, - "nameResourceKey": "derivedCredentialsTenantLevelNotConfigured", - "childSettings": [ - - ], - "options": [ - - ], - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "options": [ - - ], - "entityKey": "derivedCredentialSettings@odata.bind", - "booleanActions": 0, - "policyType": 8, - "enabled": true - } - ], - "enabled": true } ], "entityKey": "authenticationMethod", diff --git a/Documentation/ObjectInfo/vpn_iosvpn.json b/Documentation/ObjectInfo/vpn_iosvpn.json index dcec05b..801bc44 100644 --- a/Documentation/ObjectInfo/vpn_iosvpn.json +++ b/Documentation/ObjectInfo/vpn_iosvpn.json @@ -23062,7 +23062,7 @@ "enabled": true } ], - "enabled": true + "enabled": false }, { "nameResourceKey": "certificatesOption", @@ -23152,7 +23152,7 @@ "enabled": true } ], - "enabled": true + "enabled": false } ], "entityKey": "authenticationMethod", @@ -23268,7 +23268,7 @@ "enabled": true } ], - "enabled": true + "enabled": false }, { "nameResourceKey": "certificatesOption", @@ -23358,7 +23358,7 @@ "enabled": true } ], - "enabled": true + "enabled": false }, { "nameResourceKey": "sharedSecretName", diff --git a/Documentation/ObjectInfo/wifi_androidforworkwifi.json b/Documentation/ObjectInfo/wifi_androidforworkwifi.json index a38137a..d9088e4 100644 --- a/Documentation/ObjectInfo/wifi_androidforworkwifi.json +++ b/Documentation/ObjectInfo/wifi_androidforworkwifi.json @@ -3280,6 +3280,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { @@ -3454,6 +3491,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { @@ -3697,6 +3771,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { @@ -4052,6 +4163,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { @@ -4226,6 +4374,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { @@ -4469,6 +4654,43 @@ "policyType": 19, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 19, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 19, + "enabled": true + }, { "complexOptions": [ { diff --git a/Documentation/ObjectInfo/wifi_androidwifi.json b/Documentation/ObjectInfo/wifi_androidwifi.json index 9d8e740..1602a34 100644 --- a/Documentation/ObjectInfo/wifi_androidwifi.json +++ b/Documentation/ObjectInfo/wifi_androidwifi.json @@ -143,6 +143,43 @@ "policyType": 26, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 26, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 26, + "enabled": true + }, { "complexOptions": [ { @@ -317,6 +354,43 @@ "policyType": 26, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 26, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 26, + "enabled": true + }, { "complexOptions": [ { @@ -565,6 +639,43 @@ "policyType": 26, "enabled": true }, + { + "columns": [ + { + "metadata": { + "dataType": 20, + "category": 112, + "nameResourceKey": "empty", + "descriptionResourceKey": "empty", + "emptyValueResourceKey": "trustedServerCertificateNameExample", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNamesName", + "booleanActions": 0, + "policyType": 26, + "enabled": true + } + } + ], + "dataType": 21, + "category": 112, + "nameResourceKey": "trustedServerCertificateNamesName", + "descriptionResourceKey": "trustedServerCertificateNamesDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "trustedServerCertificateNames", + "booleanActions": 0, + "policyType": 26, + "enabled": true + }, { "complexOptions": [ { diff --git a/Documentation/ObjectInfo/wireless_iosgeneral.json b/Documentation/ObjectInfo/wireless_iosgeneral.json index e691096..b55a950 100644 --- a/Documentation/ObjectInfo/wireless_iosgeneral.json +++ b/Documentation/ObjectInfo/wireless_iosgeneral.json @@ -479,6 +479,23 @@ "defaultValue": false, "policyType": 46, "enabled": true + }, + { + "dataType": 0, + "category": 116, + "nameResourceKey": "wiFiToAllowedNetworksOnlyForcedName", + "descriptionResourceKey": "wiFiToAllowedNetworksOnlyForcedDescription", + "childSettings": [ + + ], + "options": [ + + ], + "entityKey": "wiFiConnectToAllowedNetworksOnlyForced", + "booleanActions": 9, + "defaultValue": false, + "policyType": 46, + "enabled": true } ], "options": [ diff --git a/Documentation/Strings-en.json b/Documentation/Strings-en.json index 2f11810..38ebd18 100644 Binary files a/Documentation/Strings-en.json and b/Documentation/Strings-en.json differ diff --git a/Extensions/EndpointManager.psm1 b/Extensions/EndpointManager.psm1 index 547aa87..65aac21 100644 --- a/Extensions/EndpointManager.psm1 +++ b/Extensions/EndpointManager.psm1 @@ -1,4 +1,5 @@ <# +<# .SYNOPSIS Module for managing Intune objects @@ -10,7 +11,7 @@ This module is for the Endpoint Manager/Intune View. It manages Export/Import/Co #> function Get-ModuleVersion { - '3.1.11' + '3.1.12' } function Invoke-InitializeModule @@ -117,12 +118,28 @@ function Invoke-InitializeModule ViewID = "IntuneGraphAPI" API = "/identity/conditionalAccess/policies" Permissons=@("Policy.Read.All","Policy.ReadWrite.ConditionalAccess","Application.Read.All") - Dependencies = @("NamedLocations","Applications") + Dependencies = @("NamedLocations","Applications","TermsOfUse") GroupId = "ConditionalAccess" ImportExtension = { Add-ConditionalAccessImportExtensions @args } PreImportCommand = { Start-PreImportConditionalAccess @args } }) + if((Get-SettingValue "PreviewFeatures" $false) -eq $true) + { + Add-ViewItem (New-Object PSObject -Property @{ + Title = "Terms of use" + Id = "TermsOfUse" + ViewID = "IntuneGraphAPI" + ViewProperties = @("id", "displayName") + Expand = "files" + QUERYLIST = "`$expand=files" + API = "/identityGovernance/termsOfUse/agreements" + Permissons=@("Agreement.ReadWrite.All") + PreImportCommand = { Start-PreImportTermsOfUse @args } + GroupId = "ConditionalAccess" + }) + } + Add-ViewItem (New-Object PSObject -Property @{ Title = "Named Locations" Id = "NamedLocations" @@ -777,6 +794,27 @@ function Invoke-FilterBoxChanged $dgObjects.ItemsSource.Filter = $filter $dgObjects.ItemsSource.Refresh() } + + $allObjectsCount = 0 + if($dgObjects.ItemsSource.SourceCollection) + { + $allObjectsCount = $dgObjects.ItemsSource.SourceCollection.Count + } + + $objCount = ($dgObjects.ItemsSource | measure).Count + if($objCount -gt 0) + { + $strAllObjectsInfo = "" + if($allObjectsCount -gt $objCount) + { + $strAllObjectsInfo = " ($($allObjectsCount))" + } + $global:txtEMObjects.Text = "Objects: $objCount$strAllObjectsInfo" + } + else + { + $global:txtEMObjects.Text = "" + } } #region Endpoint Security (Intents) functions @@ -2491,4 +2529,50 @@ function Start-PreImportConditionalAccess } #endregion +#region Terms of use +function Start-PreImportTermsOfUse +{ + param($obj, $objectType, $file, $assignments) + + $pkgPath = Get-SettingValue "EMIntuneAppPackages" + + if(-not $pkgPath -or [IO.Directory]::Exists($pkgPath) -eq $false) + { + Write-Log "Intune app directory is either missing or does not exist" 2 + } + + try + { + $fi = [IO.FileInfo]$file + } catch {} + + foreach($file in $obj.Files) + { + $pdfFile = $null + + if($fi.Directory.FullName) + { + $pdfFile = "$($fi.Directory.FullName)\$($file.fileName)" + } + + if($null -eq $pdfFile -or [IO.File]::Exists($pdfFile) -eq $false) + { + $pdfFile = "$($pkgPath)\$($file.fileName)" + } + + if([IO.File]::Exists($pdfFile) -eq $false) + { + Write-Log "Terms of use file $($file.fileName) not found. The Terms of Use object will not be imported." 2 + @{"Import" = $false} + return + } + + $bytes = [IO.File]::ReadAllBytes($pdfFile) + $file.fileData = [PSCustomObject]@{ + data = [Convert]::ToBase64String($bytes) + } + } +} +#endregion + Export-ModuleMember -alias * -function * \ No newline at end of file diff --git a/Extensions/IntuneAssignments.psm1 b/Extensions/IntuneAssignments.psm1 index cd23ec0..5f76f29 100644 --- a/Extensions/IntuneAssignments.psm1 +++ b/Extensions/IntuneAssignments.psm1 @@ -9,7 +9,7 @@ Module for listing Intune assignments #> function Get-ModuleVersion { - '1.0.0' + '1.0.1' } function Invoke-InitializeModule @@ -59,8 +59,8 @@ function Show-EMToolsIntuneAssignments $dlgSave = New-Object -Typename System.Windows.Forms.SaveFileDialog #$dlgSave.InitialDirectory = Get-SettingValue "IntuneRootFolder" $env:Temp $dlgSave.FileName = $obj.FileName - $sf.DefaultExt = "*.csv" - $sf.Filter = "CSV (*.csv)|*.csv|All files (*.*)| *.*" + $dlgSave.DefaultExt = "*.csv" + $dlgSave.Filter = "CSV (*.csv)|*.csv|All files (*.*)| *.*" if($dlgSave.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK -and $dlgSave.Filename) { $script:objAssignments | Select Name, Type, IncludedString, ExcludedString | ConvertTo-Csv -NoTypeInformation | Out-File -LiteralPath $dlgSave.Filename -Encoding UTF8 -Force @@ -123,13 +123,22 @@ function Get-EMIntuneAssignments Write-Status "Collect exported assignments" + $intuneViewObj = $global:viewObjects | Where { $_.ViewInfo.ID -eq "IntuneGraphAPI" } + $script:objAssignments = @() foreach($fileObj in $script:fileArr) { + $objectType = $null + $folderName = $fileObj.FileInfo.Directory.Name + if($folderName) + { + $objectType = $intuneViewObj.ViewItems | Where Id -eq $folderName + } + $obj = New-Object PSObject -Property @{ Object = $fileObj.Object - Name = $fileObj.Object.DisplayName + Name = $fileObj.Object."$((?? $objectType.NameProperty "displayName"))" Type = $null Included = $null Excluded = $null diff --git a/Extensions/MSGraph.psm1 b/Extensions/MSGraph.psm1 index fa94a6d..78ddc75 100644 --- a/Extensions/MSGraph.psm1 +++ b/Extensions/MSGraph.psm1 @@ -10,7 +10,7 @@ This module manages Microsoft Grap fuctions like calling APIs, managing graph ob #> function Get-ModuleVersion { - '3.1.6' + '3.1.7' } $global:MSGraphGlobalApps = @( @@ -215,6 +215,9 @@ function Invoke-GraphRequest $ODataMetadata = "full", # full, minimal, none or skip + [switch] + $AllPages, + [switch] $NoError ) @@ -288,21 +291,60 @@ function Invoke-GraphRequest $Url = $Url -replace "%OrganizationId%", $global:Organization.Id } - ### !!! - ### @odata.nextLink - ToDo: Support for paging - ### https://docs.microsoft.com/en-us/graph/paging + <# + if($AllPages) + { + # Code to test paging - Force each page to size specified in top parameter below + # Kept for reference + + if(($url.IndexOf('?')) -eq -1) + { + $url = "$($url.Trim())?" + } + else + { + $url = "$($url.Trim())&" + } + $url = "$($url.Trim())`$top=20" + } + #> $ret = $null try { Write-LogDebug "Invoke graph API: $Url (Request ID: $requestId)" - $ret = Invoke-RestMethod -Uri $Url -Method $HttpMethod @params - if($? -eq $false) + $allValues = @() + do { - throw $global:error[0] + $ret = Invoke-RestMethod -Uri $Url -Method $HttpMethod @params + if($? -eq $false) + { + throw $global:error[0] + } + + if($HttpMethod -eq "PATCH" -and [String]::IsNullOrempty($ret)) + { + $ret = $true; + break; + } + elseif($AllPages -eq $true -and $HttpMethod -eq "GET" -and $ret.value -is [Array]) + { + $allValues += $ret.value + if($ret.'@odata.nextLink') + { + $Url = $ret.'@odata.nextLink' + } + } + else + { + break + } + } while($ret.'@odata.nextLink') + + if($allValues.Count -gt 0 -and $ret.value -is [Array]) + { + $ret.value = $allValues } - - if($HttpMethod -eq "PATCH" -and [String]::IsNullOrempty($ret)) { $ret = $true } } catch { @@ -354,7 +396,12 @@ function Get-GraphObjects { $url = "$($url.Trim())&$($objectType.QUERYLIST.Trim())" # Risky...does not check that the parameter is already in use } - } + } + + if($SingleObject -ne $true) + { + $params.Add('AllPages',$true) + } $graphObjects = Invoke-GraphRequest -Url $url @params @@ -453,18 +500,52 @@ function Show-GraphObjects } $tableColumns = @() - # Add other columns - foreach($prop in ($tmpObj.PSObject.Properties | Where {$_.Name -notin @("IsSelected","Object","ObjectType")})) + + $additionalColumns = @() + $additionalColsStr = Get-Setting "EndpointManager\ObjectColumns" "$($global:curObjectType.Id)" + if($additionalColsStr) { - $binding = [System.Windows.Data.Binding]::new($prop.Name) + $additionalColumns += $additionalColsStr.Split(',') + } + + if($additionalColumns.Count -eq 0 -or $additionalColumns[0] -ne "0") + { + # Add default columns + foreach($prop in ($tmpObj.PSObject.Properties | Where {$_.Name -notin @("IsSelected","Object","ObjectType")})) + { + $binding = [System.Windows.Data.Binding]::new($prop.Name) + $column = [System.Windows.Controls.DataGridTextColumn]::new() + $column.Header = $prop.Name + $column.IsReadOnly = $true + $column.Binding = $binding + + $tableColumns += $prop.Name + $dgObjects.Columns.Add($column) + } + } + + # Add custom columns + foreach($additionalCol in $additionalColumns) + { + if($additionalCol -eq "0" -or $additionalCol -eq "1") { continue } + + $bindingProp,$colHeader = $additionalCol.Split('=') + + if(-not $colHeader) + { + $colHeader = $bindingProp + } + + $binding = [System.Windows.Data.Binding]::new("Object.$($bindingProp)") $column = [System.Windows.Controls.DataGridTextColumn]::new() - $column.Header = $prop.Name + $column.Header = $colHeader $column.IsReadOnly = $true $column.Binding = $binding - $tableColumns += $prop.Name + $tableColumns += $colHeader $dgObjects.Columns.Add($column) } + $ocList = [System.Collections.ObjectModel.ObservableCollection[object]]::new($graphObjects) $dgObjects.ItemsSource = [System.Windows.Data.CollectionViewSource]::GetDefaultView($ocList) } @@ -492,6 +573,7 @@ function Show-GraphObjects function Clear-GraphObjects { $global:txtFormTitle.Text = "" + $global:txtEMObjects.Text = "" $global:grdTitle.Visibility = "Collapsed" $global:grdObject.Children.Clear() $global:dgObjects.ItemsSource = $null diff --git a/README.md b/README.md index e605c73..56b57d3 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,48 @@ Additional Intune Tools is included in the script. See [ADMX Import](ADMXImport.md) for more information about the ADMX tools +## Columns + +Custom columns is supported. The script will by default add id, displayName and description with exception for some object types. These are configured in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files. + +Custom columns can be added for each Object Type. This must be added manually into the registry, in HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\\*ObjectType*. + +The *ObjectType* value represents the ViewItem ID specified in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files. This is also the same as the parent folder when items are exported. + +The REG_SZ value has the following syntax: + +[0|1],Property1[=Header1],Property2[=Header2],... + +0|1 - Optional value specifying if columns are added or replacing default columns + +0 = Replace default columns with columns specified in the registry value +1 = Add columns specified in the registry to the default columns. This is default setting. + +PropertyX - Property to display. View an object to see available properties + +HeaderX - Optional value for the column header. Property name will be used if this is not specified. + +**Note:** Some object types returns multiple object types, @OData.Type. If a custom column is added but the property does not exist on all the object types that were returned, the columns will be empty. The code will **not** break if the property is missing on one or more returned objects. + +The script does not require a restart. Columns are generated when the object type is selected in the menu. + +**Example 1:** +Reg key: HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\DeviceConfiguration + +REG_SZ value: **lastModifiedDateTime** + +This will add the **lastModifiedDateTime** to the existing columns. + +**Example 2:** + +Reg key: HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\TermsOfUse + +REG_SZ value: 0,id=Id,displayName=Name,files[0].displayName=Display Name + +This will replace the default columns and add new columns with specific header. + +**Note:** Sub-properties are supported e.g. **files[0].displayName**. This will add a column based on the first object in the files property. + ## Change log See [Change Log](ReleaseNotes.md) for more information @@ -155,6 +197,7 @@ See [MSAL Info](MSALInfo.md) for more information about authentication * Scope Tags * Scripts (PowerShell and Shell scripts, supports download of script) * Terms and Conditions +* Terms of Use * Update Policies @@ -204,6 +247,8 @@ Logout will only clear the token from cache and not from the browser e.g. if log Referenced settings will NOT be imported/copied. There is no value stored in a property on the object for these settings. Example: A VPN profile has certificates as referenced properties. The certificates must be added manually after import/copy. +Terms of Use requires that the pdf file is available. This must be manually coped to either the Export folder for Terms of Use or to the Intune Application folder specified in Settings. It is currently not possible to export the pdf file with Graph API. + See [Documentation](Documentation.md) for issues regarding the documentation process. ## TIP diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 5293e28..6b531d9 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,5 +1,34 @@ # Release Notes +## 3.2.3 - 2021-10-07 + +**New features** + +- Added support for Terms of Use Export/Import. + This requires that the pdf file is available during import, in either the export folder or the Intune App folder. This is added as a Known Issue in [Readme](README.md). + + **Note:** This is in preview and it requires that the Preview option in Settings is enabled and then a script restart. This will most likely generate a new consent prompt. + This is based on [Issue 27](https://github.com/Micke-K/IntuneManagement/issues/27) + +- All objects are returned + + This might take long time in huge environments. + Please report feedback on how this works in environments with 1000+ objects e.g. does it take too long time, memory issues etc. + This is based on [Issue 29](https://github.com/Micke-K/IntuneManagement/issues/29) + +- Added support for custom columns + This must be manually added to the registry. + + See [Readme](README.md#Columns) on how to use this + This is based on [Issue 30](https://github.com/Micke-K/IntuneManagement/issues/30) + +- Object count will be displayed + +**Fixes** + +* Fixed minor bugs in IntuneAssignments - Support Name for objects that don't use displayName +* Regenerated documentation and language files - New properties for the iOS Device Restriction profile is now supported + ## 3.2.2 - 2021-09-23 **New features** diff --git a/Xaml/EndpointManagerPanel.xaml b/Xaml/EndpointManagerPanel.xaml index 529c561..dc6e2c2 100644 --- a/Xaml/EndpointManagerPanel.xaml +++ b/Xaml/EndpointManagerPanel.xaml @@ -39,13 +39,22 @@ - -