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 zcmd^Edwf*Yoxf-9&7C`U?#$eIXC{-$odDq>gaiTwmc|4^5F{Zy3@xB0yukn=1PGL3 zplA?VHZYQ}Sj3>%Pit8WV!f178vCiNtuCL$ZM9lT1NPHx72Wu#%TkN`J2MGMD74VE z`_F#(Tr&5bbAIpl*>hkQJNw6fW-a?4u&owq1Vi|WkbCUe2POycv6QJp|5Hq|4Wy4b z!dHcX`0Q{-5Hqu)9)C7%y-QdtET+GFJvXslSStE)SWc;qA9!Mt+}9Ya_YEl2G> z$WKd7yuVNM;kA3kx!AVVUVv7gr5ep|dL-x%$9zqt)>Kpvw)EcHGQ{#I8o!;gC2l;J z3Vmis!Nq-Iz-ADm%Zc{;;<>+gI^O)|3VMn;wdi=z(2&2);yhM%DbIt=tpN@DOIRw} zO4)ui``Gq)!9mF+4$eieWuLC1+#>~0|DEVmj%YJlWl@i}{WgG>pN3_u7{n&@-R4Ax zg{_Zw))mL~GdqzV$dt{?gV_iXMt}SG1dQDkQd6KG0e!_n@((Zr1z8pqTkf|grgIo8 zl_2M^@zAFzrCbK<6PvFzX<-!Q5~Y06+?2~Mi1C8|=9mf+8{S_aYIu1h8xp^=W($4I z;rKZ-*ldkD%|oNv9%fHkK#5Q+6e8`rQplV(hCRbX`iv(gu>m+T-B#R1qufJd^H^4X zb&si!V~0s~53uLZ{Du}G(fe@fZBfRK@hlIeQT8ZdAByHX*`ql5u;?)d6)>NOaAR7M zeN=2T0*O;x0A||+Rwkikx~+&aTi1j2%v9zvos-!a3oOI@0c@HZ_1M>vURTmnB~)T} zM|ub^{LD&pN0y?7$%3M+Fpj)r7Wv9T zVI8)XumSPR{4laFJMz1UO7KRdHq(lg-Ro?3~ONnrtpR&#?b) z7Dj=EoT=dX6bb#;WP0%O-K-YXbBTc=^O$a4n8!{qIiPEyPynAVG^E8}DZ<9?-5tSa{^DBo-GVAmO&jQXi|1#O!(4_Y3} zkk|&yIGyT6*(y=OJ8zM3969Ka-IXMlB;@%*rZABlti8$NMe!=piOo}pg*|mV%-my0 z@sIbf-(3-oxBj#iolldNI+sQjlZ5t8gLN9QxQcA(V5j_4GDfz3&80zqgM@kEB0CGM zD(WFzs}ekP?H20540jOkyvM!`qh5@nVx=OZ;&I~V#DB7y8yza_WKW?*O6^a}j%ut+n*NR;Y!$MI4Lz zcT*`QeweD6M|O#Ma=hYh#mbF~)5i9R>8|U-IsHjW06=s-jZ`}BWgijfTpVlf$(v8KbYE!_fAZLZ# z3p@%Q6;<;P#6}IB6Ksn4+o#21FAAnwRdar;*r5~ev8k2;aF#n%e=_mhnCj-0839!P zyQrJx?c$J;$ht!@Y|Dw`#biXa7(OmE5pALrHtQv6MGDTo63ju)wsh56MJlZn7UAGd zryplTrnobOIrObYxQ~)Va;@-$6vVi%DcO{H6Q^>!R)i_t7{~%@g^i>j9>@*)dku{E zy^0^pa+EAnSEc7(iq}569&MLw9$T(3iOQsDO2eq$os)UW$n(gwUEfA4#{L4-%kIKmkv(9De z$ayU+#RrYhQU*~mHW=;AEQF5D9tEGwwCgCoC&M|9L#!lK8U$+{VO^NO#8sONdCN#5 z>xiCZv|~N}uA(;{wha2UoOW|sc#2&`dxp~2q}m1vBM9G`cMU)GkBTXHeJv27^$ zlT}X{DU23Iq5UJ9AJqYyj#AyW2^E7W7uLV0sF;6I@|d#2mY0LJv9#PglFHcU3|ltz zeY%F(8dXMRclaf9+!t+2Iz?{mF0VJ_E+VFD>6w@i8VMilMR9Obo}FBFvQI(((GnHR z(wodUn2@`22exuFqIy=**r{peyTV{ zSPix$GzwQ7A;rc8%x$n1&u;Vhabc-F3;OYZfwKHa7CJ7fI@+!TJZub(rZ_55wnmd- z)MT7{waYp zExFF!G3hQ>_mHdfMHIRo$Wl&I54iMhaMLLX^#Hv-<&Hi8dw^KGfLtGcw`7tm^}^qL zAt0wEL(wf@?*f;^&OxLkKwN{n;qp9}d3l~*`#L&<&Qu(BIDIJC>Y{#ZQczAAOMUTR z{NO=HIy8TZjv_4_z^dQ)L_=f zxnrbzwunF;y;m#?Q!$~1eF+c^mqxqk@tBuJd&?%{Nr&vS7E*Mhcn5cTB#4WTIm4*0 zw99CHBTYp?dr-rH5}y)WmvE<=L@ed;kf)N>!V;V>bl-;lb2G+Z=YLSOq?EX+d~T1* zXfCB9zvIiAOGLZOHVnzi>{mGYUPN-**=WL!M0sW`DIO||lbw3H5VB5gg)t{x=y zqaK+^r@b2~W!*SC;%Cz=(K!FiJKQjsNFoT%Q$;PPo*L`G66YT zyr~KJp(!K>9+-GO93P-qeQE)h@;y^#bIAo(95h?Lv%`S(Z4Mm|n#fy_Q zAtnAyo{GREiCXO`itOsn+R4v&{6(}PKn*<@1_$&z@Z%FEz7Y<=D0$DW6%jPu+cjNt4JRq-YVV96cHvYMK< z)9GH+pA1PZYK`eU4+K0pWW)Wqi;DRa&N`1t3VyfLJGBR1N&+4}c;AtW>gQZe>{{ti z(0B(;UueE3@BLYtCoPGxcYDT@A)h1HBKEG^kK$K-9-MkiBj6dbjx(A}we@Kljq$u_ z=lZ*gbjNcX71%)+cYJ=@5E78%M~8U53%iSTQqdxTAGw)SdaDYNvIV;V<5ya*B-AB= z+y5)AA3F9^!}vGNLdCfUSpGGN=>o&%rF$9G_{Sn&ME)RZQ=8L#GD{|+E_?2-F_P6k z*(KbIGX1E(*E|H+9y_T{g&x`zeg7<}Mv0ICJ+23Qo%@e6gJ5Wp4 z5f?R@n2-6M!-@RwlWDabqnX~5FM0Z7+iWfKRwa6!s-dqWN*0GQxLlp+OwW+;d`*Zt zIgejL^hW^&ay`?#_7DG_!+!&YG3ZsfpvS~*WYxUz5vCybUwuLJ-=Sur{w1G^llRB; zy-~{2&Ove%o3=&_YEu8v6&a}`_byg=jXhjTBA!=&R^da$3lPaqUg} z>Hn_ey^f9b`SeE6cd7kSl4X52L0tydR_~3X@hN+MH14%44coVP>G7G{xASr-i%!4w)lp8AlYZpT;n)#XQu^Ll#*qI!w$bgU+;+9(XC|9Py7 zop5-u;soWzY>~RClS3qxu4=0ZHlGQ!zu}w2;mHl-j{D7V#{;dC(eg=v`pC}$x_x$+ zZLg(X^zP3BLA3li@C**E4(M2NC9nn3a{rf*^ETzf>usORcLs1E#g>nP4NPjd^jUzO zpn2)D)NTDy-6+ysWVPnR`fY9jks)XvPOpA0#}@8#AGpq#!>D;e@S{`M8tuTsCcyEJ>Tals&1fNlcN87QFRmW zH@W%?QFWi}J>=q|8pxaORiC4ntX%F_r*;*m!g&=AQThFJc$``BWOz%+?D#==1ViUuNuoN^5E@c{7^Wx9 zO#NZx^0WYYMzooO-D-y?Mm zC=y@-WhqW*MFe$_;?}UrM$@LcA9*yI$MpqiJV|5J>J8~eZ|cr>cn82Z9_#|~`UV>H zeAw(*k=!_UxAq`T)~0W7*uOTNo+v#T^cd#;wXrb=`dkUjuw};Z`ekdF-wTXJ%eXYP P;jBB;JnQZ^`m6r~H~CWB delta 2264 zcmaJ?YitzP6`ngYJDy#yXJ=>EyY_m$-t_~VLh+ie2skd?*o21*j$K?ti2=Wj!Pv$R z2=9diZ-rcHGs%8LLXIs(Mj;7uWS1+5MGY!cB?xUog$Rlq7qyiN$aSmMO%tm0&N?JN z`q0&x$G!KQ^PO|QbMB{q|2a85c#4dkJ&}5lE94Gyi#b2n&ULcqL2fB`SU-l{m`utL z5%DEy=%3C}#+LVvyC5AQ-Fonk6?!}z!r;+t%UJbb*%nL;^U7HMS0Rmb;`thqM<&%xj0ZG)5$_|P0$~I&18_eEScl=O+E$cb3~&%i^;Tby7Q18IT+N3 z?w`bvMnp_>`V<-~A*Tsm+d^D){VH;v;7TR2Kv~VS`qq&1BA#3`T{Cp(P&o++*u0gD z57a30R?3M&`>M!Eo_aTv2_Eq+(psoF{2|@1sd)TDA|tz+geX&r@VGK8$SIv%BiGEe za9vzC*NDnml82QaB`cWzB_G1jWz(tHVz-!3FRmpDZkSmN7weTY1n(0ky--KOBEma} zN(Y;u6|G8*{pv{q-Qw z!>6YhsrhCRA8qGf(A5%|R<{b9OXYC3N?2mj7TkSW8(8B7l4fZON1Ip)q z3Go+fG9s<2m}0c6Z<#Z&f@BzIT>|43{!(sA#h}gO#PnN=6%T!KJ~{@nB{V!v)@(ai zEL{w@e?DX!{eiI2{H>|NV&X>UExrWtCbNi#{tRs%|LMzFE}WTV&2ag3zD5tfZAoom znQP`YGGpCr%>Q-ayI%@y3BkZ7>z6hwXzNC<0ZGIhl)@hE{ z>%`puh9o#_5^>`L2F`zss0BtXu1ipKHw&VfmA6sc1|@cVohLu*2aK7C5@^J*W^)I1hE^!6j+ zJKv*6vc#Pxy{UHr;vY-dsL6DTw0MEocO4by%{LG!$QjZ5<09g{vKAem73uh_$r{z; zJ=-wdB2}PbE=P>@N*2u2CdnvHBCXNb0g1*AB)v6^ph;Hggje=d)1v+I-wKU;O}2M& z*<29|*3aHmMxA2di2N*Or3{e<-;vK8$An$93Kd)_0xywNsLRbNW(v&*P_u~@RO^7* zf?LTZjgBlahk~?wySZsLI#g+4l1zsxt>a}-eGUyZ&#|7^ei%^Lf&O+m-;Oc}rWQ>qW@GIlNB zd)K4djn2`QXfX}!Yd`D#nZHmn5g%hzJxjDO`hR0$_iKYaM9b^!RRW54dc4uwjdms) zz1`@jSc9TZ94h*Mot%sQOUZI{`mTeClTP1Fy|^N(YA&j3?#VULE!A!&X>?0eURzG$S0Y9#r>&FC))Uw 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 @@ - -