module12.psm1

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
enum Ensure
{
    Absent
    Present
}
 
[DscResource()]
class MyTestClassResource{
 
    [DscProperty(Key)]
    [string]$Path
 
    
    [DscProperty(Mandatory)]
    [Ensure] $Ensure
 
    [DscProperty(Mandatory)]
    [ValidateSet("Directory","File")]
    [string]$ItemType

    #Replaces Get-TargetResource
    [MyTestClassResource] Get()
    {
        $Item = Test-Path $This.Path
 
        If($Item -eq $True)
        {
            $This.Ensure = [Ensure]::Present
        }
        Else
        {
            $This.Ensure = [Ensure]::Absent
        }
 
        Return $This
 
    }

    #Replaces Test-TargetResource
    [bool] Test()
    {
        $Item = Test-Path $This.Path
 
        If($This.Ensure -eq [Ensure]::Present)
        {
            Return $Item
        }
        Else
        {
            Return -not $Item
        }
 
    }

    [void] Set()
    {
        $Item = Test-Path $This.Path
        If($This.Ensure -eq [Ensure]::Present)
        {
            If(-not $Item)
            {
                Write-Verbose "Creating Folder"
                New-Item -ItemType Directory -Path $This.Path
            }
        }
        #If [Ensure]::Absent
        Else
        {
            If($Item)
            {
                Write-Verbose "File exists and should be absent. Deleting file"
                Remove-Item -Path $This.Path
            }
        }
 
    } 
 
}