Examples/JsonFile_Example.ps1

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
$output = 'C:\DSCMOF'

Configuration JsonExample
{
    Import-DscResource -ModuleName DSCR_FileContent
    Node localhost
    {
        JsonFile Array {
            Ensure = 'Present'
            Path   = 'C:\JsonTest.json'
            Key    = 'ArrayKey'
            Value  = '[true, 123, "Hello"]'  # JSON formatted string
        }

        JsonFile Bool {
            Ensure = 'Present'
            Path   = 'C:\JsonTest.json'
            Key    = 'BoolKey'
            Value  = 'true'
        }

        JsonFile String {
            Ensure = 'Present'
            Path   = 'C:\JsonTest.json'
            Key    = 'StringKey'
            Value  = 'Hello PowerShell!'
        }

        JsonFile Hash {
            Ensure = 'Present'
            Path   = 'C:\JsonTest.json'
            Key    = 'HashKey'
            Value  = '{"key1": true, "key2": 123}'
        }

        JsonFile Null {
            Ensure = 'Present'
            Path   = 'C:\JsonTest.json'
            Key    = 'NullKey'
            Value  = 'null'
        }
    }
}

JsonExample -OutputPath $output
Start-DscConfiguration -Path  $output -Verbose -wait
Remove-DscConfigurationDocument -Stage Current, Previous, Pending -Force

# Expect Output
<#
{
  "ArrayKey": [
    true,
    123,
    "Hello"
  ],
  "BoolKey": true,
  "StringKey": "Hello PowerShell!",
  "HashKey": {
    "key1": true,
    "key2": 123
  },
  "NullKey": null
}
#>