This commit is contained in:
Mikael Karlsson
2022-11-22 21:54:51 +11:00
parent 2dc5eca089
commit 897309e48e
21 changed files with 368 additions and 2258 deletions

View File

@@ -12,7 +12,7 @@
RootModule = 'CloudAPIPowerShellManagement.psm1' RootModule = 'CloudAPIPowerShellManagement.psm1'
# Version number of this module. # Version number of this module.
ModuleVersion = '3.7.3' ModuleVersion = '3.7.4'
# Supported PSEditions # Supported PSEditions
# CompatiblePSEditions = @() # CompatiblePSEditions = @()

View File

@@ -11,7 +11,7 @@
"entityKey": "configureEmail", "entityKey": "configureEmail",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "Inputs.authenticationType", "nameResourceKey": "Inputs.authenticationType",
@@ -19,7 +19,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.AccountType", "entityKey": "com.microsoft.outlook.EmailProfile.AccountType",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"options": [ "options": [
{ {
"nameResourceKey": "Inputs.basicAuth", "nameResourceKey": "Inputs.basicAuth",
@@ -37,7 +37,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.EmailUPN", "entityKey": "com.microsoft.outlook.EmailProfile.EmailUPN",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"options": [ "options": [
{ {
"nameResourceKey": "userPrincipalNameOption", "nameResourceKey": "userPrincipalNameOption",
@@ -58,7 +58,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.AccountDomain", "entityKey": "com.microsoft.outlook.EmailProfile.AccountDomain",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -74,7 +74,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAddress", "entityKey": "com.microsoft.outlook.EmailProfile.EmailAddress",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"options": [ "options": [
{ {
"nameResourceKey": "userPrincipalNameOption", "nameResourceKey": "userPrincipalNameOption",
@@ -92,7 +92,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.ServerHostName", "entityKey": "com.microsoft.outlook.EmailProfile.ServerHostName",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -108,7 +108,7 @@
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAccountName", "entityKey": "com.microsoft.outlook.EmailProfile.EmailAccountName",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -124,7 +124,7 @@
"entityKey": "IntuneMAMAllowedAccountsOnly", "entityKey": "IntuneMAMAllowedAccountsOnly",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -158,7 +158,7 @@
"entityKey": "com.microsoft.outlook.Mail.FocusedInbox", "entityKey": "com.microsoft.outlook.Mail.FocusedInbox",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowBiometricsTitle", "nameResourceKey": "OutlookAppConfig.allowBiometricsTitle",
@@ -166,7 +166,7 @@
"entityKey": "com.microsoft.outlook.Auth.Biometric", "entityKey": "com.microsoft.outlook.Auth.Biometric",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle", "nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
@@ -176,7 +176,7 @@
"booleanActions": 109, "booleanActions": 109,
"unconfiguredValue": true, "unconfiguredValue": true,
"allowMissing": true, "allowMissing": true,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -192,7 +192,7 @@
"entityKey": "com.microsoft.outlook.Contacts.LocalSyncEnabled", "entityKey": "com.microsoft.outlook.Contacts.LocalSyncEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle", "nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
@@ -202,7 +202,7 @@
"booleanActions": 109, "booleanActions": 109,
"unconfiguredValue": true, "unconfiguredValue": true,
"allowMissing": true, "allowMissing": true,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -218,7 +218,7 @@
"entityKey": "com.microsoft.outlook.Mail.officeFeedEnabled", "entityKey": "com.microsoft.outlook.Mail.officeFeedEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowSmartReplyTitle", "nameResourceKey": "OutlookAppConfig.allowSmartReplyTitle",
@@ -226,7 +226,7 @@
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled", "entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle", "nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
@@ -234,7 +234,7 @@
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled.UserChangeAllowed", "entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled.UserChangeAllowed",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103, "category": "TableHeaders.settings",
"unconfiguredValue": true, "unconfiguredValue": true,
"allowMissing": true, "allowMissing": true,
"Condition": { "Condition": {
@@ -252,7 +252,7 @@
"entityKey": "com.microsoft.outlook.Mail.ExternalRecipientsToolTipEnabled", "entityKey": "com.microsoft.outlook.Mail.ExternalRecipientsToolTipEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowDefaultAppSignatureTitle", "nameResourceKey": "OutlookAppConfig.allowDefaultAppSignatureTitle",
@@ -260,7 +260,7 @@
"entityKey": "com.microsoft.outlook.Mail.DefaultSignatureEnabled", "entityKey": "com.microsoft.outlook.Mail.DefaultSignatureEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.blockExternalImagesTitle", "nameResourceKey": "OutlookAppConfig.blockExternalImagesTitle",
@@ -268,7 +268,7 @@
"entityKey": "com.microsoft.outlook.Mail.BlockExternalImagesEnabled", "entityKey": "com.microsoft.outlook.Mail.BlockExternalImagesEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle", "nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
@@ -278,7 +278,7 @@
"booleanActions": 109, "booleanActions": 109,
"unconfiguredValue": true, "unconfiguredValue": true,
"allowMissing": true, "allowMissing": true,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {
@@ -294,7 +294,7 @@
"entityKey": "com.microsoft.outlook.Mail.OrganizeByThreadEnabled", "entityKey": "com.microsoft.outlook.Mail.OrganizeByThreadEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.playMyEmailsTitle", "nameResourceKey": "OutlookAppConfig.playMyEmailsTitle",
@@ -302,7 +302,7 @@
"entityKey": "com.microsoft.outlook.Mail.PlayMyEmailsEnabled", "entityKey": "com.microsoft.outlook.Mail.PlayMyEmailsEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.themesEnabledTitle", "nameResourceKey": "OutlookAppConfig.themesEnabledTitle",
@@ -310,7 +310,7 @@
"entityKey": "com.microsoft.outlook.Settings.ThemesEnabled", "entityKey": "com.microsoft.outlook.Settings.ThemesEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.textPredictionsTitle", "nameResourceKey": "OutlookAppConfig.textPredictionsTitle",
@@ -318,7 +318,7 @@
"entityKey": "com.microsoft.outlook.Mail.TextPredictionsEnabled", "entityKey": "com.microsoft.outlook.Mail.TextPredictionsEnabled",
"dataType": 0, "dataType": 0,
"booleanActions": 120, "booleanActions": 120,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle", "nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
@@ -328,7 +328,7 @@
"booleanActions": 109, "booleanActions": 109,
"unconfiguredValue": true, "unconfiguredValue": true,
"allowMissing": true, "allowMissing": true,
"category": 103, "category": "TableHeaders.settings",
"Condition": { "Condition": {
"Expressions": [ "Expressions": [
{ {

View File

@@ -189,7 +189,7 @@
"nameResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.label", "nameResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.label",
"descriptionResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.infoBalloon", "descriptionResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.infoBalloon",
"entityKey": "applyDeviceNameTemplate", "entityKey": "applyDeviceNameTemplate",
"dataType": 103, "dataType": "TableHeaders.settings",
"booleanActions": 109, "booleanActions": 109,
"category": "Autopilot.OOBE.title", "category": "Autopilot.OOBE.title",
"ChildSettings": [ "ChildSettings": [

View File

@@ -5,7 +5,7 @@
"entityKey": "versionInfo", "entityKey": "versionInfo",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.label", "nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.label",
@@ -13,7 +13,7 @@
"entityKey": "updateScheduleType", "entityKey": "updateScheduleType",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"options": [ "options": [
{ {
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.outsideActiveHours", "nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.outsideActiveHours",
@@ -39,7 +39,7 @@
}, },
{ {
"dataType": 16, "dataType": 16,
"category": 103, "category": "TableHeaders.settings",
"nameResourceKey": "timeZoneName", "nameResourceKey": "timeZoneName",
"descriptionResourceKey": "timeZoneDescription", "descriptionResourceKey": "timeZoneDescription",
"childSettings": [ "childSettings": [
@@ -249,6 +249,6 @@
"entityKey": "timeWidows", "entityKey": "timeWidows",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
} }
] ]

View File

@@ -13,7 +13,7 @@
"entityKey": "showInstallationProgress", "entityKey": "showInstallationProgress",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.timeout", "nameResourceKey": "EnrollmentStatusScreen.timeout",
@@ -21,7 +21,7 @@
"entityKey": "installProgressTimeoutInMinutes", "entityKey": "installProgressTimeoutInMinutes",
"dataType": 14, "dataType": 14,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.customMessageToggle", "nameResourceKey": "EnrollmentStatusScreen.customMessageToggle",
@@ -29,7 +29,7 @@
"entityKey": "showCustomErrorMessage", "entityKey": "showCustomErrorMessage",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.customMessageTextBox", "nameResourceKey": "EnrollmentStatusScreen.customMessageTextBox",
@@ -37,7 +37,7 @@
"entityKey": "customErrorMessage", "entityKey": "customErrorMessage",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.collectLogToggle", "nameResourceKey": "EnrollmentStatusScreen.collectLogToggle",
@@ -45,7 +45,7 @@
"entityKey": "allowLogCollectionOnInstallFailure", "entityKey": "allowLogCollectionOnInstallFailure",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.enableForAutopilotOnlyToggle", "nameResourceKey": "EnrollmentStatusScreen.enableForAutopilotOnlyToggle",
@@ -53,7 +53,7 @@
"entityKey": "trackInstallProgressForAutopilotOnly", "entityKey": "trackInstallProgressForAutopilotOnly",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.blockToggle", "nameResourceKey": "EnrollmentStatusScreen.blockToggle",
@@ -61,7 +61,7 @@
"entityKey": "blockDeviceSetupRetryByUser", "entityKey": "blockDeviceSetupRetryByUser",
"dataType": 16, "dataType": 16,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"options": [ "options": [
{ {
"nameResourceKey": "SettingDetails.no", "nameResourceKey": "SettingDetails.no",
@@ -77,7 +77,7 @@
"entityKey": "allowDeviceResetOnInstallFailure", "entityKey": "allowDeviceResetOnInstallFailure",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.allowToUseToggle", "nameResourceKey": "EnrollmentStatusScreen.allowToUseToggle",
@@ -85,7 +85,7 @@
"entityKey": "allowDeviceUseOnInstallFailure", "entityKey": "allowDeviceUseOnInstallFailure",
"dataType": 0, "dataType": 0,
"booleanActions": 109, "booleanActions": 109,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "EnrollmentStatusScreen.Apps.useSelectedAppsToggleLabel", "nameResourceKey": "EnrollmentStatusScreen.Apps.useSelectedAppsToggleLabel",
@@ -93,7 +93,7 @@
"entityKey": "waitForApps", "entityKey": "waitForApps",
"dataType": 14, "dataType": 14,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
} }
] ]
} }

View File

@@ -13,7 +13,7 @@
"entityKey": "deployableContentDisplayName", "entityKey": "deployableContentDisplayName",
"dataType": 20, "dataType": 20,
"booleanActions": 0, "booleanActions": 0,
"category": 103 "category": "TableHeaders.settings"
}, },
{ {
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label", "nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
@@ -21,13 +21,13 @@
"entityKey": "expeditedUpdateSettings", "entityKey": "expeditedUpdateSettings",
"dataType": 6, "dataType": 6,
"booleanActions": 0, "booleanActions": 0,
"category": 103, "category": "TableHeaders.settings",
"complexOptions": [ "complexOptions": [
{ {
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label", "nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
"descriptionResourceKey": "", "descriptionResourceKey": "",
"dataType": 16, "dataType": 16,
"category": 103, "category": "TableHeaders.settings",
"entityKey": "daysUntilForcedReboot", "entityKey": "daysUntilForcedReboot",
"booleanActions": 0, "booleanActions": 0,
"options": [ "options": [

View File

@@ -1,815 +0,0 @@
{
"devicefirmwareconfigurationinterface_windows10devicefirmwareconfigurationinterface": [
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "dfciHeaderName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
},
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "securityFeaturesName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "changeUefiSettingsPermissionName",
"descriptionResourceKey": "changeUefiSettingsPermissionDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfiguredOnly",
"value": "notConfiguredOnly",
"enabled": true
},
{
"nameResourceKey": "none",
"value": "none",
"enabled": true
}
],
"entityKey": "changeUefiSettingsPermission",
"booleanActions": 0,
"defaultValue": "notConfiguredOnly",
"unconfiguredValue": "notConfiguredOnly",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "virtualizationOfCpuAndIOName",
"descriptionResourceKey": "virtualizationOfCpuAndIODescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "virtualizationOfCpuAndIO",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "windowsPlatformBinaryTableName",
"descriptionResourceKey": "windowsPlatformBinaryTableDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "windowsPlatformBinaryTable",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "simultaneousMultiThreadingName",
"descriptionResourceKey": "simultaneousMultiThreadingDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "simultaneousMultiThreading",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "builtInHardwareName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
},
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "dfciBuiltinHeaderDescName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "camerasName",
"descriptionResourceKey": "camerasDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "cameras",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "frontCamerasName",
"descriptionResourceKey": "frontCamerasDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "frontCamera",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "rearCamerasName",
"descriptionResourceKey": "rearCamerasDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "rearCamera",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "infraredCamerasName",
"descriptionResourceKey": "infraredCamerasDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "infraredCamera",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "microphonesAndSpeakersName",
"descriptionResourceKey": "microphonesAndSpeakersDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "microphonesAndSpeakers",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "microphonesName",
"descriptionResourceKey": "microphonesDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "microphone",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "radiosName",
"descriptionResourceKey": "radiosDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"children": [
{
"dataType": 10,
"category": 136,
"nameResourceKey": "radioWarningInfoBox",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
}
],
"enabled": true
}
],
"entityKey": "radios",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "bluetoothName",
"descriptionResourceKey": "bluetoothDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "bluetooth",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "wwanName",
"descriptionResourceKey": "wwanDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "wirelessWideAreaNetwork",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "nfcName",
"descriptionResourceKey": "nfcDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "nearFieldCommunication",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "wifiName",
"descriptionResourceKey": "wifiDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "wiFi",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "bootOptionsName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "bootFromExternalMediaName",
"descriptionResourceKey": "bootFromExternalMediaDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "bootFromExternalMedia",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "bootFromBuiltInNetworkAdaptersName",
"descriptionResourceKey": "bootFromBuiltInNetworkAdaptersDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "bootFromBuiltInNetworkAdapters",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": true
},
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 136,
"nameResourceKey": "portName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "usbTypeAPortName",
"descriptionResourceKey": "usbTypeAPortDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "usbTypeAPort",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "usbTypeCPortName",
"descriptionResourceKey": "usbTypeCPortDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "usbTypeCPort",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "sdCardName",
"descriptionResourceKey": "sdCardDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "sdCard",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "wakeOnLANName",
"descriptionResourceKey": "wakeOnLANDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "wakeOnLAN",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
},
{
"dataType": 16,
"category": 136,
"nameResourceKey": "wakeOnPowerName",
"descriptionResourceKey": "wakeOnPowerDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enabledOption",
"value": "enabled",
"enabled": true
},
{
"nameResourceKey": "disabledOption",
"value": "disabled",
"enabled": true
}
],
"entityKey": "wakeOnPower",
"booleanActions": 0,
"defaultValue": "notConfigured",
"unconfiguredValue": "notConfigured",
"policyType": 108,
"enabled": false
}
]
}

View File

@@ -1,509 +0,0 @@
{
"vpnappsandtrafficrules_windows10vpn": [
{
"dataType": 16,
"category": 124,
"nameResourceKey": "vPNWipOrAppsName",
"descriptionResourceKey": "vPNWipOrAppsDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"value": 0,
"enabled": true
},
{
"nameResourceKey": "wipOption",
"value": 1,
"children": [
{
"dataType": 20,
"category": 124,
"nameResourceKey": "wipName",
"descriptionResourceKey": "wipDescription",
"childSettings": [
],
"options": [
],
"entityKey": "windowsInformationProtectionDomain",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"enabled": true
},
{
"nameResourceKey": "associateAppsOption",
"value": 2,
"children": [
{
"dataType": 19,
"category": 124,
"nameResourceKey": "vPNPolicyOnlyTheseAppsCanUseVPNName",
"descriptionResourceKey": "vPNPolicyOnlyTheseAppsCanUseVPNDescription",
"childSettings": [
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "appIdentifierName",
"descriptionResourceKey": "appIdentifierDescription",
"childSettings": [
],
"options": [
],
"entityKey": "identifier",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 16,
"category": 124,
"nameResourceKey": "eDPPolicyNetworkLocationsListTypeName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "desktopOption",
"value": "desktop",
"enabled": true
},
{
"nameResourceKey": "universalOption",
"value": "universal",
"enabled": true
}
],
"entityKey": "appType",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "vPNPolicyAssociatedAppsName",
"descriptionResourceKey": "vPNPolicyAssociatedAppsDescription",
"childSettings": [
],
"options": [
],
"entityKey": "associatedApps",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
}
],
"options": [
{
"nameResourceKey": "enableOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "disableOption",
"value": false,
"enabled": true
}
],
"entityKey": "onlyAssociatedAppsCanUseConnection",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
}
],
"enabled": true
}
],
"entityKey": "syntheticWipOrApps",
"booleanActions": 0,
"defaultValue": 0,
"unconfiguredValue": 0,
"policyType": 89,
"enabled": true
},
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "ruleName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
],
"entityKey": "name",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 16,
"category": 124,
"nameResourceKey": "trafficRuleRoutingPolicyTypeName",
"descriptionResourceKey": "trafficRuleRoutingPolicyTypeDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "noneOption",
"value": "none",
"enabled": true
},
{
"nameResourceKey": "splitTunnelOption",
"value": "splitTunnel",
"enabled": true
},
{
"nameResourceKey": "forceTunnelOption",
"value": "forceTunnel",
"enabled": true
}
],
"entityKey": "routingPolicyType",
"booleanActions": 0,
"defaultValue": "none",
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 14,
"category": 124,
"nameResourceKey": "protocolsName",
"descriptionResourceKey": "empty",
"childSettings": [
{
"columns": [
{
"metadata": {
"dataType": 14,
"category": 124,
"nameResourceKey": "lowerPortName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyPortExample",
"childSettings": [
],
"options": [
],
"entityKey": "lowerNumber",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 14,
"category": 124,
"nameResourceKey": "upperPortName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyPortExampleUpper",
"childSettings": [
],
"options": [
],
"entityKey": "upperNumber",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "localPortRangesName",
"descriptionResourceKey": "localPortRangesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "localPortRanges",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"columns": [
{
"metadata": {
"dataType": 14,
"category": 124,
"nameResourceKey": "lowerPortName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyPortExample",
"childSettings": [
],
"options": [
],
"entityKey": "lowerNumber",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 14,
"category": 124,
"nameResourceKey": "upperPortName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyPortExampleUpper",
"childSettings": [
],
"options": [
],
"entityKey": "upperNumber",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "remotePortRangesName",
"descriptionResourceKey": "remotePortRangesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "remotePortRanges",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"options": [
],
"entityKey": "protocols",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "trafficRuleAppName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
],
"entityKey": "appId",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 16,
"category": 124,
"nameResourceKey": "trafficRuleAppTypeName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
{
"nameResourceKey": "desktopOption",
"value": "desktop",
"enabled": true
},
{
"nameResourceKey": "universalOption",
"value": "universal",
"enabled": true
}
],
"entityKey": "appType",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "lowerIPv4AddressName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "lowerAddress",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "upperIPv4AddressName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyAddressExampleUpper",
"childSettings": [
],
"options": [
],
"entityKey": "upperAddress",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "localAddressRangesName",
"descriptionResourceKey": "localAddressRangesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "localAddressRanges",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "lowerIPv4AddressName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "lowerAddress",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 124,
"nameResourceKey": "upperIPv4AddressName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyAddressExampleUpper",
"childSettings": [
],
"options": [
],
"entityKey": "upperAddress",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "remoteAddressRangesName",
"descriptionResourceKey": "remoteAddressRangesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "remoteAddressRanges",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 124,
"nameResourceKey": "vPNPolicyNetworkTrafficRulesName",
"descriptionResourceKey": "vPNPolicyNetworkTrafficRulesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "trafficRules",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
}
]
}

View File

@@ -1,116 +0,0 @@
{
"vpnconditionalaccess_windows10vpn": {
"dataType": 19,
"category": 125,
"nameResourceKey": "enableConditionalAccessName",
"descriptionResourceKey": "enableConditionalAccessDescription",
"childSettings": [
{
"dataType": 19,
"category": 125,
"nameResourceKey": "enableSingleSignOnName",
"descriptionResourceKey": "enableSingleSignOnDescription",
"childSettings": [
{
"complexOptions": [
{
"dataType": 20,
"category": 125,
"nameResourceKey": "eDPPolicyAppsListNameName",
"descriptionResourceKey": "eDPPolicyAppsListNameDescription",
"childSettings": [
],
"options": [
],
"entityKey": "name",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"dataType": 20,
"category": 125,
"nameResourceKey": "sCEPPolicyObjectIdentifierColumnName",
"descriptionResourceKey": "sCEPPolicyObjectIdentifierColumnDescription",
"childSettings": [
],
"options": [
],
"entityKey": "objectIdentifier",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"dataType": 6,
"category": 125,
"nameResourceKey": "sCEPPolicyExtendedKeyUsageName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
],
"entityKey": "singleSignOnEku",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"dataType": 20,
"category": 125,
"nameResourceKey": "issuerHashName",
"descriptionResourceKey": "issuerHashDescription",
"childSettings": [
],
"options": [
],
"entityKey": "singleSignOnIssuerHash",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"options": [
{
"nameResourceKey": "enableOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "disableOption",
"value": false,
"enabled": true
}
],
"entityKey": "enableSingleSignOnWithAlternateCertificate",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"options": [
{
"nameResourceKey": "enableOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "disableOption",
"value": false,
"enabled": true
}
],
"entityKey": "enableConditionalAccess",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}

View File

@@ -1,438 +0,0 @@
{
"vpndnstriggers_windows10vpn": [
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "vPNPolicyDNSSuffixesName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "dNSSuffixExample",
"childSettings": [
],
"options": [
],
"entityKey": "unusedForSingleItems",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "vPNPolicyDNSSuffixSearchListName",
"descriptionResourceKey": "vPNPolicyDNSSuffixSearchListDescription",
"childSettings": [
],
"options": [
],
"entityKey": "dnsSuffixes",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSName",
"descriptionResourceKey": "dNSNameDescription1809",
"emptyValueResourceKey": "dNSNameExample",
"childSettings": [
],
"options": [
],
"entityKey": "name",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "dNSServerDescription",
"emptyValueResourceKey": "vPNAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "unusedForSingleItems",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "enterOnlyOneForDns",
"childSettings": [
],
"options": [
],
"entityKey": "servers",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "proxy",
"descriptionResourceKey": "vPNProxyDescription1809",
"emptyValueResourceKey": "proxyDNSExample",
"childSettings": [
],
"options": [
],
"entityKey": "proxyServerUri",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 19,
"category": 126,
"nameResourceKey": "vPNDnsAutoTriggerName",
"descriptionResourceKey": "vPNDnsAutoTriggerDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "enabledOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "notConfigured",
"value": false,
"enabled": true
}
],
"entityKey": "autoTrigger",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 19,
"category": 126,
"nameResourceKey": "vPNDnsPersistentName",
"descriptionResourceKey": "vPNDnsPersistentDescription",
"childSettings": [
],
"options": [
{
"nameResourceKey": "enabledOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "notConfigured",
"value": false,
"enabled": true
}
],
"entityKey": "persistent",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
"descriptionResourceKey": "vPNPolicyNameResolutionPolicyTableRulesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "dnsRules",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": true
},
{
"columns": [
{
"metadata": {
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 126,
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSName",
"descriptionResourceKey": "dNSNameDescription1809",
"emptyValueResourceKey": "dNSNameExample",
"childSettings": [
],
"options": [
],
"entityKey": "name",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 126,
"nameResourceKey": "enterOnlyOneForDns",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "dNSServerDescription",
"emptyValueResourceKey": "vPNAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "unusedForSingleItems",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
],
"entityKey": "servers",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "proxy",
"descriptionResourceKey": "vPNProxyDescription1809",
"emptyValueResourceKey": "proxyDNSExample",
"childSettings": [
],
"options": [
],
"entityKey": "proxyServerUri",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
"descriptionResourceKey": "vPNPolicyNameResolutionPolicyTableRulesDescription",
"childSettings": [
],
"options": [
],
"entityKey": "dnsRules",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": false
},
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSName",
"descriptionResourceKey": "dNSNameDescription",
"emptyValueResourceKey": "dNSNameExample",
"childSettings": [
],
"options": [
],
"entityKey": "name",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 126,
"nameResourceKey": "enterOnlyOneForDns",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "dNSServerDescription",
"emptyValueResourceKey": "vPNAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "unusedForSingleItems",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "dNSServer",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
],
"entityKey": "servers",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 20,
"category": 126,
"nameResourceKey": "proxy",
"emptyValueResourceKey": "proxyDNSExample",
"childSettings": [
],
"options": [
],
"entityKey": "proxyServerUri",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 126,
"nameResourceKey": "vPNPolicyDNSNamesAndServersName",
"descriptionResourceKey": "vPNPolicyDNSNamesAndServersName",
"childSettings": [
],
"options": [
],
"entityKey": "dnsRules",
"booleanActions": 0,
"defaultValue": false,
"policyType": 89,
"enabled": false
}
]
}

View File

@@ -1,119 +0,0 @@
{
"vpnproxy_windows10vpn": [
{
"isSettingDescription": false,
"showAsSectionHeader": false,
"dataType": 8,
"category": 128,
"nameResourceKey": "vPNPolicyUseProxyServerName",
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
"childSettings": [
],
"options": [
],
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"complexOptions": [
{
"dataType": 20,
"category": 128,
"nameResourceKey": "vPNPolicyAutomaticConfigurationScriptName",
"descriptionResourceKey": "vPNPolicyAutomaticConfigurationScriptDescription",
"emptyValueResourceKey": "vPNScriptExample",
"childSettings": [
],
"options": [
],
"entityKey": "automaticConfigurationScriptUrl",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"dataType": 20,
"category": 128,
"nameResourceKey": "vPNPolicyAddressName",
"descriptionResourceKey": "vPNPolicyAddressDescription",
"emptyValueResourceKey": "vPNAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "address",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"dataType": 14,
"category": 128,
"nameResourceKey": "vPNPolicyPortNumberName",
"descriptionResourceKey": "empty",
"emptyValueResourceKey": "proxyPortExample",
"childSettings": [
],
"options": [
],
"entityKey": "port",
"booleanActions": 0,
"policyType": 89,
"enabled": true
},
{
"dataType": 16,
"category": 128,
"nameResourceKey": "vPNPolicyBypassProxySettingsForLocalAddressesName",
"descriptionResourceKey": "empty",
"childSettings": [
],
"options": [
{
"nameResourceKey": "notConfigured",
"enabled": true
},
{
"nameResourceKey": "enableOption",
"value": "true",
"enabled": true
},
{
"nameResourceKey": "disableOption",
"value": "false",
"enabled": true
}
],
"entityKey": "bypassProxyServerForLocalAddress",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"dataType": 6,
"category": 128,
"nameResourceKey": "vPNPolicyUseProxyServerName",
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
"childSettings": [
],
"options": [
],
"entityKey": "proxyServer",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
]
}

View File

@@ -1,81 +0,0 @@
{
"vpnsplittunneling_windows10vpn": {
"dataType": 19,
"category": 123,
"nameResourceKey": "vPNPolicySendAllNetworkTrafficThroughVPNName",
"descriptionResourceKey": "vPNPolicySendAllNetworkTrafficThroughVPNDescription",
"childSettings": [
{
"columns": [
{
"metadata": {
"dataType": 20,
"category": 123,
"nameResourceKey": "vPNPolicyDestinationPrefixName",
"descriptionResourceKey": "vPNPolicyDestinationPrefixName",
"emptyValueResourceKey": "proxyAddressExample",
"childSettings": [
],
"options": [
],
"entityKey": "destinationPrefix",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
},
{
"metadata": {
"dataType": 14,
"category": 123,
"nameResourceKey": "vPNPolicyPrefixSizeName",
"descriptionResourceKey": "vPNPolicyPrefixSizeName",
"childSettings": [
],
"options": [
],
"entityKey": "prefixSize",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 123,
"nameResourceKey": "vPNPolicyRoutesForThisConnectionName",
"descriptionResourceKey": "vPNPolicyRoutesForThisConnectionDescription",
"childSettings": [
],
"options": [
],
"entityKey": "routes",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
],
"options": [
{
"nameResourceKey": "enableOption",
"value": true,
"enabled": true
},
{
"nameResourceKey": "disableOption",
"value": false,
"enabled": true
}
],
"entityKey": "enableSplitTunneling",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}

View File

@@ -1,39 +0,0 @@
{
"vpntrustednetwork_windows10vpn": {
"columns": [
{
"metadata": {
"dataType": 20,
"category": 129,
"nameResourceKey": "vPNPolicyTrustedNetworkDomainColumnName",
"descriptionResourceKey": "",
"emptyValueResourceKey": "VPNPolicyTrustedNetworkDomainExample",
"childSettings": [
],
"options": [
],
"entityKey": "trustedNetworkDomains",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}
],
"dataType": 21,
"category": 129,
"nameResourceKey": "vPNPolicyTrustedNetworkDomainName",
"descriptionResourceKey": "vPNPolicyTrustedNetworkDomainDescription",
"childSettings": [
],
"options": [
],
"entityKey": "trustedNetworkDomains",
"booleanActions": 0,
"policyType": 89,
"enabled": true
}
}

View File

@@ -11,7 +11,7 @@ Objects can be compared based on Properties or Documentatation info.
function Get-ModuleVersion function Get-ModuleVersion
{ {
'1.0.9' '1.0.10'
} }
function Invoke-InitializeModule function Invoke-InitializeModule
@@ -422,8 +422,8 @@ function Invoke-BulkCompareNamedObjects
Write-Log "Compare $($item.ObjectType.Title) objects" Write-Log "Compare $($item.ObjectType.Title) objects"
Write-Log "----------------------------------------------------------------" Write-Log "----------------------------------------------------------------"
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
$nameProp = ?? $item.ObjectType.NameProperty "displayName" $nameProp = ?? $item.ObjectType.NameProperty "displayName"
foreach($graphObj in ($graphObjects | Where { $_.Object."$($nameProp)" -imatch [regex]::Escape($sourcePattern) })) foreach($graphObj in ($graphObjects | Where { $_.Object."$($nameProp)" -imatch [regex]::Escape($sourcePattern) }))
@@ -561,7 +561,7 @@ function Start-BulkCompareExportObjects
{ {
Save-Setting "" "LastUsedFullPath" $folder Save-Setting "" "LastUsedFullPath" $folder
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
foreach ($fileObj in @(Get-GraphFileObjects $folder -ObjectType $item.ObjectType)) foreach ($fileObj in @(Get-GraphFileObjects $folder -ObjectType $item.ObjectType))
{ {

View File

@@ -1,6 +1,6 @@
function Get-ModuleVersion function Get-ModuleVersion
{ {
'1.0.1' '1.0.2'
} }
function Invoke-InitializeModule function Invoke-InitializeModule
@@ -106,7 +106,7 @@ function Start-BulkCopyObjects
Write-Log "Copy $($item.ObjectType.Title) objects" Write-Log "Copy $($item.ObjectType.Title) objects"
Write-Log "----------------------------------------------------------------" Write-Log "----------------------------------------------------------------"
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
$nameProp = ?? $item.ObjectType.NameProperty "displayName" $nameProp = ?? $item.ObjectType.NameProperty "displayName"

View File

@@ -3,7 +3,7 @@
#https://docs.microsoft.com/en-us/office/vba/api/overview/word #https://docs.microsoft.com/en-us/office/vba/api/overview/word
function Get-ModuleVersion function Get-ModuleVersion
{ {
'1.3.0' '1.4.0'
} }
function Invoke-InitializeModule function Invoke-InitializeModule
@@ -610,6 +610,7 @@ function Invoke-WordProcessItem
$settingProps += ("Settings." + $objProp) $settingProps += ("Settings." + $objProp)
} }
} }
$params.Add("AddCategories", $true)
} }
else else
{ {
@@ -649,6 +650,7 @@ function Invoke-WordProcessItem
if($fi.Exists) if($fi.Exists)
{ {
$script:doc.Application.Selection.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,$fi.Name) $script:doc.Application.Selection.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,$fi.Name)
$script:doc.Application.Selection.TypeParagraph()
try { $fi.Delete() } catch {} # Cleanup try { $fi.Delete() } catch {} # Cleanup
} }
} }
@@ -666,12 +668,18 @@ function Set-DocTableSettingsItems
$secondColumn = $firstColumn + 1 $secondColumn = $firstColumn + 1
$script:docTable.Cell(1, $firstColumn).Range.Text = (Invoke-WordTranslateColumnHeader "Settings") $script:docTable.Cell(1, $firstColumn).Range.Text = (Invoke-DocTranslateColumnHeader "Settings")
$script:docTable.Cell(1, $secondColumn).Range.Text = "" $script:docTable.Cell(1, $secondColumn).Range.Text = ""
$row = 2 $row = 2
foreach($itemObj in $items) foreach($itemObj in $items)
{ {
#if($script:docTable.Rows($row).Cells.Count -eq 1) { $row++;continue } # Category / Sub-category
while($script:docTable.Cell($row,1).Next.RowIndex -gt $row)
{
# Category / Sub-category
$row++;
}
$script:docTable.Cell($row, $firstColumn).Range.Text = "" $script:docTable.Cell($row, $firstColumn).Range.Text = ""
$script:docTable.Cell($row, $secondColumn).Range.Text = "" $script:docTable.Cell($row, $secondColumn).Range.Text = ""
$script:docTable.Cell($row, $firstColumn).Split($properties.Count,1) $script:docTable.Cell($row, $firstColumn).Split($properties.Count,1)
@@ -680,7 +688,7 @@ function Set-DocTableSettingsItems
$cellRow = $row $cellRow = $row
foreach($settingProp in $properties) foreach($settingProp in $properties)
{ {
$script:docTable.Cell($cellRow, $firstColumn).Range.Text = (Invoke-WordTranslateColumnHeader ($settingProp.Split('.')[-1])) $script:docTable.Cell($cellRow, $firstColumn).Range.Text = (Invoke-DocTranslateColumnHeader ($settingProp.Split('.')[-1]))
$propArr = $settingProp.Split('.') $propArr = $settingProp.Split('.')
$tmpObj = $itemObj $tmpObj = $itemObj
@@ -690,7 +698,8 @@ function Set-DocTableSettingsItems
$tmpObj = $tmpObj."$($propArr[$x])" $tmpObj = $tmpObj."$($propArr[$x])"
} }
$script:docTable.Cell($cellRow, $secondColumn).Column.Cells($cellRow).Range.Text = "$($tmpObj.$propName)" #$script:docTable.Cell($cellRow, $secondColumn).Column.Cells($cellRow).Range.Text = "$($tmpObj.$propName)"
$script:docTable.Cell($cellRow, $secondColumn).Range.Text = "$($tmpObj.$propName)"
$cellRow++ $cellRow++
} }

View File

@@ -11,7 +11,7 @@ This module is for the Endpoint Manager/Intune View. It manages Export/Import/Co
#> #>
function Get-ModuleVersion function Get-ModuleVersion
{ {
'3.7.3' '3.7.4'
} }
function Invoke-InitializeModule function Invoke-InitializeModule
@@ -141,6 +141,7 @@ function Invoke-InitializeModule
API = "/identityGovernance/termsOfUse/agreements" API = "/identityGovernance/termsOfUse/agreements"
Permissons=@("Agreement.ReadWrite.All") Permissons=@("Agreement.ReadWrite.All")
PreImportCommand = { Start-PreImportTermsOfUse @args } PreImportCommand = { Start-PreImportTermsOfUse @args }
PostExportCommand = { Start-PostExportTermsOfUse @args }
GroupId = "ConditionalAccess" GroupId = "ConditionalAccess"
}) })
} }
@@ -166,6 +167,7 @@ function Invoke-InitializeModule
PostListCommand = { Start-PostListEndpointSecurity @args } PostListCommand = { Start-PostListEndpointSecurity @args }
PostExportCommand = { Start-PostExportEndpointSecurity @args } PostExportCommand = { Start-PostExportEndpointSecurity @args }
PostFileImportCommand = { Start-PostFileImportEndpointSecurity @args } PostFileImportCommand = { Start-PostFileImportEndpointSecurity @args }
PostGetCommand = { Start-PostGetEndpointSecurity @args }
#PreCopyCommand = { Start-PreCopyEndpointSecurity @args } #PreCopyCommand = { Start-PreCopyEndpointSecurity @args }
PostCopyCommand = { Start-PostCopyEndpointSecurity @args } PostCopyCommand = { Start-PostCopyEndpointSecurity @args }
PreUpdateCommand = { Start-PreUpdateEndpointSecurity @args } PreUpdateCommand = { Start-PreUpdateEndpointSecurity @args }
@@ -254,6 +256,7 @@ function Invoke-InitializeModule
PreReplaceCommand = { Start-PreReplaceEnrollmentRestrictions @args } # Note: Uses same PreReplaceCommand as restrictions PreReplaceCommand = { Start-PreReplaceEnrollmentRestrictions @args } # Note: Uses same PreReplaceCommand as restrictions
PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args } # Note: Uses same PostReplaceCommand as restrictions PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args } # Note: Uses same PostReplaceCommand as restrictions
PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args } # Note: Uses same PreFilesImportCommand as restrictions PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args } # Note: Uses same PreFilesImportCommand as restrictions
PreImportAssignmentsCommand = { Start-PreImportAssignmentsEnrollmentRestrictions @args } # Note: Uses same PreFilesImportCommand as restrictions
PostListCommand = { Start-PostListESP @args } PostListCommand = { Start-PostListESP @args }
#PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args } # Note: Uses same PreUpdateCommand as restrictions #PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args } # Note: Uses same PreUpdateCommand as restrictions
#QUERYLIST = "`$filter=endsWith(id,'Windows10EnrollmentCompletionPageConfiguration')" #QUERYLIST = "`$filter=endsWith(id,'Windows10EnrollmentCompletionPageConfiguration')"
@@ -277,6 +280,7 @@ function Invoke-InitializeModule
PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args } PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args }
PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args } PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args }
PostListCommand = { Start-PostListEnrollmentRestrictions @args } PostListCommand = { Start-PostListEnrollmentRestrictions @args }
PreImportAssignmentsCommand = { Start-PreImportAssignmentsEnrollmentRestrictions @args }
#PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args } #PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args }
PropertiesToRemoveForUpdate = @('priority') PropertiesToRemoveForUpdate = @('priority')
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All") Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
@@ -448,6 +452,8 @@ function Invoke-InitializeModule
PreUpdateCommand = { Start-PreUpdateApplication @args } PreUpdateCommand = { Start-PreUpdateApplication @args }
PreImportCommand = { Start-PreImportCommandApplication @args } PreImportCommand = { Start-PreImportCommandApplication @args }
DetailExtension = { Add-DetailExtensionApplications @args } DetailExtension = { Add-DetailExtensionApplications @args }
PreImportAssignmentsCommand = { Start-PreImportAssignmentsApplications @args }
PreDeleteCommand = { Start-PreDeleteApplications @args }
GroupId = "Apps" GroupId = "Apps"
ScopeTagsReturnedInList = $false ScopeTagsReturnedInList = $false
}) })
@@ -863,7 +869,7 @@ function Set-EMViewPanel
$global:btnLoadAllPages.add_click({ $global:btnLoadAllPages.add_click({
Write-Status "Loading $($global:curObjectType.Title) objects" Write-Status "Loading $($global:curObjectType.Title) objects"
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -AllPages) [array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -AllPages
$graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null } $graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null }
$global:dgObjects.ItemsSource.CommitNew() $global:dgObjects.ItemsSource.CommitNew()
Set-GraphPagesButtonStatus Set-GraphPagesButtonStatus
@@ -873,7 +879,7 @@ function Set-EMViewPanel
$global:btnLoadNextPage.add_click({ $global:btnLoadNextPage.add_click({
Write-Status "Loading $($global:curObjectType.Title) objects" Write-Status "Loading $($global:curObjectType.Title) objects"
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage) [array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage
$graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null } $graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null }
$global:dgObjects.ItemsSource.CommitNew() $global:dgObjects.ItemsSource.CommitNew()
Set-GraphPagesButtonStatus Set-GraphPagesButtonStatus
@@ -1000,17 +1006,19 @@ function Start-PostListEndpointSecurity
if(-not $script:baseLineTemplates) { return } if(-not $script:baseLineTemplates) { return }
foreach($obj in $objList) foreach($obj in $objList)
{ {
if(-not $obj.Object.templateId) { continue } if(-not $obj.Object.templateId) { continue }
if($obj.Object.templateId -ne $baseLineTemplate.Id) if($obj.Object.templateId -ne $baseLineTemplate.Id)
{ {
$baseLineTemplate = $script:baseLineTemplates | Where Id -eq $obj.Object.templateId $baseLineTemplate = $script:baseLineTemplates | Where Id -eq $obj.Object.templateId
} }
if($baseLineTemplate) if($baseLineTemplate)
{ {
$obj | Add-Member -MemberType NoteProperty -Name "Type" -Value $baseLineTemplate.displayName $obj | Add-Member -MemberType NoteProperty -Name "Type" -Value $baseLineTemplate.displayName
$obj | Add-Member -MemberType NoteProperty -Name "Category" -Value (?: ($baseLineTemplate.templateSubtype -eq "none") $baseLineTemplate.templateType $baseLineTemplate.templateSubtype) $obj | Add-Member -MemberType NoteProperty -Name "Category" -Value (?: ($baseLineTemplate.templateSubtype -eq "none") $baseLineTemplate.templateType $baseLineTemplate.templateSubtype)
} }
} }
$objList $objList
} }
@@ -1028,7 +1036,7 @@ function Start-PostExportEndpointSecurity
$settings = Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/settings" $settings = Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/settings"
$settingsJson = "{ `"settings`": $((ConvertTo-Json $settings.value -Depth 20 ))`n}" $settingsJson = "{ `"settings`": $((ConvertTo-Json $settings.value -Depth 20 ))`n}"
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json" $fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json"
$settingsJson | Out-File -LiteralPath $fileName -Force Save-GraphObjectToFile $settingsJson $fileName
} }
function Start-PostFileImportEndpointSecurity function Start-PostFileImportEndpointSecurity
@@ -1039,7 +1047,7 @@ function Start-PostFileImportEndpointSecurity
if($settings) if($settings)
{ {
Start-GraphPreImport $settings Start-GraphPreImport $settings
Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/updateSettings" -Body ($settings | ConvertTo-Json -Depth 20) -Method "POST" Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/updateSettings" -Body ($settings | ConvertTo-Json -Depth 50) -Method "POST"
} }
} }
@@ -1123,6 +1131,18 @@ function Start-PreUpdateEndpointSecurity
Remove-Property $obj "templateId" Remove-Property $obj "templateId"
} }
function Start-PostGetEndpointSecurity
{
param($obj, $objectType)
Add-EndpointSecurityInfo $obj
}
function local:Add-EndpointSecurityInfo
{
param($obj, $baseLineTemplate = $null)
}
#endregion #endregion
#region #region
@@ -1133,7 +1153,7 @@ function Start-PostFileImportDeviceConfiguration
if($obj.'@OData.Type' -like "#microsoft.graph.windows10GeneralConfiguration") if($obj.'@OData.Type' -like "#microsoft.graph.windows10GeneralConfiguration")
{ {
$tmpObj = Get-Content -LiteralPath $importFile | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $importFile
if(($tmpObj.privacyAccessControls | measure).Count -gt 0) if(($tmpObj.privacyAccessControls | measure).Count -gt 0)
{ {
@@ -1829,15 +1849,23 @@ function Start-PostFileImportApplications
{ {
param($obj, $objectType, $file) param($obj, $objectType, $file)
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $file
if(-not ($obj.PSObject.Properties | Where Name -eq '@odata.type')) if(-not ($obj.PSObject.Properties | Where Name -eq '@odata.type'))
{ {
# Add @odata.type property if it is missing. Required by app package import # Add @odata.type property if it is missing. Required by app package import
$obj | Add-Member -MemberType NoteProperty -Name '@odata.type' -Value $objectType.'@odata.type' $obj | Add-Member -MemberType NoteProperty -Name '@odata.type' -Value $objectType.'@odata.type'
} }
$fi = [IO.FileInfo]$file
$tmpFilName = $fi.DirectoryName + "\" + $obj.FileName
if([IO.File]::Exists($tmpFilName) -eq $false)
{
$tmpFilName = $null
}
Start-ImportApp $obj Start-ImportApp $obj $tmpFilName
} }
function local:Start-ImportApp function local:Start-ImportApp
@@ -1982,6 +2010,30 @@ function Add-DetailExtensionApplications
} }
} }
function Start-PreImportAssignmentsApplications
{
param($obj, $objectType, $file, $assignments)
if($obj.'@odata.type' -eq "#microsoft.graph.windowsMicrosoftEdgeApp")
{
foreach($assignment in $assignments)
{
Remove-Property $assignment.target "deviceAndAppManagementAssignmentFilterId"
Remove-Property $assignment.target "deviceAndAppManagementAssignmentFilterType"
}
@{"Assignments"=$assignments}
}
}
function Start-PreDeleteApplications
{
if($obj.'@odata.type' -eq "#microsoft.graph.microsoftStoreForBusinessApp")
{
# Don't delete Microsoft Store for Business Apps
@{ "Delete" = $false }
}
}
#endregion #endregion
#region Group Policy/Administrative Templates functions #region Group Policy/Administrative Templates functions
@@ -2187,7 +2239,7 @@ function Start-PostExportAdministrativeTemplate
} }
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json" $fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json"
ConvertTo-Json $settings -Depth 20 | Out-File -LiteralPath $fileName -Force Save-GraphObjectToFile $settings $fileName
} }
function Start-PostCopyAdministrativeTemplate function Start-PostCopyAdministrativeTemplate
@@ -2208,7 +2260,7 @@ function Start-PostFileImportAdministrativeTemplate
$settings = Get-EMSettingsObject $obj $objectType $file -settingsProperty "definitionValues" -SettingsArray $settings = Get-EMSettingsObject $obj $objectType $file -settingsProperty "definitionValues" -SettingsArray
if($settings) if($settings)
{ {
$tmpObj = (Get-Content -LiteralPath $file) | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $file
Import-GPOSetting $obj $settings -CustomADMX:($tmpObj.policyConfigurationIngestionType -eq "Custom") Import-GPOSetting $obj $settings -CustomADMX:($tmpObj.policyConfigurationIngestionType -eq "Custom")
} }
@@ -2222,8 +2274,8 @@ function Start-LoadAdministrativeTemplate
$fi = [IO.FileInfo]$fileName $fi = [IO.FileInfo]$fileName
if($fi.Exists -eq $false) { return } if($fi.Exists -eq $false) { return }
$obj = Get-Content -LiteralPath $fi.FullName | ConvertFrom-Json $obj = Get-GraphObjectFromFile $fi.FullName
if($obj.definitionValues) if($obj.definitionValues)
{ {
@@ -2234,7 +2286,7 @@ function Start-LoadAdministrativeTemplate
if([IO.File]::Exists($settingsFile)) if([IO.File]::Exists($settingsFile))
{ {
$definitionValues = Get-Content -LiteralPath $settingsFile | ConvertFrom-Json $definitionValues = Get-GraphObjectFromFile $settingsFile
$obj | Add-Member Noteproperty -Name "definitionValues" -Value $definitionValues -Force $obj | Add-Member Noteproperty -Name "definitionValues" -Value $definitionValues -Force
} }
@@ -2444,7 +2496,7 @@ function Start-PostExportRoleDefinitions
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName)).json" $fileName = "$path\$((Remove-InvalidFileNameChars $fileName)).json"
if([IO.File]::Exists($fileName)) if([IO.File]::Exists($fileName))
{ {
$tmpObj = Get-Content -LiteralPath $fileName | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $fileName
} }
else else
{ {
@@ -2468,7 +2520,7 @@ function Start-PostExportRoleDefinitions
if($roleAssignmentsArr.Count -gt 0) if($roleAssignmentsArr.Count -gt 0)
{ {
$tmpObj.RoleAssignments = $roleAssignmentsArr $tmpObj.RoleAssignments = $roleAssignmentsArr
$tmpObj | ConvertTo-Json -Depth 20 | Out-File -LiteralPath $fileName Save-GraphObjectToFile $tmpObj $fileName
} }
} }
} }
@@ -2485,7 +2537,7 @@ function Start-PostFileImportRoleDefinitions
{ {
param($obj, $objectType, $file) param($obj, $objectType, $file)
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $file
$loadedScopeTags = $global:LoadedDependencyObjects["ScopeTags"] $loadedScopeTags = $global:LoadedDependencyObjects["ScopeTags"]
if(($tmpObj.RoleAssignments | measure).Count -gt 0 -and ($loadedScopeTags | measure).Count -gt 0) if(($tmpObj.RoleAssignments | measure).Count -gt 0 -and ($loadedScopeTags | measure).Count -gt 0)
@@ -2551,7 +2603,7 @@ function Start-PostFileImportNotifications
{ {
param($obj, $objectType, $file) param($obj, $objectType, $file)
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $file
foreach($localizedNotificationMessage in $tmpObj.localizedNotificationMessages) foreach($localizedNotificationMessage in $tmpObj.localizedNotificationMessages)
{ {
@@ -2705,6 +2757,17 @@ function Start-PostListEnrollmentRestrictions
} }
} }
function Start-PreImportAssignmentsEnrollmentRestrictions
{
param($obj, $objectType, $file, $assignments)
if($obj.Priority -eq 0)
{
# Skip Assignment for Default Policy
@{ "Import" = $false }
}
}
#endregion #endregion
#region #region
@@ -2815,7 +2878,7 @@ function Save-EMDefaultPolicy
# Clean up from old version of the script that used the wrong name for Default policies # Clean up from old version of the script that used the wrong name for Default policies
try { [IO.File]::Delete($oldFile) | Out-Null } Catch {} try { [IO.File]::Delete($oldFile) | Out-Null } Catch {}
} }
$obj | ConvertTo-Json -Depth 20 | Out-File -LiteralPath "$path\$((Remove-InvalidFileNameChars $fileName)).json" Save-GraphObjectToFile $obj "$path\$((Remove-InvalidFileNameChars $fileName)).json"
} }
} }
catch {} catch {}
@@ -2831,7 +2894,7 @@ function Get-EMSettingsObject
if($fi.Exists) if($fi.Exists)
{ {
# Settings property removed during import so lets try exported file first # Settings property removed during import so lets try exported file first
$tmpObj = (Get-Content -LiteralPath $fi.FullName) | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $fi.FullName
if($SettingsArray -eq $true) if($SettingsArray -eq $true)
{ {
# Only the an array of settings is expected # Only the an array of settings is expected
@@ -2855,9 +2918,8 @@ function Get-EMSettingsObject
{ {
Write-Log "Settings file '$($fiSettings.FullName)' was not found" 2 Write-Log "Settings file '$($fiSettings.FullName)' was not found" 2
return return
} }
Get-GraphObjectFromFile $fiSettings.FullName
(Get-Content -LiteralPath $fiSettings.FullName) | ConvertFrom-Json
} }
else else
{ {
@@ -2880,7 +2942,7 @@ function Add-EMAssignmentsToExportFile
Write-Log "File not found: $fileName. Could not add assignments to file" 3 Write-Log "File not found: $fileName. Could not add assignments to file" 3
return return
} }
$tmpObj = Get-Content -LiteralPath $fileName | ConvertFrom-Json $tmpObj = Get-GraphObjectFromFile $fileName
if(-not $url) if(-not $url)
{ {
@@ -2897,7 +2959,7 @@ function Add-EMAssignmentsToExportFile
{ {
$tmpObj.Assignments = $assignments $tmpObj.Assignments = $assignments
} }
ConvertTo-Json $tmpObj -Depth 20 | Out-File -LiteralPath $fileName -Force Save-GraphObjectToFile $tmpObj $fileName
} }
} }
@@ -3094,12 +3156,32 @@ function Start-PreImportTermsOfUse
return return
} }
Write-Log "Add file data: $pdfFile"
$bytes = [IO.File]::ReadAllBytes($pdfFile) $bytes = [IO.File]::ReadAllBytes($pdfFile)
$file.fileData = [PSCustomObject]@{ $file.fileData = [PSCustomObject]@{
data = [Convert]::ToBase64String($bytes) data = [Convert]::ToBase64String($bytes)
} }
} }
} }
function Start-PostExportTermsOfUse
{
param($obj, $objectType, $path)
foreach($file in $obj.Files)
{
$url = "agreements/$($obj.id)/file/localizations('$($file.id)')/fileData/data"
$data = (Invoke-GraphRequest -Url $url -ODataMetadata "Minimal").Value
if($data)
{
Write-Log "Save file $($file.FileName)"
$fileName = "$path\$($file.FileName)"
[IO.File]::WriteAllBytes($fileName, [System.Convert]::FromBase64String($data))
}
}
}
#endregion #endregion
#region ADMXFiles #region ADMXFiles
@@ -3174,7 +3256,6 @@ function Start-PreDeleteADMXFiles
@{ "Delete" = $false } @{ "Delete" = $false }
} }
#endregion
#nedregion
Export-ModuleMember -alias * -function * Export-ModuleMember -alias * -function *

