DSCResources/cSNMPTrapCommunity/cSNMPTrapCommunity.psm1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
function Get-TargetResource { [CmdletBinding()] [OutputType([System.Collections.Hashtable])] param ( [parameter(Mandatory = $true)] [System.String] $Community ) if (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration')) { New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters -Name TrapConfiguration | Out-Null } $CommunityList = (Get-ChildItem -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration).PSChildName #Building the Hashtable $ReturnValue = @{ CommunityList=$CommunityList -Join ',' } $ReturnValue } function Set-TargetResource { [CmdletBinding()] param ( [parameter(Mandatory = $true)] [System.String] $Community, [ValidateSet("Present","Absent")] [System.String] $Ensure ) switch ($Ensure) { "Present" { Write-Verbose "Addind community to the allowed list" New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration -Name $Community | Out-Null } "Absent" { Write-Verbose "Removing community from the allowed list" Remove-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration -Name $Community -Recurse } } } function Test-TargetResource { [CmdletBinding()] [OutputType([System.Boolean])] param ( [parameter(Mandatory = $true)] [System.String] $Community, [ValidateSet("Present","Absent")] [System.String] $Ensure ) if (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration')) { New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters -Name TrapConfiguration | Out-Null } $CommunityList = (Get-ChildItem -Path HKLM:\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration).PSChildName Switch ($Ensure) { "Present" { if ($Community -in $CommunityList) { $return = $true } else { $return = $false } } "Absent" { if ($Community -in $CommunityList) { $return = $false } else { $return = $true } } } $Return } Export-ModuleMember -Function *-TargetResource |