Unpacking Software Livestream

Join our monthly Unpacking Software livestream to hear about the latest news, chat and opinion on packaging, software deployment and lifecycle management!

Learn More

Chocolatey Product Spotlight

Join the Chocolatey Team on our regular monthly stream where we put a spotlight on the most recent Chocolatey product releases. You'll have a chance to have your questions answered in a live Ask Me Anything format.

Learn More

Chocolatey Coding Livestream

Join us for the Chocolatey Coding Livestream, where members of our team dive into the heart of open source development by coding live on various Chocolatey projects. Tune in to witness real-time coding, ask questions, and gain insights into the world of package management. Don't miss this opportunity to engage with our team and contribute to the future of Chocolatey!

Learn More

Calling All Chocolatiers! Whipping Up Windows Automation with Chocolatey Central Management

Webinar from
Wednesday, 17 January 2024

We are delighted to announce the release of Chocolatey Central Management v0.12.0, featuring seamless Deployment Plan creation, time-saving duplications, insightful Group Details, an upgraded Dashboard, bug fixes, user interface polishing, and refined documentation. As an added bonus we'll have members of our Solutions Engineering team on-hand to dive into some interesting ways you can leverage the new features available!

Watch On-Demand
Chocolatey Community Coffee Break

Join the Chocolatey Team as we discuss all things Community, what we do, how you can get involved and answer your Chocolatey questions.

Watch The Replays
Chocolatey and Intune Overview

Webinar Replay from
Wednesday, 30 March 2022

At Chocolatey Software we strive for simple, and teaching others. Let us teach you just how simple it could be to keep your 3rd party applications updated across your devices, all with Intune!

Watch On-Demand
Chocolatey For Business. In Azure. In One Click.

Livestream from
Thursday, 9 June 2022

Join James and Josh to show you how you can get the Chocolatey For Business recommended infrastructure and workflow, created, in Azure, in around 20 minutes.

Watch On-Demand
The Future of Chocolatey CLI

Livestream from
Thursday, 04 August 2022

Join Paul and Gary to hear more about the plans for the Chocolatey CLI in the not so distant future. We'll talk about some cool new features, long term asks from Customers and Community and how you can get involved!

Watch On-Demand
Hacktoberfest Tuesdays 2022

Livestreams from
October 2022

For Hacktoberfest, Chocolatey ran a livestream every Tuesday! Re-watch Cory, James, Gary, and Rain as they share knowledge on how to contribute to open-source projects such as Chocolatey CLI.

Watch On-Demand

Downloads:

30,869

Downloads of v 1.0.0.46:

401

Last Update:

10 Oct 2014

Package Maintainer(s):

Software Author(s):

  • SEEK Ltd.

Tags:

admin dsc

SEEK DSC Networking

This is not the latest version of SEEK DSC Networking available.

  • 1
  • 2
  • 3

1.0.0.46 | Updated: 10 Oct 2014

Downloads:

30,869

Downloads of v 1.0.0.46:

401

Software Author(s):

  • SEEK Ltd.

Tags:

admin dsc

SEEK DSC Networking 1.0.0.46

This is not the latest version of SEEK DSC Networking available.

  • 1
  • 2
  • 3

Some Checks Have Failed or Are Not Yet Complete

Not All Tests Have Passed


Validation Testing Unknown


Verification Testing Unknown


Scan Testing Successful:

No detections found in any package files

Details
Learn More

Deployment Method: Individual Install, Upgrade, & Uninstall

To install SEEK DSC Networking, run the following command from the command line or from PowerShell:

>

To upgrade SEEK DSC Networking, run the following command from the command line or from PowerShell:

>

To uninstall SEEK DSC Networking, run the following command from the command line or from PowerShell:

>

Deployment Method:

NOTE

This applies to both open source and commercial editions of Chocolatey.

1. Enter Your Internal Repository Url

