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