DSCResources/CustomizeWindows10CompositeDSCResource/CustomizeWindows10CompositeDSCResource.schema.psm1

Configuration CustomizeWindows10CompositeDSCResource {
Param(

        $EnableWin10ConnectedStandby = $true,
        $EnablePowerShellOnWinX = $true,
        $EnableSnapFill = $false,
        $EnableSnapAssist = $false,
        $ShowFileExtensions,
        $ShowHiddenFiles = $false,
        $ShowProtectedOSFiles = $false,
        $ShowDesktopIcons = $true,
        $UserCredentials,
        [ValidateSet("Notify","Automatic")]
        [System.String]
        $WindowsUpdateMode = "AllowUserConfig",
        [ValidateSet("True","False")]
        [System.String]
        $EnableDriverInstallationFromWindowsUpdate = $true

)


switch ($EnableWin10ConnectedStandby) {

$true {$Win10DisableConnectedStandbyValue = '0'}
$false {$Win10DisableConnectedStandbyValue = '1'}

}

Registry Win10DisableConnectedStandby {
        Key = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power'
        ValueName = 'CsEnabled'
        ValueData = $Win10DisableConnectedStandbyValue
        ValueType = 'dword'

}

switch ($EnablePowerShellOnWinX) {

$true {$DontUSePowerShellOnWinXValue = '0'}
$false {$DontUSePowerShellOnWinXValue = '1'}

}

Registry DontUsePowerShellOnWinX {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'DontUSePowerShellOnWinX'
        ValueData = $DontUSePowerShellOnWinXValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials

}

switch ($EnableSnapFill) {

$true {$EnableSnapFillValue = '0'}
$false {$EnableSnapFillValue = '1'}

}

Registry SnapFill {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'SnapFill'
        ValueData = $EnableSnapFillValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials
}

switch ($EnableSnapAssist) {

$true {$EnableSnapAssistValue = '0'}
$false {$EnableSnapAssistValue = '1'}

}

Registry SnapAssist {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'SnapAssist'
        ValueData = $EnableSnapAssistValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials
}


switch ($ShowFileExtensions) {

$true {$ShowFileExtensionsValue = '0'}
$false {$ShowFileExtensionsValue = '1'}

}

Registry ShowFileExtensions {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'HideFileExt'
        ValueData = $ShowFileExtensionsValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials

}

switch ($ShowHiddenFiles) {

$true {$ShowHiddenFilesValue = '1'}
$false {$ShowHiddenFilesValue = '0'}

}

Registry ShowHiddenFiles {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'Hidden'
        ValueData = $ShowHiddenFilesValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials

}

switch ($ShowProtectedOSFiles) {

$true {$ShowProtectedOSFilesValue = '1'}
$false {$ShowProtectedOSFilesValue = '0'}

}

Registry ShowProtectedOSFiles {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'ShowSuperHidden'
        ValueData = $ShowProtectedOSFilesValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials

}

switch ($ShowDesktopIcons) {

$true {$ShowDesktopIconsValue = '0'}
$false {$ShowDesktopIconsValue = '1'}

}

Registry ShowDesktopIcons {
        Key = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced'
        ValueName = 'HideIcons'
        ValueData = $ShowDesktopIconsValue
        ValueType = 'dword'
        PSDSCRunAsCredential = $UserCredentials

}


Switch ($WindowsUpdateMode) {
        "Notify" {$WUOption = "1"}
        "Automatic" {$WUOption = "0"}
}


Registry WindowsUpdateMode {
        Key = 'HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings'
        ValueName = 'UxOption'
        ValueData = $WUOption
        ValueType = 'dword'

}


Switch ($EnableDriverInstallationFromWindowsUpdate) {
        $true {$WUDriverOption = '1'}
        $false {$WUDriverOption = '0'}
}


Registry WindowsUpdateDriverSetting01 {
        Key = 'HKLM:\SOFTWARE\MICROSOFT\Windows\CurrentVersion\DriverSearching'
        ValueName = 'SearchOrderConfig'
        ValueData = $WUDriverOption
        ValueType = 'dword'

}

Registry WindowsUpdateDriverSetting02 {
        Key = 'HKLM:\SOFTWARE\MICROSOFT\Windows\CurrentVersion\Device Metadata'
        ValueName = 'PreventDeviceMetadataFromNetwork'
        ValueData = $WUDriverOption
        ValueType = 'dword'

}





}