(this should look similar to https://community.chocolatey.org/api/v2/)


2. Setup Your Environment

1. Ensure you are set for organizational deployment

Please see the organizational deployment guide

2. Get the package into your environment

  • Open Source or Commercial:
    • Proxy Repository - Create a proxy nuget repository on Nexus, Artifactory Pro, or a proxy Chocolatey repository on ProGet. Point your upstream to https://community.chocolatey.org/api/v2/. Packages cache on first access automatically. Make sure your choco clients are using your proxy repository as a source and NOT the default community repository. See source command for more information.
    • You can also just download the package and push it to a repository Download

3. Copy Your Script

choco upgrade seek-dsc-networking -y --source="'INTERNAL REPO URL'" --version="'1.0.0.46'" [other options]

See options you can pass to upgrade.

See best practices for scripting.

Add this to a PowerShell script or use a Batch script with tools and in places where you are calling directly to Chocolatey. If you are integrating, keep in mind enhanced exit codes.

If you do use a PowerShell script, use the following to ensure bad exit codes are shown as failures:


choco upgrade seek-dsc-networking -y --source="'INTERNAL REPO URL'" --version="'1.0.0.46'" 
$exitCode = $LASTEXITCODE

Write-Verbose "Exit code was $exitCode"
$validExitCodes = @(0, 1605, 1614, 1641, 3010)
if ($validExitCodes -contains $exitCode) {
  Exit 0
}

Exit $exitCode

- name: Install seek-dsc-networking
  win_chocolatey:
    name: seek-dsc-networking
    version: '1.0.0.46'
    source: INTERNAL REPO URL
    state: present

See docs at https://docs.ansible.com/ansible/latest/modules/win_chocolatey_module.html.


chocolatey_package 'seek-dsc-networking' do
  action    :install
  source   'INTERNAL REPO URL'
  version  '1.0.0.46'
end

See docs at https://docs.chef.io/resource_chocolatey_package.html.


cChocoPackageInstaller seek-dsc-networking
{
    Name     = "seek-dsc-networking"
    Version  = "1.0.0.46"
    Source   = "INTERNAL REPO URL"
}

Requires cChoco DSC Resource. See docs at https://github.com/chocolatey/cChoco.


package { 'seek-dsc-networking':
  ensure   => '1.0.0.46',
  provider => 'chocolatey',
  source   => 'INTERNAL REPO URL',
}

Requires Puppet Chocolatey Provider module. See docs at https://forge.puppet.com/puppetlabs/chocolatey.


4. If applicable - Chocolatey configuration/installation

See infrastructure management matrix for Chocolatey configuration elements and examples.

Package Approved

This package was approved as a trusted package on 06 Nov 2014.

Description

Custom DSC Resources for networking administration


lib\cNetworking\cNetworking.psd1
 
lib\cNetworking\DSCResources\SEEK_cCertReq\SEEK_cCertReq.psm1
<# NOTE: This SSL certificate request module is designed for Local Dev machines ONLY !!! #>

<#
Retrieves a SSL certificate for a Subject located on machine
#>

function Get-TargetResource
{
    [CmdletBinding()]
    [OutputType([System.Collections.Hashtable])]
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$Subject,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$CertPath
    )

    Write-Verbose "Getting CERT"

    $theCert = Get-ChildItem -path $CertPath | Where-Object {$_.Subject -eq $Subject}

    #find the certificate and return
    $certResult = @{
        Subject = $Cert.Subject
        Ensure = "Present"
        SANs = $Cert.DnsNameList
        OnlineCA = $Cert.Issuer
    }

    return $certResult
}

<#
Creates a SSL certificate for a Subject on machine if Present is ensured.
Removes SSL certificate for a Subject on machine if Absent is ensured.
#>
function Set-TargetResource
{
    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$Subject,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$CertPath,

        [ValidateSet("Present", "Absent")]
        [string]$Ensure = "Present",

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String[]]$SANs,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$OnlineCA
    )

    Write-Verbose "Setting CERT"

    if($Ensure -eq "Present")
    {
        Write-Verbose "Creating CERT for $Subject"

        #call certreq
        $subjectDomain = $Subject.split(',')[0].split('=')[1]
        if ($subjectDomain -match "\*.") {
            $subjectDomain = $subjectDomain -replace "\*", "star"
        }
        $CertificateINI = "$subjectDomain.ini"
        $CertificateREQ = "$subjectDomain.req"
        $CertificateRSP = "$subjectDomain.rsp"
        $CertificateCER = "$subjectDomain.cer"

        ### INI file generation
        new-item -type file $CertificateINI -force
        add-content $CertificateINI '[Version]'
        add-content $CertificateINI 'Signature="$Windows NT$"'
        add-content $CertificateINI ''
        add-content $CertificateINI '[NewRequest]'
        $temp = 'Subject="' + $Subject + '"'
        add-content $CertificateINI $temp
        add-content $CertificateINI 'Exportable=TRUE'
        add-content $CertificateINI 'KeyLength=2048'
        add-content $CertificateINI 'KeySpec=1'
        add-content $CertificateINI 'KeyUsage=0xA0'
        add-content $CertificateINI 'MachineKeySet=True'
        add-content $CertificateINI 'ProviderName="Microsoft RSA SChannel Cryptographic Provider"'
        add-content $CertificateINI 'ProviderType=12'
        add-content $CertificateINI 'RequestType=CMC'
        add-content $CertificateINI ''
        add-content $CertificateINI '[RequestAttributes]'
        add-content $CertificateINI 'CertificateTemplate="WebServer"'
        add-content $CertificateINI ''
        add-content $CertificateINI '[EnhancedKeyUsageExtension]'
        add-content $CertificateINI 'OID=1.3.6.1.5.5.7.3.1'
        add-content $CertificateINI ''

        if ($SANs) {
            add-content $CertificateINI '[Extensions]'
            add-content $CertificateINI '2.5.29.17 = "{text}"'

            foreach ($SAN in $SANs) {
                $temp = '_continue_ = "dns=' + $SAN + '&"'
                add-content $CertificateINI $temp
            }
        }

        try
        {
            ### Certificate request generation
            if (test-path $CertificateREQ)     {
                del $CertificateREQ
            }

            Write-Verbose "Converting $CertificateINI to CSR: certreq -new $CertificateINI $CertificateREQ"
            certreq -new $CertificateINI $CertificateREQ

            ### Online certificate request and import
            if ($OnlineCA) {
                if (test-path $CertificateCER) {del $CertificateCER}
                if (test-path $CertificateRSP) {del $CertificateRSP}

                Write-Verbose "Submitting: certreq -submit -config $OnlineCA $CertificateREQ $CertificateCER"
                certreq -submit -config $OnlineCA $CertificateREQ $CertificateCER


                Write-Verbose "Merging certificate response file and CSR together to generate SSL certificate: certreq -accept -config $OnlineCA $CertificateCER"
                certreq -accept -config $OnlineCA $CertificateCER
            }

            Write-Verbose "Finished creating CERT for $Subject"
        }
        catch
        {
            $errorId = "CertReqFailure";
            $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidOperation;
            $errorMessage = "CertGenerationFailure -f ${Name}";
            $exception = New-Object System.InvalidOperationException $errorMessage ;
            $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null

            $PSCmdlet.ThrowTerminatingError($errorRecord)
        }

        Test-TargetResource $Subject $CertPath $Ensure $SANs $OnlineCA
    }
    else
    {
        Write-Verbose "Removing CERT for $Subject"
        $theCert = Get-ChildItem -path $CertPath | Where-Object {$_.Subject -eq $Subject}

        if ($theCert -ne $null)
        {
            $Thumbprint = $theCert.Thumbprint
            Remove-Item -Path "$CertPath\$Thumbprint"

            Write-Verbose "Successfully removed CERT for $Subject"
        }
    }
}

