Public/Remove-ADSISiteSubnet.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
67
68
69
70
71
72
73
74
75
76
77
78
function Remove-ADSISiteSubnet
{
<#
 .SYNOPSIS
  function to remove a Subnet
  
 .DESCRIPTION
  function to remove a Subnet
  
 .PARAMETER SubnetName
  Specifies the Subnet Name
  
 .PARAMETER Credential
  Specifies the alternative credential to use.
  By default it will use the current user windows credentials.
  
 .PARAMETER ForestName
  Specifies the alternative Forest where the user should be created
  By default it will use the current Forest.
  
 .EXAMPLE
  Remove-ADSISiteSubnet -SubnetName '192.168.8.0/24'
  
 .NOTES
  Francois-Xavier Cat
  lazywinadmin.com
  @lazywinadm
  github.com/lazywinadmin
#>

    
    [CmdletBinding(SupportsShouldProcess = $true)]
    param
    (
        [Parameter(Mandatory = $true)]
        [String]$SubnetName,

        [Alias("RunAs")]
        [System.Management.Automation.PSCredential]
        [System.Management.Automation.Credential()]
        $Credential = [System.Management.Automation.PSCredential]::Empty,

        [String]$ForestName
    )
    
    BEGIN
    {
        Add-Type -AssemblyName System.DirectoryServices.AccountManagement
        
        # Create Context splatting
        $ContextSplatting = @{ }
        
        IF ($PSBoundParameters['Credential']) { $ContextSplatting.Credential = $Credential }
        IF ($PSBoundParameters['ForestName']) { $ContextSplatting.ForestName = $ForestName }
    }
    PROCESS
    {
        TRY
        {
            IF ($PSCmdlet.ShouldProcess($SubnetName, "Remove Subnet"))
            {
                (Get-ADSISiteSubnet -SubnetName $SubnetName @ContextSplatting).Delete()
            }
        }
        CATCH
        {
            Write-Error $Error[0]
            break
        }
    }
    END
    {
    }
}