DSCResources/xTimeZone/xTimeZone.psm1
#--------------------------------------------------------------------------------- #The sample scripts are not supported under any Microsoft standard support #program or service. The sample scripts are provided AS IS without warranty #of any kind. Microsoft further disclaims all implied warranties including, #without limitation, any implied warranties of merchantability or of fitness for #a particular purpose. The entire risk arising out of the use or performance of #the sample scripts and documentation remains with you. In no event shall #Microsoft, its authors, or anyone else involved in the creation, production, or #delivery of the scripts be liable for any damages whatsoever (including, #without limitation, damages for loss of business profits, business interruption, #loss of business information, or other pecuniary loss) arising out of the use #of or inability to use the sample scripts or documentation, even if Microsoft #has been advised of the possibility of such damages #--------------------------------------------------------------------------------- #region LocalizedData $Culture = 'en-us' if (Test-Path -Path (Join-Path -Path $PSScriptRoot -ChildPath $PSUICulture)) { $Culture = $PSUICulture } Import-LocalizedData ` -BindingVariable LocalizedData ` -Filename xTimeZone.psd1 ` -BaseDirectory $PSScriptRoot ` -UICulture $Culture #endregion # Load the Helper Module Import-Module -Name "$PSScriptRoot\..\TimezoneHelper.psm1" -Verbose:$false function Get-TargetResource { [CmdletBinding()] [OutputType([Hashtable])] param ( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $TimeZone ) #Get the current TimeZone $CurrentTimeZone = Get-TimeZone $returnValue = @{ TimeZone = $CurrentTimeZone IsSingleInstance = 'Yes' } #Output the target resource $returnValue } function Set-TargetResource { [CmdletBinding(SupportsShouldProcess=$true)] param ( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $TimeZone ) #Output the result of Get-TargetResource function. $CurrentTimeZone = Get-TimeZone if($PSCmdlet.ShouldProcess("'$TimeZone'",$LocalizedData.ReplaceSystemTimezoneMessage)) { if($CurrentTimeZone -ne $TimeZone) { Write-Verbose -Message ($LocalizedData.SettingTimezoneMessage) Set-TimeZone -TimeZone $TimeZone } else { Write-Verbose -Message ($LocalizedData.TimezoneAlreadySetMessage ` -f $Timezone) } } } function Test-TargetResource { [CmdletBinding()] [OutputType([Boolean])] param ( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [String] $TimeZone ) $CurrentTimeZone = Get-TimeZone if($TimeZone -eq $CurrentTimeZone) { return $true } else { return $false } } Export-ModuleMember -Function *-TargetResource |