<#
Tests a SSL certificate for a Subject IS located on machine if Present is ensured.
Tests a SSL certificate for a Subject IS NOT located on machine if Absent is ensured.
#>
function Test-TargetResource
{
    [CmdletBinding()]
    [OutputType([System.Boolean])]
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$Subject,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$CertPath,

        [ValidateSet("Present", "Absent")]
        [string]$Ensure = "Present",

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String[]]$SANs,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$OnlineCA
    )

    Write-Verbose "Testing CERT"
    #test that the cert is there
    $theCert = Get-ChildItem -path $CertPath | Where-Object {$_.Subject -eq $Subject}

    if ($theCert -ne $null -and $Ensure -eq "Present")
    {
        Write-Verbose "CERT Thumbprint is $theCert"
        Write-Verbose "CERT is expected to be Present and is Present"
        return $true
    }

    if ($theCert -eq $null -and $Ensure -eq "Absent")
    {
        Write-Verbose "CERT is expected to be Absent and is Absent"
        return $true
    }

    return $false
}


#  FUNCTIONS TO BE EXPORTED
Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource
lib\cNetworking\DSCResources\SEEK_cCertReq\SEEK_cCertReq.schema.mof
 
lib\cNetworking\DSCResources\SEEK_cFirewallRule\SEEK_cFirewallRule.psm1
function Get-TargetResource
{
    [CmdletBinding()]
    [OutputType([System.Collections.Hashtable])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Name
    )

    
    try
    {
        $advFirewallOutput = (Invoke-NetshAdvFirewall -Name $Name -Operation "show")
        $firewallRuleExists = $advFirewallOutput -match "Rule Name:\s+$Name\s+"
    }
    catch
    {
        $firewallRuleExists = $false
    }

    if (-not $firewallRuleExists)
    {
        return @{
            Name = $Name
            Direction = $null
            LocalPort = $null
            Protocol = $null
            Action = $null
            Ensure = "Absent"
        }
    }

    if ($advFirewallOutput -match "Direction:\s+(.+?)\s+")
    { 
        $direction = switch ($Matches[1]) 
        { 
            "in" {"Inbound"} 
            "out" {"Outbound"}
        }
    }
    if ($advFirewallOutput -match "LocalPort:\s+(.+?)\s+")
    {
        $localport = $Matches[1]
    }
    if ($advFirewallOutput -match "Protocol:\s+(.+?)\s+")
    {
        $protocol = $Matches[1]
    }
    if ($advFirewallOutput -match "Action:\s+(.+?)\s+")
    {
        $action = $Matches[1]
    }

    return @{
        Name = $Name
        Direction = $direction
        LocalPort = $localPort
        Protocol = $protocol
        Action = $action
        Ensure = "Present"
    }
}

function Set-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Name,

        [parameter(Mandatory = $true)]
        [ValidateSet("Inbound","Outbound")]
        [System.String]$Direction,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$LocalPort,

        [parameter(Mandatory = $true)]
        [ValidateSet("TCP","UDP")]
        [System.String]$Protocol,

        [parameter(Mandatory = $true)]
        [ValidateSet("Allow","Block", "Bypass")]
        [System.String]$Action,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    if ($Ensure -eq "Present")
    {
        New-NetFirewallRule -Name $Name `
            -Direction $Direction `
            -LocalPort $LocalPort `
            -Protocol $Protocol `
            -Action $Action
    }
    else
    {
        Remove-NetFirewallRule -Name $Name
    }
}

function Test-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Name,

        [parameter(Mandatory = $true)]
        [ValidateSet("Inbound","Outbound")]
        [System.String]$Direction,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$LocalPort,

        [parameter(Mandatory = $true)]
        [ValidateSet("TCP","UDP")]
        [System.String]$Protocol,

        [parameter(Mandatory = $true)]
        [ValidateSet("Allow","Block", "Bypass")]
        [System.String]$Action,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    $firewallRule = Get-TargetResource -Name $Name

    if ($Ensure -eq "Absent" -and $firewallRule.Ensure -eq "Absent")
    {
        return $true
    }

    if ($Ensure -eq "Present" `
        -and $firewallRule.Ensure -eq "Present" `
        -and $firewallRule.Direction -eq $Direction `
        -and $firewallRule.LocalPort -eq $LocalPort `
        -and $firewallRule.Protocol -eq $Protocol `
        -and $firewallRule.Action -eq $Action)
    {
        return $true
    }

    return $false
}

function New-NetFirewallRule
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Name,

        [String]$Protocol,

        [String]$LocalPort,
        
        [ValidateSet("Inbound", "Outbound")]
        [String]$Direction,

        [ValidateSet("Allow", "Block", "Bypass")]
        [String]$Action
    )

    Invoke-NetshAdvFirewall -Name $Name `
        -Operation "add" `
        -Protocol $Protocol `
        -LocalPort $LocalPort `
        -Direction $Direction `
        -Action $Action
}

