DSCResources/cIntuneDeviceConfigurationPolicyWindows10/cIntuneDeviceConfigurationPolicyWindows10.schema.psm1

configuration cIntuneDeviceConfigurationPolicyWindows10 {
    param (
        [Parameter()]
        [hashtable[]]
        $Items
)

<#
IntuneDeviceConfigurationPolicyWindows10 [String] #ResourceName
{
    DisplayName = [string]
    [AccessTokens = [string[]]]
    [AccountsBlockAddingNonMicrosoftAccountEmail = [bool]]
    [ActivateAppsWithVoice = [string]{ disabled | enabled | notConfigured }]
    [AntiTheftModeBlocked = [bool]]
    [ApplicationId = [string]]
    [ApplicationSecret = [PSCredential]]
    [AppManagementMSIAllowUserControlOverInstall = [bool]]
    [AppManagementMSIAlwaysInstallWithElevatedPrivileges = [bool]]
    [AppManagementPackageFamilyNamesToLaunchAfterLogOn = [string[]]]
    [AppsAllowTrustedAppsSideloading = [string]{ allowed | blocked | notConfigured }]
    [AppsBlockWindowsStoreOriginatedApps = [bool]]
    [Assignments = [MSFT_DeviceManagementConfigurationPolicyAssignments[]]]
    [AuthenticationAllowSecondaryDevice = [bool]]
    [AuthenticationPreferredAzureADTenantDomainName = [string]]
    [AuthenticationWebSignIn = [string]{ disabled | enabled | notConfigured }]
    [BluetoothAllowedServices = [string[]]]
    [BluetoothBlockAdvertising = [bool]]
    [BluetoothBlockDiscoverableMode = [bool]]
    [BluetoothBlocked = [bool]]
    [BluetoothBlockPrePairing = [bool]]
    [BluetoothBlockPromptedProximalConnections = [bool]]
    [CameraBlocked = [bool]]
    [CellularBlockDataWhenRoaming = [bool]]
    [CellularBlockVpn = [bool]]
    [CellularBlockVpnWhenRoaming = [bool]]
    [CellularData = [string]{ allowed | blocked | notConfigured | required }]
    [CertificatesBlockManualRootCertificateInstallation = [bool]]
    [CertificateThumbprint = [string]]
    [ConfigureTimeZone = [string]]
    [ConnectedDevicesServiceBlocked = [bool]]
    [CopyPasteBlocked = [bool]]
    [CortanaBlocked = [bool]]
    [Credential = [PSCredential]]
    [CryptographyAllowFipsAlgorithmPolicy = [bool]]
    [DataProtectionBlockDirectMemoryAccess = [bool]]
    [DefenderBlockEndUserAccess = [bool]]
    [DefenderBlockOnAccessProtection = [bool]]
    [DefenderCloudBlockLevel = [string]{ high | highPlus | notConfigured | zeroTolerance }]
    [DefenderCloudExtendedTimeout = [UInt32]]
    [DefenderCloudExtendedTimeoutInSeconds = [UInt32]]
    [DefenderDaysBeforeDeletingQuarantinedMalware = [UInt32]]
    [DefenderDetectedMalwareActions = [MSFT_MicrosoftGraphdefenderDetectedMalwareActions1]]
    [DefenderDisableCatchupFullScan = [bool]]
    [DefenderDisableCatchupQuickScan = [bool]]
    [DefenderFileExtensionsToExclude = [string[]]]
    [DefenderFilesAndFoldersToExclude = [string[]]]
    [DefenderMonitorFileActivity = [string]{ disable | monitorAllFiles | monitorIncomingFilesOnly | monitorOutgoingFilesOnly | userDefined }]
    [DefenderPotentiallyUnwantedAppAction = [string]{ audit | block | deviceDefault }]
    [DefenderPotentiallyUnwantedAppActionSetting = [string]{ auditMode | enable | notConfigured | userDefined | warn }]
    [DefenderProcessesToExclude = [string[]]]
    [DefenderPromptForSampleSubmission = [string]{ alwaysPrompt | neverSendData | promptBeforeSendingPersonalData | sendAllDataWithoutPrompting | userDefined }]
    [DefenderRequireBehaviorMonitoring = [bool]]
    [DefenderRequireCloudProtection = [bool]]
    [DefenderRequireNetworkInspectionSystem = [bool]]
    [DefenderRequireRealTimeMonitoring = [bool]]
    [DefenderScanArchiveFiles = [bool]]
    [DefenderScanDownloads = [bool]]
    [DefenderScanIncomingMail = [bool]]
    [DefenderScanMappedNetworkDrivesDuringFullScan = [bool]]
    [DefenderScanMaxCpu = [UInt32]]
    [DefenderScanNetworkFiles = [bool]]
    [DefenderScanRemovableDrivesDuringFullScan = [bool]]
    [DefenderScanScriptsLoadedInInternetExplorer = [bool]]
    [DefenderScanType = [string]{ disabled | full | quick | userDefined }]
    [DefenderScheduledQuickScanTime = [string]]
    [DefenderScheduledScanTime = [string]]
    [DefenderScheduleScanEnableLowCpuPriority = [bool]]
    [DefenderSignatureUpdateIntervalInHours = [UInt32]]
    [DefenderSubmitSamplesConsentType = [string]{ alwaysPrompt | neverSend | sendAllSamplesAutomatically | sendSafeSamplesAutomatically }]
    [DefenderSystemScanSchedule = [string]{ everyday | friday | monday | noScheduledScan | saturday | sunday | thursday | tuesday | userDefined | wednesday }]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DeveloperUnlockSetting = [string]{ allowed | blocked | notConfigured }]
    [DeviceManagementBlockFactoryResetOnMobile = [bool]]
    [DeviceManagementBlockManualUnenroll = [bool]]
    [DiagnosticsDataSubmissionMode = [string]{ basic | enhanced | full | none | userDefined }]
    [DisplayAppListWithGdiDPIScalingTurnedOff = [string[]]]
    [DisplayAppListWithGdiDPIScalingTurnedOn = [string[]]]
    [EdgeAllowStartPagesModification = [bool]]
    [EdgeBlockAccessToAboutFlags = [bool]]
    [EdgeBlockAddressBarDropdown = [bool]]
    [EdgeBlockAutofill = [bool]]
    [EdgeBlockCompatibilityList = [bool]]
    [EdgeBlockDeveloperTools = [bool]]
    [EdgeBlocked = [bool]]
    [EdgeBlockEditFavorites = [bool]]
    [EdgeBlockExtensions = [bool]]
    [EdgeBlockFullScreenMode = [bool]]
    [EdgeBlockInPrivateBrowsing = [bool]]
    [EdgeBlockJavaScript = [bool]]
    [EdgeBlockLiveTileDataCollection = [bool]]
    [EdgeBlockPasswordManager = [bool]]
    [EdgeBlockPopups = [bool]]
    [EdgeBlockPrelaunch = [bool]]
    [EdgeBlockPrinting = [bool]]
    [EdgeBlockSavingHistory = [bool]]
    [EdgeBlockSearchEngineCustomization = [bool]]
    [EdgeBlockSearchSuggestions = [bool]]
    [EdgeBlockSendingDoNotTrackHeader = [bool]]
    [EdgeBlockSendingIntranetTrafficToInternetExplorer = [bool]]
    [EdgeBlockSideloadingExtensions = [bool]]
    [EdgeBlockTabPreloading = [bool]]
    [EdgeBlockWebContentOnNewTabPage = [bool]]
    [EdgeClearBrowsingDataOnExit = [bool]]
    [EdgeCookiePolicy = [string]{ allow | blockAll | blockThirdParty | userDefined }]
    [EdgeDisableFirstRunPage = [bool]]
    [EdgeEnterpriseModeSiteListLocation = [string]]
    [EdgeFavoritesBarVisibility = [string]{ hide | notConfigured | show }]
    [EdgeFavoritesListLocation = [string]]
    [EdgeFirstRunUrl = [string]]
    [EdgeHomeButtonConfiguration = [MSFT_MicrosoftGraphedgeHomeButtonConfiguration]]
    [EdgeHomeButtonConfigurationEnabled = [bool]]
    [EdgeHomepageUrls = [string[]]]
    [EdgeKioskModeRestriction = [string]{ digitalSignage | normalMode | notConfigured | publicBrowsingMultiApp | publicBrowsingSingleApp }]
    [EdgeKioskResetAfterIdleTimeInMinutes = [UInt32]]
    [EdgeNewTabPageURL = [string]]
    [EdgeOpensWith = [string]{ newTabPage | notConfigured | previousPages | specificPages | startPage }]
    [EdgePreventCertificateErrorOverride = [bool]]
    [EdgeRequiredExtensionPackageFamilyNames = [string[]]]
    [EdgeRequireSmartScreen = [bool]]
    [EdgeSearchEngine = [MSFT_MicrosoftGraphedgeSearchEngineBase]]
    [EdgeSendIntranetTrafficToInternetExplorer = [bool]]
    [EdgeShowMessageWhenOpeningInternetExplorerSites = [string]{ disabled | enabled | keepGoing | notConfigured }]
    [EdgeSyncFavoritesWithInternetExplorer = [bool]]
    [EdgeTelemetryForMicrosoft365Analytics = [string]{ internet | intranet | intranetAndInternet | notConfigured }]
    [EnableAutomaticRedeployment = [bool]]
    [EnergySaverOnBatteryThresholdPercentage = [UInt32]]
    [EnergySaverPluggedInThresholdPercentage = [UInt32]]
    [Ensure = [string]{ Absent | Present }]
    [EnterpriseCloudPrintDiscoveryEndPoint = [string]]
    [EnterpriseCloudPrintDiscoveryMaxLimit = [UInt32]]
    [EnterpriseCloudPrintMopriaDiscoveryResourceIdentifier = [string]]
    [EnterpriseCloudPrintOAuthAuthority = [string]]
    [EnterpriseCloudPrintOAuthClientIdentifier = [string]]
    [EnterpriseCloudPrintResourceIdentifier = [string]]
    [ExperienceBlockDeviceDiscovery = [bool]]
    [ExperienceBlockErrorDialogWhenNoSIM = [bool]]
    [ExperienceBlockTaskSwitcher = [bool]]
    [ExperienceDoNotSyncBrowserSettings = [string]{ blocked | blockedWithUserOverride | notConfigured }]
    [FindMyFiles = [string]{ disabled | enabled | notConfigured }]
    [GameDvrBlocked = [bool]]
    [Id = [string]]
    [InkWorkspaceAccess = [string]{ disabled | enabled | notConfigured }]
    [InkWorkspaceAccessState = [string]{ allowed | blocked | notConfigured }]
    [InkWorkspaceBlockSuggestedApps = [bool]]
    [InternetSharingBlocked = [bool]]
    [LocationServicesBlocked = [bool]]
    [LockScreenActivateAppsWithVoice = [string]{ disabled | enabled | notConfigured }]
    [LockScreenAllowTimeoutConfiguration = [bool]]
    [LockScreenBlockActionCenterNotifications = [bool]]
    [LockScreenBlockCortana = [bool]]
    [LockScreenBlockToastNotifications = [bool]]
    [LockScreenTimeoutInSeconds = [UInt32]]
    [LogonBlockFastUserSwitching = [bool]]
    [ManagedIdentity = [bool]]
    [MessagingBlockMMS = [bool]]
    [MessagingBlockRichCommunicationServices = [bool]]
    [MessagingBlockSync = [bool]]
    [MicrosoftAccountBlocked = [bool]]
    [MicrosoftAccountBlockSettingsSync = [bool]]
    [MicrosoftAccountSignInAssistantSettings = [string]{ disabled | notConfigured }]
    [NetworkProxyApplySettingsDeviceWide = [bool]]
    [NetworkProxyAutomaticConfigurationUrl = [string]]
    [NetworkProxyDisableAutoDetect = [bool]]
    [NetworkProxyServer = [MSFT_MicrosoftGraphwindows10NetworkProxyServer]]
    [NfcBlocked = [bool]]
    [OneDriveDisableFileSync = [bool]]
    [PasswordBlockSimple = [bool]]
    [PasswordExpirationDays = [UInt32]]
    [PasswordMinimumAgeInDays = [UInt32]]
    [PasswordMinimumCharacterSetCount = [UInt32]]
    [PasswordMinimumLength = [UInt32]]
    [PasswordMinutesOfInactivityBeforeScreenTimeout = [UInt32]]
    [PasswordPreviousPasswordBlockCount = [UInt32]]
    [PasswordRequired = [bool]]
    [PasswordRequiredType = [string]{ alphanumeric | deviceDefault | numeric }]
    [PasswordRequireWhenResumeFromIdleState = [bool]]
    [PasswordSignInFailureCountBeforeFactoryReset = [UInt32]]
    [PersonalizationDesktopImageUrl = [string]]
    [PersonalizationLockScreenImageUrl = [string]]
    [PowerButtonActionOnBattery = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PowerButtonActionPluggedIn = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PowerHybridSleepOnBattery = [string]{ disabled | enabled | notConfigured }]
    [PowerHybridSleepPluggedIn = [string]{ disabled | enabled | notConfigured }]
    [PowerLidCloseActionOnBattery = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PowerLidCloseActionPluggedIn = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PowerSleepButtonActionOnBattery = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PowerSleepButtonActionPluggedIn = [string]{ hibernate | noAction | notConfigured | shutdown | sleep }]
    [PrinterBlockAddition = [bool]]
    [PrinterDefaultName = [string]]
    [PrinterNames = [string[]]]
    [PrivacyAdvertisingId = [string]{ allowed | blocked | notConfigured }]
    [PrivacyAutoAcceptPairingAndConsentPrompts = [bool]]
    [PrivacyBlockActivityFeed = [bool]]
    [PrivacyBlockInputPersonalization = [bool]]
    [PrivacyBlockPublishUserActivities = [bool]]
    [PrivacyDisableLaunchExperience = [bool]]
    [PsDscRunAsCredential = [PSCredential]]
    [ResetProtectionModeBlocked = [bool]]
    [SafeSearchFilter = [string]{ moderate | strict | userDefined }]
    [ScreenCaptureBlocked = [bool]]
    [SearchBlockDiacritics = [bool]]
    [SearchBlockWebResults = [bool]]
    [SearchDisableAutoLanguageDetection = [bool]]
    [SearchDisableIndexerBackoff = [bool]]
    [SearchDisableIndexingEncryptedItems = [bool]]
    [SearchDisableIndexingRemovableDrive = [bool]]
    [SearchDisableLocation = [bool]]
    [SearchDisableUseLocation = [bool]]
    [SearchEnableAutomaticIndexSizeManangement = [bool]]
    [SearchEnableRemoteQueries = [bool]]
    [SecurityBlockAzureADJoinedDevicesAutoEncryption = [bool]]
    [SettingsBlockAccountsPage = [bool]]
    [SettingsBlockAddProvisioningPackage = [bool]]
    [SettingsBlockAppsPage = [bool]]
    [SettingsBlockChangeLanguage = [bool]]
    [SettingsBlockChangePowerSleep = [bool]]
    [SettingsBlockChangeRegion = [bool]]
    [SettingsBlockChangeSystemTime = [bool]]
    [SettingsBlockDevicesPage = [bool]]
    [SettingsBlockEaseOfAccessPage = [bool]]
    [SettingsBlockEditDeviceName = [bool]]
    [SettingsBlockGamingPage = [bool]]
    [SettingsBlockNetworkInternetPage = [bool]]
    [SettingsBlockPersonalizationPage = [bool]]
    [SettingsBlockPrivacyPage = [bool]]
    [SettingsBlockRemoveProvisioningPackage = [bool]]
    [SettingsBlockSettingsApp = [bool]]
    [SettingsBlockSystemPage = [bool]]
    [SettingsBlockTimeLanguagePage = [bool]]
    [SettingsBlockUpdateSecurityPage = [bool]]
    [SharedUserAppDataAllowed = [bool]]
    [SmartScreenAppInstallControl = [string]{ anywhere | notConfigured | preferStore | recommendations | storeOnly }]
    [SmartScreenBlockPromptOverride = [bool]]
    [SmartScreenBlockPromptOverrideForFiles = [bool]]
    [SmartScreenEnableAppInstallControl = [bool]]
    [StartBlockUnpinningAppsFromTaskbar = [bool]]
    [StartMenuAppListVisibility = [string]{ collapse | disableSettingsApp | remove | userDefined }]
    [StartMenuHideChangeAccountSettings = [bool]]
    [StartMenuHideFrequentlyUsedApps = [bool]]
    [StartMenuHideHibernate = [bool]]
    [StartMenuHideLock = [bool]]
    [StartMenuHidePowerButton = [bool]]
    [StartMenuHideRecentJumpLists = [bool]]
    [StartMenuHideRecentlyAddedApps = [bool]]
    [StartMenuHideRestartOptions = [bool]]
    [StartMenuHideShutDown = [bool]]
    [StartMenuHideSignOut = [bool]]
    [StartMenuHideSleep = [bool]]
    [StartMenuHideSwitchAccount = [bool]]
    [StartMenuHideUserTile = [bool]]
    [StartMenuLayoutEdgeAssetsXml = [string]]
    [StartMenuLayoutXml = [string]]
    [StartMenuMode = [string]{ fullScreen | nonFullScreen | userDefined }]
    [StartMenuPinnedFolderDocuments = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderDownloads = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderFileExplorer = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderHomeGroup = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderMusic = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderNetwork = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderPersonalFolder = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderPictures = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderSettings = [string]{ hide | notConfigured | show }]
    [StartMenuPinnedFolderVideos = [string]{ hide | notConfigured | show }]
    [StorageBlockRemovableStorage = [bool]]
    [StorageRequireMobileDeviceEncryption = [bool]]
    [StorageRestrictAppDataToSystemVolume = [bool]]
    [StorageRestrictAppInstallToSystemVolume = [bool]]
    [SupportsScopeTags = [bool]]
    [SystemTelemetryProxyServer = [string]]
    [TaskManagerBlockEndTask = [bool]]
    [TenantId = [string]]
    [TenantLockdownRequireNetworkDuringOutOfBoxExperience = [bool]]
    [UninstallBuiltInApps = [bool]]
    [UsbBlocked = [bool]]
    [VoiceRecordingBlocked = [bool]]
    [WebRtcBlockLocalhostIpAddress = [bool]]
    [WiFiBlockAutomaticConnectHotspots = [bool]]
    [WiFiBlocked = [bool]]
    [WiFiBlockManualConfiguration = [bool]]
    [WiFiScanInterval = [UInt32]]
    [Windows10AppsForceUpdateSchedule = [MSFT_MicrosoftGraphwindows10AppsForceUpdateSchedule]]
    [WindowsSpotlightBlockConsumerSpecificFeatures = [bool]]
    [WindowsSpotlightBlocked = [bool]]
    [WindowsSpotlightBlockOnActionCenter = [bool]]
    [WindowsSpotlightBlockTailoredExperiences = [bool]]
    [WindowsSpotlightBlockThirdPartyNotifications = [bool]]
    [WindowsSpotlightBlockWelcomeExperience = [bool]]
    [WindowsSpotlightBlockWindowsTips = [bool]]
    [WindowsSpotlightConfigureOnLockScreen = [string]{ disabled | enabled | notConfigured }]
    [WindowsStoreBlockAutoUpdate = [bool]]
    [WindowsStoreBlocked = [bool]]
    [WindowsStoreEnablePrivateStoreOnly = [bool]]
    [WirelessDisplayBlockProjectionToThisDevice = [bool]]
    [WirelessDisplayBlockUserInputFromReceiver = [bool]]
    [WirelessDisplayRequirePinForPairing = [bool]]
}
 
#>



    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName Microsoft365DSC

    $dscResourceName = 'IntuneDeviceConfigurationPolicyWindows10'

    $param = $PSBoundParameters
    $param.Remove("InstanceName")

    $dscParameterKeys = 'DisplayName' -split ', '

        foreach ($item in $Items)
        {
            if (-not $item.ContainsKey('Ensure'))
            {
                $item.Ensure = 'Present'
            }
            $keyValues = foreach ($key in $dscParameterKeys)
        {
            $item.$key
        }
        $executionName = $keyValues -join '_'
        $executionName = $executionName -replace "[\s()\\:*-+/{}```"']", '_'
        (Get-DscSplattedResource -ResourceName $dscResourceName -ExecutionName $executionName -Properties $item -NoInvoke).Invoke($item)
    }
}