Public/New-ADSISiteSubnet.ps1
function New-ADSISiteSubnet { <# .SYNOPSIS Function to create a new Site Subnet .DESCRIPTION Function to create a new Site Subnet .PARAMETER SubnetName Specifies the SubnetName. Example '192.168.8.0/24' .PARAMETER SiteName Specifies the SiteName where the subnet will be assigned .PARAMETER Location Specifies the location of the subnet .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 subnet should be created By default it will use the current forest. .EXAMPLE PS C:\> New-ADSISiteSubnet -SubnetName "5.5.5.0/24" -SiteName "FX3" -Location "test" .NOTES Francois-Xavier.Cat LazyWinAdmin.com @lazywinadm github.com/lazywinadmin .LINK https://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.activedirectorysubnet(v=vs.110).aspx #> [CmdletBinding(SupportsShouldProcess = $true)] param ( [Parameter(Mandatory = $true)] [String]$SubnetName, [Parameter(Mandatory = $true)] [String]$SiteName, [String]$Location, [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 = @{ ContextType = "Forest" } IF ($PSBoundParameters['Credential']) { $ContextSplatting.Credential = $Credential } IF ($PSBoundParameters['ForestName']) { $ContextSplatting.ForestName = $ForestName } $Context = New-ADSIDirectoryContext @ContextSplatting } PROCESS { TRY { IF ($PSCmdlet.ShouldProcess($SubnetName, "Create new Subnet")) { $Subnet = New-Object -TypeName System.DirectoryServices.ActiveDirectory.ActiveDirectorysubnet -ArgumentList $Context, $SubnetName, $SiteName if ($PSBoundParameters['Location']) { $Subnet.Location = $Location } $Subnet.Save() #$SubnetEntry = $Subnet.GetDirectoryEntry() #$SubnetEntry.Description = $subnetdescription #$SubnetEntry.CommitChanges() #$SubnetEntry } } CATCH { $Error[0] break } } END { } } |