View File

@@ -10,7 +10,7 @@ This module manages Application objects in Intune e.g. uploading application fil
#> #>
function Get-ModuleVersion function Get-ModuleVersion
{ {
'3.4.0' '3.7.4'
} }
######################################################################################### #########################################################################################
@@ -362,21 +362,32 @@ function Send-IntuneFileToAzureStorage
$currentChunk = $chunk + 1 $currentChunk = $chunk + 1
Write-Status "Uploading file to Azure Storage`n`nUploading chunk $currentChunk of $chunks ($(($currentChunk / $chunks*100))%)" Write-Status "Uploading file to Azure Storage`n`nUploading chunk $currentChunk of $chunks ($(("{0:N2}" -f ($currentChunk / $chunks*100)))%)"
Write-AzureStorageChunk $sasUri $id $bytes if((Write-AzureStorageChunk $sasUri $id $bytes) -eq $false)
{
Write-Log "Upload failed. Abourting..." 3
break
}
if ($currentChunk -lt $chunks -and $sasRenewalTimer.ElapsedMilliseconds -ge 450000) if ($currentChunk -lt $chunks -and $sasRenewalTimer.ElapsedMilliseconds -ge 450000)
{ {
Request-RenewAzureStorageUpload $fileUri Request-RenewAzureStorageUpload $fileUri
$sasRenewalTimer.Restart() $sasRenewalTimer.Restart()
} }
} }
$reader.Close()
} }
catch
{
Write-Log "Failed to send file to Intune. $($_.Exception.Message)" 3
}
finally finally
{ {
if ($reader -ne $null) { $reader.Dispose() } if ($reader -ne $null)
{
$reader.Close()
$reader.Dispose()
}
} }
# Finalize the upload. # Finalize the upload.
@@ -443,15 +454,39 @@ function Write-AzureStorageChunk
$curProgressPreference = $ProgressPreference $curProgressPreference = $ProgressPreference
$ProgressPreference = 'SilentlyContinue' $ProgressPreference = 'SilentlyContinue'
try
{ $success = $false
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody $retryCount = 0
} while($true)
catch {
{
Write-Log "Failed to upload file chunk. $($_.Exception.Message)" 3 try
} {
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody
if($retryCount -gt 0)
{
Write-Log "Chunk uploaded successfully"
}
$success = $true
break
}
catch
{
if($_.Exception.HResult -eq -2146233079 -and $retryCount -lt 6)
{
Write-Log "Failed to upload file chunk. Retry in 10 s" 2
$retryCount++
Start-Sleep -Seconds 10
}
else
{
Write-Log "Failed to upload file chunk. $($_.Exception.Message)" 3
break
}
}
}
$ProgressPreference = $curProgressPreference $ProgressPreference = $curProgressPreference
$success
} }
function Get-IntuneKey function Get-IntuneKey