function Remove-NetFirewallRule
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Name
    )

    Invoke-NetshAdvFirewall -Name $Name -Operation "del"
}

function Invoke-NetshAdvFirewall
{
    [CmdletBinding()]
    [OutputType([System.String])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Name,

        [parameter(Mandatory = $true)]
        [ValidateSet("add","del","show")]
        [String]$Operation,

        [String]$Protocol,

        [String]$LocalPort,
        
        [ValidateSet("Inbound", "Outbound")]
        [String]$Direction,

        [ValidateSet("Allow", "Block", "Bypass")]
        [String]$Action
    )

    $argumentList = @(
        'advfirewall', 'firewall', $Operation, 'rule', 
        "name=""${Name}"""
    )
    
    if ($Direction)
    {
        $dir = switch ($Direction) 
        { 
            "Inbound" {"in"} 
            "Outbound" {"out"}
        }
        $argumentList += "dir=$dir"
    }

    if ($Protocol)
    {
        $argumentList += "protocol=$Protocol"
    }

    if ($LocalPort)
    {
        $argumentList += "localport=$LocalPort"
    }

    if ($Action)
    {
        $argumentList += "action=$Action"
    }

    $outputPath = "${env:TEMP}\netsh.out"
    $process = Start-Process netsh -ArgumentList $argumentList -Wait -NoNewWindow -RedirectStandardOutput $outputPath -Passthru
    if ($process.ExitCode -ne 0) { throw "Error performing operation '$Operation' for firewall rule"}
    return ((Get-Content $outputPath) -join "`n")
}

Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource
lib\cNetworking\DSCResources\SEEK_cFirewallRule\SEEK_cFirewallRule.schema.mof
 
lib\cNetworking\DSCResources\SEEK_cIPAddress\SEEK_cIPAddress.psm1
<#######################################################################################
 #  MSDSCPack_IPAddress : DSC Resource that will set/test/get the current IP
 #  Address, by accepting values among those given in MSDSCPack_IPAddress.schema.mof
 #######################################################################################>



######################################################################################
# The Get-TargetResource cmdlet.
# This function will get the present list of IP Address DSC Resource schema variables on the system
######################################################################################
function Get-TargetResource
{
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$IPAddress,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$NodeName
    )

    Write-Warning "SEEK_cIPAddress resource is obsolete, please use SEEK_cStaticIpAddress"

    $returnValue = @{
    }

    $returnValue
}

######################################################################################
# The Set-TargetResource cmdlet.
# This function will set a new IP Address in the current node
######################################################################################
function Set-TargetResource
{
    param
    (
        #IP Address that has to be set
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$IPAddress,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$NodeName
    )

    Write-Warning "SEEK_cIPAddress resource is obsolete, please use SEEK_cStaticIpAddress"

    ValidateProperties @PSBoundParameters
}

######################################################################################
# The Test-TargetResource cmdlet.
# This will test if the given IP Address is among the current node's IP Address collection
######################################################################################
function Test-TargetResource
{
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$IPAddress,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$NodeName
    )

    Write-Warning "SEEK_cIPAddress resource is obsolete, please use SEEK_cStaticIpAddress"

    $result = ValidateProperties @PSBoundParameters

    if ($result -eq $false)
    {
        $errorId = "WebsiteBindingConflictOnStart";
        $errorCategory = [System.Management.Automation.ErrorCategory]::InvalidResult
        $errorMessage = "IPAddress $IPAddress not found..."
        $exception = New-Object System.InvalidOperationException $errorMessage
        $errorRecord = New-Object System.Management.Automation.ErrorRecord $exception, $errorId, $errorCategory, $null

        $PSCmdlet.ThrowTerminatingError($errorRecord);
    }

    $result
}


#######################################################################################
#  Helper function that validates the IP Address properties. If the switch parameter
# "Apply" is set, then it will set the properties after a test
#######################################################################################
function ValidateProperties
{
    param
    (
        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$IPAddress,

        [Parameter(Mandatory)]
        [ValidateNotNullOrEmpty()]
        [String]$NodeName,

        [Switch]$Apply
    )

    $ip = $IPAddress

    if(!([System.Net.Ipaddress]::TryParse($ip, [ref]0)))
    {
       throw "IP Address *$IPAddress* is not in the correct format. Please correct the ipaddress in the configuration and try again"
    }
    try
    {
        #Write-Verbose -Message "Checking the IPAddress ..."
        $Networks = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $NodeName | ? {$_.IPEnabled}

        foreach($Network in $Networks)
        {
            if ($Network.IPAddress.Contains($IPAddress))
            {
                return $true
                break;
            }
        }
        Write-Verbose -Message "IPAddressFound $IPAddressFound"
        return $false
    }
    catch
    {
       Write-Verbose -Message $_
       throw "Can not set or find valid IPAddress using InterfaceAlias $InterfaceAlias and AddressFamily $AddressFamily"
    }
}



