DSCResources/ooRouter/ooRouter.schema.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
Configuration ooRouter {
    Script 'EnableRouting' {
        GetScript  = {
            if ((Get-RemoteAccess).VpnStatus -ne 'Installed') {
                @{ Result = "false"; }
            }
            $nat = &netsh routing ip nat show global
            if ($nat -like 'No information found*') {
                @{ Result = "false"; }
            }

            $ExternalInterface = 'WAN'
            $wan = &netsh routing ip nat show interface $ExternalInterface
            if ($wan -like 'No information found*') {
                @{ Result = "false"; }
            }
            <#
            Get-NetAdapter | Where-Object { $_.Name -ne 'WAN' -and $_.Name -notlike '*_HB' } | ForEach-Object {
                $adapter = &netsh routing ip nat show interface $_.Name
                if ($adapter -like 'No information found*') {
                    @{ Result = "false"; }
                }
            }
            #>

            @{ Result = "true"; }
        }
        TestScript = {
            if ((Get-RemoteAccess).VpnStatus -ne 'Installed') {
                return $false
            }

            $nat = &netsh routing ip nat show global
            if ($nat -like 'No information found*') {
                return $false
            }

            $ExternalInterface = 'WAN'
            $wan = &netsh routing ip nat show interface $ExternalInterface
            if ($wan -like 'No information found*') {
                return $false
            }
            <#
            Get-NetAdapter | Where-Object { $_.Name -ne 'WAN' -and $_.Name -notlike '*_HB' } | ForEach-Object {
                $adapter = &netsh routing ip nat show interface $_.Name
                if ($adapter -like 'No information found*') {
                    return $false
                }
            }
            #>

            return $true
        }
        SetScript  = {
            if ((Get-RemoteAccess).VpnStatus -ne 'Installed') {
                Install-RemoteAccess -VpnType Vpn
            }
            &netsh routing ip nat install

            $ExternalInterface = 'WAN'
            $wan = &netsh routing ip nat show interface $ExternalInterface
            if ($wan -like 'No information found*') {
                &netsh routing ip nat add interface $ExternalInterface
            }
            &netsh routing ip nat set interface $ExternalInterface mode=full

            <#
            Get-NetAdapter | Where-Object { $_.Name -ne 'WAN' -and $_.Name -notlike '*_HB' } | ForEach-Object {
                $adapter = &netsh routing ip nat show interface $_.Name
                if ($adapter -like 'No information found*') {
                    &netsh routing ip nat add interface $_.Name
                }
            }
            #>

        }
    }
}