View File

@@ -10,7 +10,7 @@ This module manages Authentication for the application with MSAL. It is also res
#> #>
function Get-ModuleVersion function Get-ModuleVersion
{ {
'3.7.2' '3.7.4'
} }
$global:msalAuthenticator = $null $global:msalAuthenticator = $null
@@ -231,7 +231,7 @@ function Get-MSALUserInfo
$global:Me = $tmpMe $global:Me = $tmpMe
Write-Log "Get profile picture" Write-Log "Get profile picture"
$global:profilePhoto = "$($env:LOCALAPPDATA)\CloudAPIPowerShellManagement\$($global:Me.Id).jpeg" $global:profilePhoto = "$($env:LOCALAPPDATA)\CloudAPIPowerShellManagement\$($global:Me.Id).jpeg"
MSGraph\Invoke-GraphRequest "me/photos/48x48/`$value" -OutFile $global:profilePhoto -SkipAuthentication | Out-Null MSGraph\Invoke-GraphRequest "me/photos/48x48/`$value" -OutFile $global:profilePhoto -SkipAuthentication -NoError | Out-Null
} }
Write-Log "Get organization info" Write-Log "Get organization info"

View File

@@ -10,7 +10,7 @@ This module manages Microsoft Grap fuctions like calling APIs, managing graph ob
#> #>
function Get-ModuleVersion function Get-ModuleVersion
{ {
'3.7.2' '3.7.4'
} }
$global:MSGraphGlobalApps = @( $global:MSGraphGlobalApps = @(
@@ -451,7 +451,25 @@ function Invoke-GraphRequest
} }
else else
{ {
Write-LogError "Failed to invoke MS Graph with URL $Url (Request ID: $requestId). Status code: $($_.Exception.Response.StatusCode)" $_.Excption $extMessage = $null
try
{
$reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
$reader.BaseStream.Position = 0
$reader.DiscardBufferedData()
$response = $reader.ReadToEnd() | ConvertFrom-Json
if($response.Error.Message)
{
$message = $response.Error.Message | ConvertFrom-Json
if($message.Message)
{
$extMessage = ". Response message: $($message.Message)"
}
}
}
catch{}
Write-LogError "Failed to invoke MS Graph with URL $Url (Request ID: $requestId). Status code: $($_.Exception.Response.StatusCode)$extMessage" $_.Excption
} }
} }
} while($retryRequest -eq $true) } while($retryRequest -eq $true)
@@ -559,21 +577,31 @@ function Get-GraphObjects
if($graphObjects -and ($graphObjects | GM -Name Value -MemberType NoteProperty)) if($graphObjects -and ($graphObjects | GM -Name Value -MemberType NoteProperty))
{ {
$retObjects = $graphObjects.Value $retObjects = $graphObjects.Value
} }
else else
{ {
$retObjects = $graphObjects $retObjects = $graphObjects
} }
$graphObjects = Add-GraphObjectProperties $retObjects $objectType $property $exclude $SortProperty if($retObjects)
if($SingleObject -ne $true -and $objectType.PostListCommand)
{ {
$graphObjects = & $objectType.PostListCommand $graphObjects $objectType $graphObjects = Add-GraphObjectProperties $retObjects $objectType $property $exclude $SortProperty
if($SingleObject -ne $true -and $objectType.PostListCommand)
{
$graphObjects = & $objectType.PostListCommand $graphObjects $objectType
}
}
else
{
$graphObjects = $null
} }
$graphObjects if(($graphObjects | measure).Count -gt 0)
{
$graphObjects
}
} }
function Add-GraphObjectProperties function Add-GraphObjectProperties
@@ -693,12 +721,12 @@ function Show-GraphObjects
$script:nextGraphPage = $null $script:nextGraphPage = $null
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage -Filter $filter) [array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage -Filter $filter
$dgObjects.AutoGenerateColumns = $false $dgObjects.AutoGenerateColumns = $false
$dgObjects.Columns.Clear() $dgObjects.Columns.Clear()
if(($graphObjects | measure).Count -gt 0) if($graphObjects)
{ {
$tmpObj = $graphObjects | Select -First 1 $tmpObj = $graphObjects | Select -First 1
@@ -1335,7 +1363,7 @@ function Start-GraphObjectExport
$folder = Expand-FileName $folder $folder = Expand-FileName $folder
Write-Status "Get a list of all $($item.ObjectType.Title) objects" -SkipLog -Force Write-Status "Get a list of all $($item.ObjectType.Title) objects" -SkipLog -Force
$objects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$objects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
if((Get-SettingValue "UseBatchAPI") -eq $true) if((Get-SettingValue "UseBatchAPI") -eq $true)
{ {
@@ -1345,6 +1373,7 @@ function Start-GraphObjectExport
$total = ($batchObjects | measure).Count $total = ($batchObjects | measure).Count
foreach($batchResult in $batchObjects) foreach($batchResult in $batchObjects)
{ {
if(-not $batchResult.Object) { continue }
$objName = Get-GraphObjectName $batchResult.Object $batchResult.ObjectType $objName = Get-GraphObjectName $batchResult.Object $batchResult.ObjectType
Write-Status "Export $($item.Title): $objName ($($i)/$($total))" -Force Write-Status "Export $($item.Title): $objName ($($i)/$($total))" -Force
Export-GraphObject $batchResult.Object $batchResult.ObjectType $folder -IsFullObject Export-GraphObject $batchResult.Object $batchResult.ObjectType $folder -IsFullObject
@@ -1621,7 +1650,7 @@ function Show-GraphImportForm
$navigationPropObjects = @() $navigationPropObjects = @()
foreach ($fileObj in $filesToImport) foreach ($fileObj in $filesToImport)
{ {
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and (Reset-GraphObjet $fileObj $global:dgObjects.ItemsSource)) if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and (Reset-GraphObject $fileObj $global:dgObjects.ItemsSource))
{ {
continue continue
} }
@@ -1839,7 +1868,7 @@ function Start-GraphObjectImport
try try
{ {
Write-Status "Get $($item.Title) objects" -Force Write-Status "Get $($item.Title) objects" -Force
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
} }
catch {} catch {}
} }
@@ -1864,7 +1893,7 @@ function Start-GraphObjectImport
continue continue
} }
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and $graphObjects -and (Reset-GraphObjet $fileObj $graphObjects)) if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and $graphObjects -and (Reset-GraphObject $fileObj $graphObjects))
{ {
$importedObjects++ $importedObjects++
continue continue
@@ -2048,7 +2077,7 @@ function Show-GraphBulkDeleteForm
Write-Log "Start bulk delete" Write-Log "Start bulk delete"
Write-Log "****************************************************************" Write-Log "****************************************************************"
foreach($item in ($global:dgBulkDeleteObjects.ItemsSource | Where Selected -eq $true)) foreach($item in ($global:dgBulkDeleteObjects.ItemsSource | Where Selected -eq $true | sort-object -property @{e={$_.ObjectType.ImportOrder}} -Descending))
{ {
Write-Log "----------------------------------------------------------------" Write-Log "----------------------------------------------------------------"
Write-Log "Delete $($item.ObjectType.Title) objects" Write-Log "Delete $($item.ObjectType.Title) objects"
@@ -2060,8 +2089,8 @@ function Show-GraphBulkDeleteForm
try try
{ {
Write-Status "Get $($item.Title) objects" -Force Write-Status "Get $($item.ObjectType.Title) objects" -Force
$objects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType) [array]$objects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
foreach($obj in $objects) foreach($obj in $objects)
{ {
$objName = Get-GraphObjectName $obj.Object $obj.ObjectType $objName = Get-GraphObjectName $obj.Object $obj.ObjectType
@@ -2071,7 +2100,7 @@ function Show-GraphBulkDeleteForm
continue continue
} }
Write-Status "Delete $($item.Title): $objName" -Force -SkipLog Write-Status "Delete $($item.ObjectType.Title): $objName" -Force -SkipLog
Remove-GraphObject $obj.Object $obj.ObjectType $folder Remove-GraphObject $obj.Object $obj.ObjectType $folder
} }
} }
@@ -2113,12 +2142,7 @@ function Get-GraphFileObjects
} }
else else
{ {
$json = Get-Content -LiteralPath $file.FullName -Raw $graphObj = Get-GraphObjectFromFile $file.FullName
if($global:Organization.Id)
{
$json = $json -replace "%OrganizationId%",$global:Organization.Id
}
$graphObj = (ConvertFrom-Json $json)
} }
$obj = New-Object PSObject -Property @{ $obj = New-Object PSObject -Property @{
@@ -2194,7 +2218,7 @@ function Import-GraphFile
} }
} }
function Reset-GraphObjet function Reset-GraphObject
{ {
param($fileObj, $objectList) param($fileObj, $objectList)
@@ -2369,10 +2393,12 @@ function Import-GraphObjectAssignment
if($preConfig["Import"] -eq $false) { return } # Assignment managed manually so skip further processing if($preConfig["Import"] -eq $false) { return } # Assignment managed manually so skip further processing
$api = ?? $preConfig["API"] "$($objectType.API)/$($newObj.Id)/assign" $api = ?? $preConfig["API"] "$($objectType.API)/$($obj.Id)/assign"
$method = ?? $preConfig["Method"] "POST" $method = ?? $preConfig["Method"] "POST"
$clonedAssignments = ?? $preConfig["Assignments"] $clonedAssignments
$keepProperties = ?? $objectType.AssignmentProperties @("target") $keepProperties = ?? $objectType.AssignmentProperties @("target")
$keepTargetProperties = ?? $objectType.AssignmentTargetProperties @("@odata.type","groupId","deviceAndAppManagementAssignmentFilterId","deviceAndAppManagementAssignmentFilterType") $keepTargetProperties = ?? $objectType.AssignmentTargetProperties @("@odata.type","groupId","deviceAndAppManagementAssignmentFilterId","deviceAndAppManagementAssignmentFilterType")
@@ -2417,8 +2443,7 @@ function Import-GraphObjectAssignment
if($objectType.PostImportAssignmentsCommand) if($objectType.PostImportAssignmentsCommand)
{ {
& $objectType.PostImportAssignmentsCommand $obj $objectType $fromFile $objAssign & $objectType.PostImportAssignmentsCommand $obj $objectType $fromFile $objAssign
} }
} }
#endregion #endregion
@@ -2572,7 +2597,7 @@ function Add-GroupMigrationObject
if(-not $groupObj) if(-not $groupObj)
{ {
# Get group info # Get group info
$groupObj = Invoke-GraphRequest "/groups/$groupId" -ODataMetadata "none" $groupObj = Invoke-GraphRequest "/groups/$groupId" -ODataMetadata "none" -NoError
} }
if($groupObj) if($groupObj)
@@ -2587,9 +2612,13 @@ function Add-GroupMigrationObject
$grouspPath = Join-Path $path "Groups" $grouspPath = Join-Path $path "Groups"
if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null } if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null }
$fileName = "$grouspPath\$((Remove-InvalidFileNameChars $groupObj.displayName)).json" $fileName = "$grouspPath\$((Remove-InvalidFileNameChars $groupObj.displayName)).json"
ConvertTo-Json $groupObj -Depth 50 | Out-File $fileName -Force Save-GraphObjectToFile $groupObj $fileName
} }
} }
else
{
Write-Log "No group found with ID $($groupId). It might be deleted." 2
}
} }
function Add-GraphMigrationObject function Add-GraphMigrationObject
@@ -2626,7 +2655,7 @@ function Add-GraphMigrationObject
$grouspPath = Join-Path $path "Groups" $grouspPath = Join-Path $path "Groups"
if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null } if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null }
$fileName = "$grouspPath\$((Remove-InvalidFileNameChars $graphObj.displayName)).json" $fileName = "$grouspPath\$((Remove-InvalidFileNameChars $graphObj.displayName)).json"
ConvertTo-Json $graphObj -Depth 50 | Out-File $fileName -Force Save-GraphObjectToFile $graphObj $fileName
} }
} }
} }
@@ -2769,7 +2798,7 @@ function Get-GraphMigrationObjectsFromFile
{ {
# ToDo: Create group from Json (could be a dynamic group) # ToDo: Create group from Json (could be a dynamic group)
# Warn if synched group # Warn if synched group
$groupObj = (Get-Content -LiteralPath $groupFi.FullName) | ConvertFrom-Json $groupObj = Get-GraphObjectFromFile $groupFi.FullName
#isAssignableToRole - For Role assignment groupd. #isAssignableToRole - For Role assignment groupd.
$keepProps = @("displayName","description","mailEnabled","mailNickname","securityEnabled","membershipRule","groupTypes", "membershipRuleProcessingState") $keepProps = @("displayName","description","mailEnabled","mailNickname","securityEnabled","membershipRule","groupTypes", "membershipRuleProcessingState")
@@ -3017,7 +3046,7 @@ function Export-GraphObject
[switch]$SkipAddID, [switch]$SkipAddID,
[switch]$PassThru) [switch]$PassThru)
if(-not $exportFolder) { return } if(-not $exportFolder -or -not $objToExport -or -not $objectType) { return }
Write-Status "Export $((Get-GraphObjectName $objToExport $objectType))" Write-Status "Export $((Get-GraphObjectName $objToExport $objectType))"
@@ -3057,14 +3086,7 @@ function Export-GraphObject
} }
$fullPath = ([IO.Path]::Combine($exportFolder, (Remove-InvalidFileNameChars "$($fileName).json"))) $fullPath = ([IO.Path]::Combine($exportFolder, (Remove-InvalidFileNameChars "$($fileName).json")))
$json = $obj | ConvertTo-Json -Depth 50 Save-GraphObjectToFile $obj $fullPath
if($global:Organization.Id)
{
$json = $json -replace $global:Organization.Id, "%OrganizationId%"
}
$json | Out-File -LiteralPath $fullPath -Force
if($objectType.PostExportCommand) if($objectType.PostExportCommand)
{ {
@@ -3097,12 +3119,11 @@ function Set-GraphNavigationPropertiesFromFile
} }
# Reload data from file. Some object properties was removed before import... # Reload data from file. Some object properties was removed before import...
$objFileInfo = (ConvertFrom-Json (Get-Content -LiteralPath $navPropObject.File.FileInfo.FullName -Raw)) $objFileInfo = Get-GraphObjectFromFile $navPropObject.File.FileInfo.FullName
if(-not ($objFileInfo.PSObject.Properties | Where { $_.Name -like "#CustomRef_*" })) { return } if(-not ($objFileInfo.PSObject.Properties | Where { $_.Name -like "#CustomRef_*" })) { return }
Set-GraphNavigationProperties $navPropObject.ImportedObject $objFileInfo $navPropObject.File.ObjectType Set-GraphNavigationProperties $navPropObject.ImportedObject $objFileInfo $navPropObject.File.ObjectType
} }
function Set-GraphNavigationProperties function Set-GraphNavigationProperties
@@ -3264,6 +3285,7 @@ function Get-GraphBatchObjects
$batchArr = @() $batchArr = @()
$batchTotal = 0 $batchTotal = 0
$objectType = $null $objectType = $null
foreach($obj in $objects) foreach($obj in $objects)
{ {
$objectType = $obj.ObjectType $objectType = $obj.ObjectType
@@ -3460,7 +3482,11 @@ function Import-GraphObject
$newObj = (Invoke-GraphRequest -Url $strAPI -Content $json -HttpMethod $method @params) $newObj = (Invoke-GraphRequest -Url $strAPI -Content $json -HttpMethod $method @params)
if($newObj -and $method -eq "POST") if($newObj -is [Boolean] -and $newObj -and $method -eq "PATCH")
{
$newObj = (Get-GraphObject -obj $obj -objectType $objectType -SkipAssignments).Object
}
elseif($newObj -and $method -eq "POST")
{ {
Write-Log "$($objectType.Title) object imported successfully with id: $($newObj.Id)" Write-Log "$($objectType.Title) object imported successfully with id: $($newObj.Id)"
} }
@@ -4120,3 +4146,45 @@ function Get-GraphEntityTypeProperties
$properties $properties
} }
function Get-GraphObjectFromFile
{
param($fileName)
if(-not $fileName) { return }
if([System.IO.File]::Exists($fileName) -eq $false)
{
Write-LogDebug "File $fileName not found" 2
return
}
$json = Get-Content -LiteralPath $fileName -Raw
if($global:Organization.Id)
{
$json = $json -replace "%OrganizationId%",$global:Organization.Id
}
$json | ConvertFrom-Json
}
function Save-GraphObjectToFile
{
param($obj, $fileName)
$json = $obj | ConvertTo-Json -Depth 50
if($global:Organization.Id)
{
$json = $json -replace $global:Organization.Id, "%OrganizationId%"
}
try
{
$json | Out-File -LiteralPath $fileName -Force -ErrorAction Stop
}
catch
{
Write-LogError "Failed to save file $fileName" $_.Exception
}
}