#  FUNCTIONS TO BE EXPORTED
Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource
lib\cNetworking\DSCResources\SEEK_cIPAddress\SEEK_cIPAddress.schema.mof
 
lib\cNetworking\DSCResources\SEEK_cStaticIpAddress\SEEK_cStaticIpAddress.psm1
# NOTE: Supports IPv4 addresses only

function Get-TargetResource
{
    [CmdletBinding()]
    [OutputType([System.Collections.Hashtable])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress
    )


    $networkAdapterConfiguration = Get-NetworkAdapterConfigurationByIpAddress $IpAddress

    if ($networkAdapterConfiguration -eq $null)
    {
        return @{
            IpAddress = $IpAddress
            Interface = $null
            SubnetMask = $null
            DHCPEnabled = $null
            Ensure = "Absent"
        }
    }

    $networkAdapter = Get-NetworkAdapterByIndex $networkAdapterConfiguration.Index
    $ipAddressList = $networkAdapterConfiguration.IPAddress | Where-IPv4Address
    $ipSubnetList = $networkAdapterConfiguration.IPSubnet | Where-IPv4Subnet
    $ipAddressIndex = $ipAddressList.IndexOf($IpAddress)

    return @{
        IpAddress = $IpAddress
        Interface = $networkAdapter.NetConnectionID
        SubnetMask = @($ipSubnetList)[$ipAddressIndex]
        DHCPEnabled = $networkAdapterConfiguration.DHCPEnabled
        Ensure = "Present"
    }
}

function Set-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Interface,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$SubnetMask,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    if(!([System.Net.Ipaddress]::TryParse($IpAddress, [ref]0))) { throw "IP Address ""$IpAddress"" is invalid"}
    if(!([System.Net.Ipaddress]::TryParse($SubnetMask, [ref]0))) { throw "SubnetMask ""$SubnetMask"" is invalid"}

    if ($Ensure -eq "Absent")
    {
        Remove-IpAddress -IpAddress $IpAddress -Interface $Interface
    }
    else
    {
        Add-IpAddress -IpAddress $IpAddress -Interface $Interface -SubnetMask $SubnetMask
    }
}

function Test-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Interface,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$SubnetMask,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    $existingIpAddress = Get-TargetResource $IpAddress

    if ($Ensure -eq "Present" -and `
        $existingIpAddress -ne $null -and `
        $existingIpAddress.Interface -eq $Interface -and `
        $existingIpAddress.SubnetMask -eq $SubnetMask -and `
        $existingIpAddress.Ensure -eq $Ensure -and `
        $existingIpAddress.DHCPEnabled -eq $false)
    {
        return $true
    }
    elseif ($Ensure -eq "Absent" -and `
        $existingIpAddress.Ensure -eq $Ensure)
    {
        return $true
    }

    return $false
}

function Add-IpAddress
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Interface,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$SubnetMask
    )

    $networkAdapterConfiguration = Get-NetworkAdapterConfigurationByInterface $Interface

    if (Test-IpAddressBound -IpAddress $IpAddress -Index $networkAdapterConfiguration.Index -SubnetMask $SubnetMask) { return }

    if (Test-IpAddressBound $IpAddress)
    {
        Remove-IpAddress -IpAddress $IpAddress
    }

    $ipAddressList = $networkAdapterConfiguration.IPAddress + @($IpAddress) | Where-IPv4Address
    $ipSubnetList = $networkAdapterConfiguration.IPSubnet + @($SubnetMask) | Where-IPv4Subnet

    Enable-Static -NetworkAdapterConfiguration $networkAdapterConfiguration `
        -IpAddresses $ipAddressList `
        -IpSubnets $ipSubnetList
}

function Remove-IpAddress
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress,

        [parameter(Mandatory = $false)]
        [System.String]$Interface = $null
    )

    $networkAdapterConfiguration = $null
    if ($Interface)
    {
        $networkAdapterConfiguration = Get-NetworkAdapterConfigurationByInterface $Interface
    }
    else
    {
        $networkAdapterConfiguration = Get-NetworkAdapterConfigurationByIpAddress $IpAddress
    }

    $ipAddressList = [System.Collections.ArrayList]@($networkAdapterConfiguration.IPAddress | Where-IPv4Address)
    $ipSubnetList = [System.Collections.ArrayList]@($networkAdapterConfiguration.IPSubnet | Where-IPv4Subnet)

    $ipAddressIndex = $ipAddressList.IndexOf($IpAddress)
    if ($ipAddressIndex -lt 0) {return}
    $ipAddressList.RemoveAt($ipAddressIndex)
    $ipSubnetList.RemoveAt($ipAddressIndex)

    if ($ipAddressList.Length -gt 0)
    {
        Enable-Static -NetworkAdapterConfiguration $networkAdapterConfiguration `
            -IpAddresses ([Object[]]$ipAddressList) `
            -IpSubnets ([Object[]]$ipSubnetList)
    }
    else
    {
        # Adapter is no longer bound to any IP addresses
        # Reverting adapter to DHCP
        Enable-DHCP -NetworkAdapterConfiguration $networkAdapterConfiguration
    }
}

function Where-IPv4Address
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [String]
        $InputObject
    )

    process
    {
        if ($InputObject -notmatch ":")
        {
            Write-Output $InputObject
        }
    }
}

function Where-IPv4Subnet
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [String]
        $InputObject
    )

    process
    {
        if ($InputObject -match "\d+\.\d+\.\d+\.\d+")
        {
            Write-Output $InputObject
        }
    }
}

