xCertificateServices/DSCResources/MSFT_xAdcsWebEnrollment/MSFT_xAdcsWebEnrollment.psm1
#region Get Resource Function Get-TargetResource { [CmdletBinding()] param( [ValidateSet('Present','Absent')] [string]$Ensure = 'Present', [string]$CAConfig, [Parameter(Mandatory)] [pscredential]$Credential, [Parameter(Mandatory)] [string]$Name ) $ADCSParams = @{} + $PSBoundParameters $ADCSParams.Remove('Ensure') | out-null $ADCSParams.Remove('Name') | out-null $ADCSParams.Remove('Debug') | out-null $ADCSParams.Remove('ErrorAction') | out-null return @{Ensure = $Ensure Credential = $Credential IsCAWeb = Test-TargetResource @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( [ValidateSet('Present','Absent')] [string]$Ensure = 'Present', [string]$CAConfig, [Parameter(Mandatory)] [pscredential]$Credential, [Parameter(Mandatory)] [string]$Name ) $ADCSParams = @{} + $PSBoundParameters $ADCSParams.Remove('Ensure') | out-null $ADCSParams.Remove('Name') | out-null $ADCSParams.Remove('Debug') | out-null $ADCSParams.Remove('ErrorAction') | out-null switch ($Ensure) { 'Present' {(Install-AdcsWebEnrollment @ADCSParams -Force).ErrorString} 'Absent' {(Uninstall-AdcsWebEnrollment -Force).ErrorString} } } # Set-TargetResource -Name 'Test' -Credential (Get-Credential) # Expected Outcome: Setup Certificate Services Web Enrollment on this node. #endregion #region Test Resource Function Test-TargetResource { [CmdletBinding()] param( [ValidateSet('Present','Absent')] [string]$Ensure = 'Present', [string]$CAConfig, [Parameter(Mandatory)] [pscredential]$Credential, [Parameter(Mandatory)] [string]$Name ) $ADCSParams = @{} + $PSBoundParameters $ADCSParams.Remove('Ensure') | out-null $ADCSParams.Remove('Name') | out-null $ADCSParams.Remove('Debug') | out-null $ADCSParams.Remove('ErrorAction') | out-null try{ $test = Install-AdcsWebEnrollment @ADCSParams -WhatIf Switch ($Ensure) { 'Present' {return $false} 'Absent' {return $true} } } catch{ Write-verbose $_ Switch ($Ensure) { 'Present' {return $true} 'Absent' {return $false} } } } # 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 |