DSCResources/xAdcsDeployment/1.0.0.0/DSCResources/MSFT_xAdcsWebEnrollment/MSFT_xAdcsWebEnrollment.psm1
#region Get Resource Function Get-TargetResource { [OutputType([System.Collections.Hashtable])] [CmdletBinding()] param( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [ValidateSet('Present','Absent')] [string] $Ensure = 'Present', [string] $CAConfig, [Parameter(Mandatory = $true)] [pscredential] $Credential ) $ADCSParams = @{ IsSingleInstance = $IsSingleInstance Credential = $Credential Ensure = $Ensure } if ($CAConfig) { $ADCSParams += @{ CAConfig = $CAConfig } } # if $ADCSParams += @{ IsCAWeb = Test-TargetResource @ADCSParams } return $ADCSParams } # Get-TargetResource -Name 'Test' -Credential (Get-Credential) # Expected Outcome: Return a table of appropriate values. #endregion #region Set Resource Function Set-TargetResource { [CmdletBinding()] param( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [ValidateSet('Present','Absent')] [string] $Ensure = 'Present', [string] $CAConfig, [Parameter(Mandatory = $true)] [pscredential] $Credential ) if (-not $CAConfig) { $ADCSParams = @{ Credential = $Credential } } else { $ADCSParams = @{ CAConfig = $CAConfig Credential = $Credential } } # if switch ($Ensure) { 'Present' { (Install-AdcsWebEnrollment @ADCSParams -Force).ErrorString } 'Absent' { (Uninstall-AdcsWebEnrollment -Force).ErrorString } } # switch } # Set-TargetResource -Name 'Test' -Credential (Get-Credential) # Expected Outcome: Setup Certificate Services Web Enrollment on this node. #endregion #region Test Resource Function Test-TargetResource { [OutputType([System.Boolean])] [CmdletBinding()] param( [parameter(Mandatory = $true)] [ValidateSet('Yes')] [String] $IsSingleInstance, [ValidateSet('Present','Absent')] [string] $Ensure = 'Present', [string] $CAConfig, [Parameter(Mandatory = $true)] [pscredential] $Credential ) if (-not $CAConfig) { $ADCSParams = @{ Credential = $Credential } } else { $ADCSParams = @{ CAConfig = $CAConfig Credential = $Credential } } # if try { $null = Install-AdcsWebEnrollment @ADCSParams -WhatIf Switch ($Ensure) { 'Present' { return $false } 'Absent' { return $true } } # switch } catch { Write-verbose $_ Switch ($Ensure) { 'Present' { return $true } 'Absent' { return $false } } # switch } # try } # Test-TargetResource -Name 'Test' -Credential (Get-Credential) # Expected Outcome: Returns a boolean indicating whether Certificate Services Web Enrollment is installed on this node. #endregion Export-ModuleMember -Function *-TargetResource |