function Get-NetworkAdapterByIndex
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [Int32]$Index
    )

    $networkAdapter = Get-WmiObject Win32_NetworkAdapter | ? {$_.Index -eq $Index}
    $results = $networkAdapter | measure
    if ($results.count -le 0)
    {
        throw "Could not find a network adapter with index ""$Index"""
    }
    elseif ($results.count -gt 1)
    {
        $matchingAdapters = ($networkAdapter | % Path) -join ", "
        throw "Multiple network adapters match the index ""$Index"" {$matchingAdapters}"
    }

    return ($networkAdapter | Select-Object -First 1)
}

function Get-NetworkAdapterByInterface
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Interface
    )



    $networkAdapter = Get-WmiObject Win32_NetworkAdapter | ? {$_.NetConnectionID -eq $Interface}
    $results = $networkAdapter | measure
    if ($results.count -le 0)
    {
        throw "Could not find a network adapter matching ""$Interface"""
    }
    elseif ($results.count -gt 1)
    {
        $matchingAdapters = ($networkAdapter | % Path) -join ", "
        throw "Multiple network adapters match the interface ""$Interface"" {$matchingAdapters}"
    }


    return ($networkAdapter | Select-Object -First 1)
}

function Get-NetworkAdapterConfigurationByInterface
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$Interface
    )

    $networkAdapter = Get-NetworkAdapterByInterface $Interface
    return (Get-WmiObject Win32_NetworkAdapterConfiguration | ? {$_.Index -eq $networkAdapter.Index} | Select-Object -First 1)
}

function Get-NetworkAdapterConfigurationByIpAddress
{
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress
    )

    $networkAdapterConfiguration = Get-WmiObject Win32_NetworkAdapterConfiguration | ? {$_.IPAddress -contains $IpAddress}

    $results = $networkAdapterConfiguration | measure
    if ($results.count -gt 1)
    {
        $matchingAdapters = ($networkAdapterConfiguration | % Path) -join ", "
        throw "IP Address ""$IpAddress"" is bound to multiple network adapters {$matchingAdapters}"
    }

    return ($networkAdapterConfiguration | Select-Object -First 1)
}

function Test-IpAddressBound
{
    [OutputType([Boolean])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String]$IpAddress,

        [parameter(Mandatory = $false)]
        [ValidateNotNullOrEmpty()]
        [Int32]$Index,

        [parameter(Mandatory = $false)]
        [ValidateNotNullOrEmpty()]
        [System.String]$SubnetMask
    )

    $networkAdapterConfiguration = Get-WmiObject Win32_NetworkAdapterConfiguration | ? {$_.IPAddress -contains $IpAddress}

    if ($Index)
    {
        $networkAdapterConfiguration = $networkAdapterConfiguration | ? {$_.Index -eq $Index}
    }

    if ($SubnetMask)
    {
        $networkAdapterConfiguration = $networkAdapterConfiguration | ? {$_.IPSubnet[$_.IPAddress.IndexOf($IpAddress)] -eq $SubnetMask}
    }

    $results = $networkAdapterConfiguration | measure

    if ($results.count -le 0) { return $false } else { return $true }
}

function Enable-Static
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String[]]$IpAddresses,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [System.String[]]$IpSubnets,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [Object]$NetworkAdapterConfiguration
    )

    $result = $NetworkAdapterConfiguration.EnableStatic($IpAddresses, $IpSubnets)
    if ($result.ReturnValue -ne 0) { throw "Failed to enable static IP addresses on network adapter with index ""$($NetworkAdapterConfiguration.Index)"" {$($IpAddresses -join ", ")}"}
}

function Enable-DHCP
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [Object]$NetworkAdapterConfiguration
    )

    $result = $NetworkAdapterConfiguration.EnableDHCP()
    if ($result.ReturnValue -ne 0) { throw "Failed to enable DHCP on network adapter with index ""$($NetworkAdapterConfiguration.Index)"""}
}

Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource
lib\cNetworking\DSCResources\SEEK_cStaticIpAddress\SEEK_cStaticIpAddress.schema.mof
 
lib\cNetworking\DSCResources\SEEK_cUrlReservation\SEEK_cUrlReservation.psm1
function Get-TargetResource
{
    [CmdletBinding()]
    [OutputType([System.Collections.Hashtable])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port
    )

    $url = Get-Url $Protocol $Hostname $Port
    $urlAclOutput = (Invoke-NetshUrlAcl -Protocol $Protocol -Operation "show" -Url $url)
    $urlReservationExists = $urlAclOutput -match "User:\s(.+?)\s"

    if (!$urlReservationExists)
    {
        return @{
            Protocol = $Protocol
            Hostname = $Hostname
            Port = $Port
            User = $null
            Ensure = "Absent"
        }
    }

    $user = $Matches[1]
    return @{
        Protocol = $Protocol
        Hostname = $Hostname
        Port = $Port
        User = $user
        Ensure = "Present"
    }
}

function Set-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port,

        [ValidateNotNullOrEmpty()]
        [String]$User,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    if ($Ensure -eq "Present")
    {
        New-UrlReservation -Protocol $Protocol -Hostname $Hostname -Port $Port -User $User
    }
    else
    {
        Remove-UrlReservation -Protocol $Protocol -Hostname $Hostname -Port $Port
    }
}