View File

@@ -1,4 +1,38 @@
# Release Notes # Release Notes
## 3.7.4 - 2022-11-17
**Fixes**
Lots of these issues are based on [Issue 94](https://github.com/Micke-K/IntuneManagement/issues/94)<br />
Thank you **Dominique** for all the amazing help with testing!<br />
- **Import/Export**<br />
- Added support for Export of TermsOfUse PDF files<br />
Based on [Issue 27](https://github.com/Micke-K/IntuneManagement/issues/27)<br />
- Fixed an issue where it failed to import .intunewin files during bulk import<br />
- Fixed issue with importing Edge app assignments<br />
- Changed the order for Bulk delete to make sure policies are deleted in the correct order<br />
- Lots of logging fixes for Bulk Export - Logged error when exporting object types not used<br />
- Business Store Apps will not be delete - Not supported<br />
- No import of assignments for default policies (Enrollment Status Page and Enrolment Restrictions)<br />
- Lots of logging fixes for Bulk Delete - Errors if deleting default policies, trying to delete object types that were not used etc.<br />
- **Documentation**<br />
- Added intent for Win32 Assignments<br />
Based on [Issue 98](https://github.com/Micke-K/IntuneManagement/issues/98)<br />
- Fixed an error when documenting Assignments for Win32 apps - Invoke-WordTranslateColumnHeader was missing/removed<br />
Based on [Issue 99](https://github.com/Micke-K/IntuneManagement/issues/99)<br />
<br />
- **Logging**<br />
- Added additional response error information if it failed to call a Graph API<br />
- Missing groups will now only generate a warning instead of Graph API error<br />
- No error for users without a profile photo<br />
<br />
<br />
## 3.7.3 - 2022-10-24 ## 3.7.3 - 2022-10-24
**Fixes** **Fixes**