diff --git a/doc/ComputerSettings.adoc b/doc/ComputerSettings.adoc index d65e172..730b519 100644 --- a/doc/ComputerSettings.adoc +++ b/doc/ComputerSettings.adoc @@ -1,4 +1,4 @@ -// DscConfig.Demo YAML Reference: ComputerSettings +// CommonTasks YAML Reference: ComputerSettings // ============================================ :YmlCategory: ComputerSettings @@ -15,10 +15,11 @@ [cols="1,3a" options="autowidth" caption=] |=== -| Source | https://github.com/dsccommunity/DscConfig.Demo/tree/main/source/DSCResources/ComputerSettings +| Source | https://github.com/dsccommunity/CommonTasks/tree/main/source/DSCResources/ComputerSettings | DSC Resource | https://github.com/dsccommunity/ComputerManagementDsc[ComputerManagementDsc] | Documentation | https://github.com/dsccommunity/ComputerManagementDsc/wiki/Computer[Computer], - https://github.com/dsccommunity/ComputerManagementDsc/wiki/TimeZone[TimeZone] + https://github.com/dsccommunity/ComputerManagementDsc/wiki/TimeZone[TimeZone], + https://github.com/dsccommunity/ComputerManagementDsc/wiki/RemoteDesktopAdmin[RemoteDesktopAdmin] |=== @@ -73,6 +74,18 @@ | Specifies the TimeZone. + | Use `Get-TimeZone -ListAvailable \| Format-Table` to get valid time zone strings. +| AllowRemoteDesktop +| +| Bool +| Enables or disabled remote desktop. + +| + +| RemoteDesktopUserAuthentication +| +| String +| Configures the authentication for remote desktop. + +| Secure, Unsecure + |=== .Example @@ -84,4 +97,6 @@ ComputerSettings: DomainName: Contoso Credential: '[ENC=PE9ianMgVmVyc2lvbj0i...=]' TimeZone: Fiji Standard Time + AllowRemoteDesktop: true + RemoteDesktopUserAuthentication: Secure ---- diff --git a/source/DSCResources/ComputerSettings/ComputerSettings.schema.psm1 b/source/DSCResources/ComputerSettings/ComputerSettings.schema.psm1 index 86e5c09..d84c11d 100644 --- a/source/DSCResources/ComputerSettings/ComputerSettings.schema.psm1 +++ b/source/DSCResources/ComputerSettings/ComputerSettings.schema.psm1 @@ -26,7 +26,14 @@ configuration ComputerSettings { [Parameter()] [string] - $TimeZone + $TimeZone, + + [Parameter()] + [bool]$AllowRemoteDesktop, + + [Parameter()] + [ValidateSet('Secure', 'NonSecure')] + [string]$RemoteDesktopUserAuthentication ) Import-DscResource -ModuleName PSDesiredStateConfiguration @@ -42,11 +49,30 @@ configuration ComputerSettings { } (Get-DscSplattedResource -ResourceName Computer -ExecutionName "Computer$($params.Name)" -Properties $params -NoInvoke).Invoke($params) - $params = @{ } - foreach ($item in ($PSBoundParameters.GetEnumerator() | Where-Object Key -In $timeZoneParamList)) + if ($TimeZone) { - $params.Add($item.Key, $item.Value) + $params = @{ } + foreach ($item in ($PSBoundParameters.GetEnumerator() | Where-Object Key -In $timeZoneParamList)) + { + $params.Add($item.Key, $item.Value) + } + $params.Add('IsSingleInstance', 'Yes') + (Get-DscSplattedResource -ResourceName TimeZone -ExecutionName "TimeZone$($params.Name)" -Properties $params -NoInvoke).Invoke($params) + } + + if ($RemoteDesktopUserAuthentication) + { + $params = @{ } + $params.IsSingleInstance = 'Yes' + $params.UserAuthentication = $RemoteDesktopUserAuthentication + if ($AllowRemoteDesktop) + { + $params.Ensure = 'Present' + } + else + { + $params.Ensure = 'Absent' + } + (Get-DscSplattedResource -ResourceName RemoteDesktopAdmin -ExecutionName "RemoteDesktopAdmin$($params.Name)" -Properties $params -NoInvoke).Invoke($params) } - $params.Add('IsSingleInstance', 'Yes') - (Get-DscSplattedResource -ResourceName TimeZone -ExecutionName "TimeZone$($params.Name)" -Properties $params -NoInvoke).Invoke($params) }