function Test-TargetResource
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port,

        [ValidateNotNullOrEmpty()]
        [String]$User,

        [ValidateSet("Present","Absent")]
        [System.String]
        $Ensure  = "Present"
    )

    $urlReservation = Get-TargetResource -Protocol $Protocol -Hostname $Hostname -Port $Port

    if ($Ensure -eq "Absent" -and $urlReservation.Ensure -eq "Absent")
    {
        return $true
    }

    if ($Ensure -eq "Present" `
        -and $urlReservation.Ensure -eq "Present" `
        -and $urlReservation.Protocol -eq $Protocol `
        -and $urlReservation.Hostname -eq $Hostname `
        -and $urlReservation.Port -eq $Port `
        -and $urlReservation.User -eq $User)
    {
        return $true
    }

    return $false
}

function New-UrlReservation
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port,

        [ValidateNotNullOrEmpty()]
        [String]$User
    )

    $url = Get-Url $Protocol $Hostname $Port
    Invoke-NetshUrlAcl -Protocol $Protocol -Operation "add" -Url $url -User $User
}

function Remove-UrlReservation
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port
    )

    $url = Get-Url $Protocol $Hostname $Port
    Invoke-NetshUrlAcl -Protocol $Protocol -Operation "del" -Url $url
}

function Get-Url
{
    [CmdletBinding()]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Hostname = "*",

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Port
    )

    return "${Protocol}://${Hostname}:${Port}/"
}

function Invoke-NetshUrlAcl
{
    [CmdletBinding()]
    [OutputType([System.String])]
    param
    (
        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Protocol = "http",

        [parameter(Mandatory = $true)]
        [ValidateSet("add","del","show")]
        [String]$Operation,

        [parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [String]$Url,

        [String]$User
    )
    $argumentList = @(
        $Protocol, $Operation, 'urlacl', 
        "url=""${Url}"""
    )
    if ($user)
    {
        $argumentList += "user=""${User}"""
    }
    $outputPath = "${env:TEMP}\netsh.out"
    $process = Start-Process netsh -ArgumentList $argumentList -Wait -NoNewWindow -RedirectStandardOutput $outputPath -Passthru
    if ($process.ExitCode -ne 0) { throw "Error performing operation '${Operation}' for reserved url"}
    return ((Get-Content $outputPath) -join "`n")
}


Export-ModuleMember -function Get-TargetResource, Set-TargetResource, Test-TargetResource
lib\cNetworking\DSCResources\SEEK_cUrlReservation\SEEK_cUrlReservation.schema.mof
 
tools\chocolateyInstall.ps1
try
{
	$DSCResourcesRoot = Join-Path $env:ProgramFiles "WindowsPowerShell\Modules"
	$DSCResourceTarget = Join-Path $env:chocolateyPackageFolder "lib"
	Get-ChildItem $DSCResourceTarget | Foreach-Object {
		if (Test-Path "$DSCResourcesRoot\$_") {
			cmd /c rmdir "$DSCResourcesRoot\$_"
		}
		cmd /c mklink /j "$DSCResourcesRoot\$_" "$DSCResourceTarget\$_"
		Get-ChildItem -Path "$DSCResourcesRoot\$_" -File -Recurse | Unblock-File
	}

	Write-ChocolateySuccess 'SEEK PowerShell DSC Resources'
} catch {
	Write-ChocolateyFailure 'SEEK PowerShell DSC Resources' $($_.Exception.Message)
	$host.SetShouldExit(1)
	throw $_
}
tools\chocolateyUninstall.ps1
try
{
	$DSCResourcesRoot = Join-Path $env:ProgramFiles "WindowsPowerShell\Modules"
	$DSCResourceTarget = Join-Path $env:chocolateyPackageFolder "lib"
	Get-ChildItem $DSCResourceTarget | Foreach-Object { cmd /c rmdir "$DSCResourcesRoot\$_" }

	Write-ChocolateySuccess 'SEEK PowerShell DSC Resources'
} catch {
	Write-ChocolateyFailure 'SEEK PowerShell DSC Resources' $($_.Exception.Message)
	throw $_
}

Log in or click on link to see number of positives.

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Add to Builder Version Downloads Last Updated Status
SEEK DSC Networking 2.0.0.20230301-alpha9 59 Tuesday, January 3, 2023 Exempted
SEEK DSC Networking 2.0.0-alpha9 527 Thursday, July 30, 2015 Approved
SEEK DSC Networking 2.0.0-alpha7 462 Friday, May 1, 2015 Approved
SEEK DSC Networking 2.0.0-alpha6 417 Wednesday, April 22, 2015 Approved
SEEK DSC Networking 2.0.0-alpha5 455 Tuesday, April 21, 2015 Approved
SEEK DSC Networking 2.0.0-alpha4 403 Tuesday, April 21, 2015 Approved
SEEK DSC Networking 2.0.0-alpha2 432 Tuesday, February 24, 2015 Approved
SEEK DSC Networking 2.0.0-alpha1 403 Monday, February 23, 2015 Approved
SEEK DSC Networking 1.0.9-alpha6 428 Tuesday, June 9, 2015 Approved
SEEK DSC Networking 1.0.9-alpha5 391 Tuesday, June 9, 2015 Approved
SEEK DSC Networking 1.0.9-alpha4 352 Tuesday, June 9, 2015 Approved
SEEK DSC Networking 1.0.9-alpha3 421 Tuesday, May 26, 2015 Approved
SEEK DSC Networking 1.0.9-alpha2 398 Tuesday, May 26, 2015 Approved
SEEK DSC Networking 1.0.9-alpha1 392 Friday, May 22, 2015 Approved
SEEK DSC Networking 1.0.4 478 Friday, May 1, 2015 Approved
SEEK DSC Networking 1.0.3 447 Wednesday, April 22, 2015 Approved
SEEK DSC Networking 1.0.2 375 Tuesday, April 21, 2015 Approved
SEEK DSC Networking 1.0.0.87 572 Sunday, February 22, 2015 Approved
SEEK DSC Networking 1.0.0.77 452 Sunday, January 25, 2015 Approved
SEEK DSC Networking 1.0.0.76 412 Wednesday, January 14, 2015 Approved
SEEK DSC Networking 1.0.0.75 648 Tuesday, December 2, 2014 Approved
SEEK DSC Networking 1.0.0.74 527 Sunday, November 9, 2014 Approved
SEEK DSC Networking 1.0.0.73 398 Friday, November 7, 2014 Approved
SEEK DSC Networking 1.0.0.72 398 Thursday, November 6, 2014 Approved
SEEK DSC Networking 1.0.0.71 381 Thursday, November 6, 2014 Approved
SEEK DSC Networking 1.0.0.70 399 Thursday, November 6, 2014 Approved
SEEK DSC Networking 1.0.0.69 419 Monday, November 3, 2014 Approved
SEEK DSC Networking 1.0.0.68 405 Monday, November 3, 2014 Approved
SEEK DSC Networking 1.0.0.67 365 Monday, November 3, 2014 Approved
SEEK DSC Networking 1.0.0.64 403 Thursday, October 30, 2014 Approved
SEEK DSC Networking 1.0.0.63 389 Thursday, October 30, 2014 Approved
SEEK DSC Networking 1.0.0.62 411 Monday, October 27, 2014 Approved
SEEK DSC Networking 1.0.0.61 422 Friday, October 24, 2014 Approved
SEEK DSC Networking 1.0.0.60 371 Friday, October 24, 2014 Approved
SEEK DSC Networking 1.0.0.59 376 Friday, October 24, 2014 Approved
SEEK DSC Networking 1.0.0.58 401 Friday, October 24, 2014 Approved
SEEK DSC Networking 1.0.0.55 422 Friday, October 24, 2014 Approved
SEEK DSC Networking 1.0.0.54 435 Wednesday, October 15, 2014 Approved
SEEK DSC Networking 1.0.0.53 426 Wednesday, October 15, 2014 Approved
SEEK DSC Networking 1.0.0.52 375 Wednesday, October 15, 2014 Approved
SEEK DSC Networking 1.0.0.51 399 Wednesday, October 15, 2014 Approved
SEEK DSC Networking 1.0.0.50 411 Sunday, October 12, 2014 Approved
SEEK DSC Networking 1.0.0.48 395 Friday, October 10, 2014 Approved
SEEK DSC Networking 1.0.0.47 362 Friday, October 10, 2014 Approved
SEEK DSC Networking 1.0.0.46 401 Friday, October 10, 2014 Approved
SEEK DSC Networking 1.0.0.45 394 Thursday, October 9, 2014 Approved
SEEK DSC Networking 1.0.0.43 387 Wednesday, October 8, 2014 Approved
SEEK DSC Networking 1.0.0.42 325 Wednesday, October 8, 2014 Approved
SEEK DSC Networking 1.0.0.41 345 Thursday, October 2, 2014 Approved
SEEK DSC Networking 1.0.0.40 399 Thursday, September 25, 2014 Approved
SEEK DSC Networking 1.0.0.39 392 Thursday, September 25, 2014 Approved
SEEK DSC Networking 1.0.0.37 354 Wednesday, September 24, 2014 Approved
SEEK DSC Networking 1.0.0.36 362 Monday, September 22, 2014 Approved
SEEK DSC Networking 1.0.0.35 378 Monday, September 15, 2014 Approved
SEEK DSC Networking 1.0.0.34 368 Monday, September 15, 2014 Approved
SEEK DSC Networking 1.0.0.33 314 Monday, September 15, 2014 Approved
SEEK DSC Networking 1.0.0.32 398 Thursday, September 11, 2014 Approved
SEEK DSC Networking 1.0.0.31 312 Wednesday, September 10, 2014 Approved
SEEK DSC Networking 1.0.0.30 369 Wednesday, September 10, 2014 Approved
SEEK DSC Networking 1.0.0.29 348 Wednesday, September 10, 2014 Approved
SEEK DSC Networking 1.0.0.28 365 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.27 383 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.20 349 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.19 397 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.18 389 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.17 377 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 1.0.0.13 376 Friday, September 5, 2014 Approved
SEEK DSC Networking 1.0.0.11 360 Friday, September 5, 2014 Approved
SEEK DSC Networking 1.0.0 396 Tuesday, September 9, 2014 Approved
SEEK DSC Networking 0.0.0.1 349 Tuesday, May 5, 2015 Approved

This package has no dependencies.

Discussion for the SEEK DSC Networking Package

Ground Rules:

  • This discussion is only about SEEK DSC Networking and the SEEK DSC Networking package. If you have feedback for Chocolatey, please contact the Google Group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or SEEK DSC Networking, or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.
comments powered by Disqus