Posted On April 28, 2021

Add Chocolatey Private Repo

kimconnect 2 comments
blog.KimConnect.com >> Codes >> Add Chocolatey Private Repo
$privateRepo='kimconnectrepo'
$privateRepoUrl='https://choco.kimconnect.net/chocolatey'
$priority=1

# Set private repo source if it doesn't exist
function addRepo{
  param(
    $privateRepoName,
    $privateRepoUrl,
    $priority=1
  )

  function testUrl($url){
    $HTTP_Request = [System.Net.WebRequest]::Create($url)
    $HTTP_Response = $HTTP_Request.GetResponse()
    $HTTP_Status = [int]$HTTP_Response.StatusCode
    If ($HTTP_Status -eq 200) {
        $valid=$true
    }Else {
      $valid=$false
    }
    If (!($HTTP_Response -eq $null)){ $HTTP_Response.Close()}
    return $valid
  }
  # Install Chocolatey from the Intranet private repo
  [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12  
  if (!(Get-Command choco.exe -ErrorAction SilentlyContinue)){
    Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))}
  $privateRepo="'$privateRepoName' -s '$privateRepoUrl' --priority=$priority"  
  $sources=choco source list
  $privateRepoExists=$sources -match $privateRepoName     
  if (!$privateRepoExists -and $(testUrl $privateRepoUrl)){
      invoke-expression "choco source add -n=$privateRepo"
      return $true
  }elseif($privateRepoExists){
    write-host "Private repo $privateRepoName already exists on $env:computername." -foregroundcolor green
    return $True
  }else{
    return $false
  }
}
addRepo $privateRepo $privateRepoUrl $priority

2 thoughts on “Add Chocolatey Private Repo”

  • This is perfect!

    I was looking for a way to add my private repo for company applications that we use internally to install on multiple computers.
    Do we need to add this to the bottom of the install.ps1 file from chocolatey or is this a standalone file? Any kind of brief setup guide would be great!

    Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post

PowerShell: Install and Uninstall App on Remote Machines

# Trigger uninstall of an MSI file$computername="SERVER007"$keywordSearch="Polycom*"$installFile="\\FILESHERVER\Software\Polycom\Polycom_BToE_Connector_4.0.0.0 (new for 2019-07-19)\Polycom_BToE_Connector_4.0.0.0.msi"# Trigger silent install of an…

Basic HTML and HTML5: Make Dead Links Using the Hash Symbol

<h2>CatPhotoApp</h2><main> <p>Click here to view more <a href="http://freecatphotoapp.com" target="_blank">cat photos</a>.</p> <img src="https://bit.ly/fcc-relaxing-cat" alt="A cute orange…

Cisco Fabric Switch – MDS Zoning Template

<# What this script does: 1. Checks to see if an Internet connection via PowerShell…
Other project: DragonCoin.com