Advertisement
JL421

Chocolatey Auto Updates

Sep 19th, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $TranscriptPath = "ServerTranscriptLocation" + $env:COMPUTERNAME
  2. If (!(Test-Path $TranscriptPath))
  3. {
  4.     md $TranscriptPath
  5. }
  6.    
  7. $TranscriptLocation = $TranscriptPath + "\" + $(get-date -f yyyy-MM-dd-hh-mm) + ".txt"
  8.  
  9. Start-Transcript -path $TranscriptLocation
  10.  
  11. If (Test-Path "C:\Chocolatey\bin\chocolatey.exe")
  12. {
  13.     Write-Host `r`n
  14.     Write-Output "Found Chocolatey Install"
  15.     Write-Host `r`n
  16.     $Chocopath = "C:\Chocolatey\bin"
  17. } ElseIf (Test-Path "C:\ProgramData\Chocolatey\bin\chocolatey.exe")
  18. {
  19.     Write-Host `r`n
  20.     Write-Output "Found Chocolatey Install"
  21.     Write-Host `r`n
  22.     $Chocopath = "C:\ProgramData\Chocolatey\bin"
  23. } ELSE {
  24.      iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
  25.      If (Test-Path "C:\Chocolatey\bin\chocolatey.exe")
  26.     {
  27.         Write-Host `r`n
  28.         Write-Output "Found Chocolatey Install"
  29.         Write-Host `r`n
  30.         $Chocopath = "C:\Chocolatey\bin"
  31.     } ElseIf (Test-Path "C:\ProgramData\Chocolatey\bin\chocolatey.exe")
  32.     {
  33.         Write-Host `r`n
  34.         Write-Output "Found Chocolatey Install"
  35.         Write-Host `r`n
  36.         $Chocopath = "C:\ProgramData\Chocolatey\bin"
  37.     }
  38. }
  39.  
  40. $InstalledExp = $Chocopath + '\chocolatey.exe list -lo | ForEach {$_.Substring(0,$_.IndexOf(" "))} | Where {$_ -ne "Reading" -and $_ -ne "No" -and $_ -ne "The" -and $_.Length -gt 0}'
  41.  
  42. $Installed = Invoke-Expression $InstalledExp
  43.  
  44. ForEach ($i in $Installed)
  45. {
  46.     If ($i.Length -gt 0)
  47.     {
  48.         $Update = $Chocopath + "\cup.exe " + $i
  49.         Write-Host Checking for $i update.
  50.         Write-Host `r`n
  51.         Invoke-Expression $Update | Out-Host
  52.         Write-Host `r`n
  53.     }
  54. }
  55.  
  56. $InstallListPath = "PathToInstallList" + "\chocolatey_installs.txt"
  57. $InstallList = Get-Content $InstallListPath
  58.  
  59. IF ($Installed -ne $null)
  60. {
  61.     IF ($InstallList -ne $null)
  62.     {
  63.         $ToInstall = Compare-Object $Installed $InstallList | Where-Object {$_.SideIndicator -eq "=>"} | Select-Object -ExpandProperty InputObject
  64.     }
  65.     ELSE
  66.     {
  67.         EXIT
  68.     }
  69. }
  70. ELSE
  71. {
  72.     IF ($InstallList -ne $null)
  73.     {  
  74.     $ToInstall = $InstallList
  75.     }
  76.     ELSE
  77.     {
  78.         EXIT
  79.     }
  80. }
  81.  
  82. ForEach ($i in $ToInstall)
  83. {
  84.     If ($i.Length -gt 0)
  85.     {
  86.         $Install = $Chocopath + "\cinst.exe " + $i
  87.         Write-Host Installing $i.
  88.         Write-Host `r`n
  89.         Invoke-Expression $Install | Out-Host
  90.         Write-Host `r`n
  91.     }
  92. }
  93. Stop-Transcript
  94.  
  95. EXIT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement