From 5976b0bffd107bddda8b55c0af6e270525ffbb04 Mon Sep 17 00:00:00 2001 From: Mikael Karlsson <43226266+Micke-K@users.noreply.github.com> Date: Thu, 7 Oct 2021 20:06:31 +1100 Subject: [PATCH] 3.2.3 --- Core.psm1 | 10 +- Documentation/ObjectCategories.json | 1 + ...pplications_androiddeviceownergeneral.json | 106 +++++ .../applicationsandgames_iosgeneral.json | 17 + .../applicationsandgames_macgeneral.json | 69 ++++ .../ObjectInfo/builtinapps_iosgeneral.json | 17 + .../customconfiguration_maccustom.json | 27 ++ ...loitguard_windows10endpointprotection.json | 24 +- ...eexperience_androiddeviceownergeneral.json | 169 ++++++++ ...evicehealth_complianceaospdeviceowner.json | 19 + ...estrictions_androiddeviceownergeneral.json | 50 +++ ...icerestrictions_aospdeviceownerdevice.json | 55 +-- .../devicerestrictions_iosgeneral.json | 4 +- .../devicerestrictions_macgeneral.json | 368 +++++++++++++++++- ...ensiblesinglesignon_macdevicefeatures.json | 32 -- .../ObjectInfo/scepproperties_macscep.json | 16 + ...redpcaccountmanager_windows10sharedpc.json | 1 - ...security_complianceandroiddeviceowner.json | 32 ++ ...andaccounts_androiddeviceownergeneral.json | 34 +- .../ObjectInfo/vpn_androiddeviceownervpn.json | 240 ------------ Documentation/ObjectInfo/vpn_iosvpn.json | 8 +- .../ObjectInfo/wifi_androidforworkwifi.json | 222 +++++++++++ .../ObjectInfo/wifi_androidwifi.json | 111 ++++++ .../ObjectInfo/wireless_iosgeneral.json | 17 + Documentation/Strings-en.json | Bin 2330386 -> 2357980 bytes Extensions/EndpointManager.psm1 | 88 ++++- Extensions/IntuneAssignments.psm1 | 17 +- Extensions/MSGraph.psm1 | 112 +++++- README.md | 45 +++ ReleaseNotes.md | 29 ++ Xaml/EndpointManagerPanel.xaml | 23 +- Xaml/Icons/TermsOfUse.xaml | 6 + Xaml/ObjectPicker.xaml | 21 + 33 files changed, 1598 insertions(+), 392 deletions(-) create mode 100644 Documentation/ObjectInfo/applicationsandgames_macgeneral.json create mode 100644 Documentation/ObjectInfo/devicehealth_complianceaospdeviceowner.json create mode 100644 Xaml/Icons/TermsOfUse.xaml create mode 100644 Xaml/ObjectPicker.xaml 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 2f1181085cebd5fbe96ed3d84c451e486b597d62..38ebd18d041bd00282190ae19a969e69094c4c78 100644 GIT binary patch delta 9077 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 A+yDRo delta 2264 zcmccfwV!d)ygtSab6Q2K84MX}8FUyF81fm47!(+)8H^ZeCpS*doqm8_nq_)}9J|o; z2@jO{He0l95u46d$5=Ai;90=r3l1jJ=hZ85ZH}4e6*Ya&LMFb=8vjj%7>lMmCNQdQ zZxCc;lA9hD%eZY~0>}0PhKz@pC%@U$T^FSyk;eSr`o%k(`(a(vsTIWbORoIWLrQEa=93*#!r>H7j1xu)~E zF$!((ac5k`GX2jX)4eO(fx1Iu)W z3`T+N^U@jbu`xPNkI$9&oF1Skpf-KMWO=^rzw#JU7`N*bGVWrW9#_C9HGM)cdFcY%PX#b3F-;dxWa5~<&6ZJwKN#dIh5`md z27iVehLq{P?VRG%U-5Hti5oKLF(@!NG2}4hGbA%)gA)WuMQ=N&^z=K=9w( zEn&!DNMtBsP+&-5$e%9wM@)FKNwvV_2jx=J1=?jzraKh!@PMrngjr?8;LDK6kjaoU z{a`eUq_`4;5!j{>hI|GEh9sDM(-rFkgr~b)W|Em+;w&sPecc&usp%ZEBE?m}4oFFGWeOr;d#PlQ+4y)-4=5w=5pU20^v;9X9 z)3VjuS^hIgX-w~X&BC_4N1a(rwH)L|h8(c*`3#@{1vxL3L4g63BnlXE7!nzhrx&US ziB4BAU}IrapFYu!S#i3bmjv77Gs!%P>I@1DWek}NsSM>%4;C?0GAJ-)f+De zSZ3$#5q8WPI@<-ZnLQYVQyB6Ya>0R<$571R#sE^JSjr^H3kn*zfw^*epuW85beWm#P9Sl1UxrkMJciQgfrfID(*s(ic&4-6U~-$D za7B`9`@3VzZo<<8L^wpID+#d(O;>PWQkd@G!^Ae-?mn}^^pxM?D$Mx|xzh{3@k+86 zL&9si;A=Ty{zPy*gW@=oA)O&_x?l*a@N~W(3T)FaxbkyMZ^#i~;RO{}h?FzYl2IDu zS}|rl28HP#{a8h(&*PU8nf_o2AJ6nxavU1d3nnVDO;35lEySO}kk3%e0E$$wm#5d; zGY4}bj54%g6rWynhRJFAg)~l<>8})|g&^*qv`b!W`iu|kLenjdG9^rQSji=t$&km8 z&JfIy%22{k!T{kFPuKm;tU7(l2X--#Lb2&R`2rl%rpk#-=h2oHn0}yHf@Aue7A6kH zkm-#*OzwEh@o!*KoR-eaHC<|L-1g3v;DrLFI-|% znw}sl&a&M`jiu-4^ng{I$EG*vD=(Wo;R4I_3vC=i?OQ&uY~S*Mm8X63h0?g`4>H*T zrU!geW|`K;#x?z2B0I-)8+OK=_GwjY+ox5rFIhODk zU@?OdgB61Ug93vRLkK9JPM=uEVLtr>n>5RIgVh`}nx^j&WZ_{BU~rzU7|kd;UBH4< zVEQ{l&Z_ANVH|wZb0%_fO+UlUDztr>9;b=H_L6wcv=8kI0=e231afa*5XiH|Yr24( zu+a1bYaX8I6E1VJO@CLw!_mHFAy503g}mFhEaW@%Xu4l3zr%DUZ5fs6H`Yq=Ol#%$ zY1ioD->%UmP;hO!z)yajY47>@rWZ8Ha!fz+QdDlbfSEMQ^c!oW1O!1PM;^F{NnuE2 zsAMRfF1wXacKU_Q@?z8HFbX+LpKy|uZ@NH=pviW>B*75o={8wXGVSM51>4W13T;1^ zDjeWG-Rh>W!1M{nxmBi5*vZY&{@|K$`-5vD+aFvL-DcS?ASAY3KuG+6dwW!jczaZg z#P+Bd$p)3}WlfT9_onYT#mu+;T9y>gd`?h)EM_QTD4QdB!pNq{pvR!E&@Q4X-7cakvt2}0_S)v@0(o3Q)Bo_uc}!P0#^p49 z!y{R->C0})ewu#ko~+39JSJX?cDZ}9?Q-|z+U4%ax69pA*e-WZ@!P!V8=f+Av@few L+P 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 @@ - -