diff --git a/Evergreen/Apps/Get-VMwareHorizonClient.ps1 b/Disabled/Get-VMwareHorizonClient.ps1 similarity index 100% rename from Evergreen/Apps/Get-VMwareHorizonClient.ps1 rename to Disabled/Get-VMwareHorizonClient.ps1 diff --git a/Evergreen/Apps/Get-VMwareOSOptimizationTool.ps1 b/Disabled/Get-VMwareOSOptimizationTool.ps1 similarity index 100% rename from Evergreen/Apps/Get-VMwareOSOptimizationTool.ps1 rename to Disabled/Get-VMwareOSOptimizationTool.ps1 diff --git a/Evergreen/Apps/Get-VMwareSDWANClient.ps1 b/Disabled/Get-VMwareSDWANClient.ps1 similarity index 100% rename from Evergreen/Apps/Get-VMwareSDWANClient.ps1 rename to Disabled/Get-VMwareSDWANClient.ps1 diff --git a/Evergreen/Apps/Get-VMwareWorkstationPlayer.ps1 b/Disabled/Get-VMwareWorkstationPlayer.ps1 similarity index 100% rename from Evergreen/Apps/Get-VMwareWorkstationPlayer.ps1 rename to Disabled/Get-VMwareWorkstationPlayer.ps1 diff --git a/Evergreen/Apps/Get-VMwareWorkstationPro.ps1 b/Disabled/Get-VMwareWorkstationPro.ps1 similarity index 100% rename from Evergreen/Apps/Get-VMwareWorkstationPro.ps1 rename to Disabled/Get-VMwareWorkstationPro.ps1 diff --git a/Evergreen/Manifests/VMwareHorizonClient.json b/Disabled/VMwareHorizonClient.json similarity index 100% rename from Evergreen/Manifests/VMwareHorizonClient.json rename to Disabled/VMwareHorizonClient.json diff --git a/Evergreen/Manifests/VMwareOSOptimizationTool.json b/Disabled/VMwareOSOptimizationTool.json similarity index 100% rename from Evergreen/Manifests/VMwareOSOptimizationTool.json rename to Disabled/VMwareOSOptimizationTool.json diff --git a/Evergreen/Manifests/VMwareSDWANClient.json b/Disabled/VMwareSDWANClient.json similarity index 100% rename from Evergreen/Manifests/VMwareSDWANClient.json rename to Disabled/VMwareSDWANClient.json diff --git a/Evergreen/Manifests/VMwareWorkstationPlayer.json b/Disabled/VMwareWorkstationPlayer.json similarity index 100% rename from Evergreen/Manifests/VMwareWorkstationPlayer.json rename to Disabled/VMwareWorkstationPlayer.json diff --git a/Evergreen/Manifests/VMwareWorkstationPro.json b/Disabled/VMwareWorkstationPro.json similarity index 100% rename from Evergreen/Manifests/VMwareWorkstationPro.json rename to Disabled/VMwareWorkstationPro.json diff --git a/Evergreen/Apps/Get-AdoptiumTemurin21.ps1 b/Evergreen/Apps/Get-AdoptiumTemurin21.ps1 new file mode 100644 index 00000000..2fa7ad13 --- /dev/null +++ b/Evergreen/Apps/Get-AdoptiumTemurin21.ps1 @@ -0,0 +1,18 @@ +Function Get-AdoptiumTemurin21 { + <# + .NOTES + Author: Aaron Parker + Twitter: @stealthpuppy + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $False, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + $Output = Get-AdoptiumTemurin -res $res + Write-Output -InputObject $Output +} diff --git a/Evergreen/Apps/Get-AzulZulu21.ps1 b/Evergreen/Apps/Get-AzulZulu21.ps1 new file mode 100644 index 00000000..ffe85bfc --- /dev/null +++ b/Evergreen/Apps/Get-AzulZulu21.ps1 @@ -0,0 +1,18 @@ +function Get-AzulZulu21 { + <# + .NOTES + Author: Aaron Parker + Twitter: @stealthpuppy + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $false, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + $Output = Get-AdoptiumTemurin -res $res + Write-Output -InputObject $Output +} diff --git a/Evergreen/Apps/Get-FileZilla.ps1 b/Evergreen/Apps/Get-FileZilla.ps1 index 0d7da7d0..f14a9d29 100644 --- a/Evergreen/Apps/Get-FileZilla.ps1 +++ b/Evergreen/Apps/Get-FileZilla.ps1 @@ -8,10 +8,10 @@ function Get-FileZilla { Author: Aaron Parker Twitter: @stealthpuppy #> - [CmdletBinding(SupportsShouldProcess = $False)] + [CmdletBinding(SupportsShouldProcess = $false)] [OutputType([System.Management.Automation.PSObject])] param ( - [Parameter(Mandatory = $False, Position = 0)] + [Parameter(Mandatory = $false, Position = 0)] [ValidateNotNull()] [System.Management.Automation.PSObject] $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) @@ -19,21 +19,19 @@ function Get-FileZilla { # Query the update feed $params = @{ - Uri = $res.Get.Update.Uri - UserAgent = $res.Get.Update.UserAgent + Uri = $res.Get.Update.Uri + UserAgent = $res.Get.Update.UserAgent + Headers = @{ + Accept = "*/*" + } SkipCertificateCheck = $true - Raw = $true + Raw = $true } $Content = Invoke-EvergreenWebRequest @params # Convert the content to an object - try { - $Updates = $Content | ConvertFrom-Csv -Delimiter $res.Get.Update.Delimiter -Header $res.Get.Update.Headers | ` - Where-Object { $_.Channel -eq $res.Get.Update.Channel } - } - catch { - throw $_ - } + $Updates = $Content | ConvertFrom-Csv -Delimiter $res.Get.Update.Delimiter -Header $res.Get.Update.Headers | ` + Where-Object { $_.Channel -eq $res.Get.Update.Channel } # Output the object to the pipeline foreach ($Update in $Updates) { diff --git a/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer.ps1 b/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer.ps1 index e3b0cb08..f608b0af 100644 --- a/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer.ps1 +++ b/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer.ps1 @@ -12,6 +12,17 @@ function Get-MicrosoftODBCDriverForSQLServer { $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) ) - $Output = Get-MicrosoftFwLink -res $res - Write-Output -InputObject $Output + foreach ($language in $res.Get.Download.Language.GetEnumerator()) { + foreach ($Url in $res.Get.Download.Uri) { + + # Construct the URL to include the language + $Query = "&clcid=" + $Uri = "$($Url)$($Query)$($res.Get.Download.Language[$language.key])" + $params = @{ + Uri = $Uri + MaximumRedirection = $res.Get.Download.MaximumRedirection + } + Resolve-MicrosoftFwLink @params | ForEach-Object { $_.Language = $language.key; $_ } | Write-Output + } + } } diff --git a/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer17.ps1 b/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer17.ps1 new file mode 100644 index 00000000..dbc10baf --- /dev/null +++ b/Evergreen/Apps/Get-MicrosoftODBCDriverForSQLServer17.ps1 @@ -0,0 +1,28 @@ +function Get-MicrosoftODBCDriverForSQLServer17 { + <# + .SYNOPSIS + + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $False, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + foreach ($language in $res.Get.Download.Language.GetEnumerator()) { + foreach ($Url in $res.Get.Download.Uri) { + + # Construct the URL to include the language + $Query = "&clcid=" + $Uri = "$($Url)$($Query)$($res.Get.Download.Language[$language.key])" + $params = @{ + Uri = $Uri + MaximumRedirection = $res.Get.Download.MaximumRedirection + } + Resolve-MicrosoftFwLink @params | ForEach-Object { $_.Language = $language.key; $_ } | Write-Output + } + } +} diff --git a/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer.ps1 b/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer.ps1 index 1e7ff798..af222c43 100644 --- a/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer.ps1 +++ b/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer.ps1 @@ -12,6 +12,17 @@ function Get-MicrosoftOLEDBDriverForSQLServer { $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) ) - $Output = Get-MicrosoftFwLink -res $res - Write-Output -InputObject $Output + foreach ($language in $res.Get.Download.Language.GetEnumerator()) { + foreach ($Url in $res.Get.Download.Uri) { + + # Construct the URL to include the language + $Query = "&clcid=" + $Uri = "$($Url)$($Query)$($res.Get.Download.Language[$language.key])" + $params = @{ + Uri = $Uri + MaximumRedirection = $res.Get.Download.MaximumRedirection + } + Resolve-MicrosoftFwLink @params | ForEach-Object { $_.Language = $language.key; $_ } | Write-Output + } + } } diff --git a/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer18.ps1 b/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer18.ps1 new file mode 100644 index 00000000..ff7a6a93 --- /dev/null +++ b/Evergreen/Apps/Get-MicrosoftOLEDBDriverForSQLServer18.ps1 @@ -0,0 +1,28 @@ +function Get-MicrosoftOLEDBDriverForSQLServer18 { + <# + .SYNOPSIS + + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $False, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + foreach ($language in $res.Get.Download.Language.GetEnumerator()) { + foreach ($Url in $res.Get.Download.Uri) { + + # Construct the URL to include the language + $Query = "&clcid=" + $Uri = "$($Url)$($Query)$($res.Get.Download.Language[$language.key])" + $params = @{ + Uri = $Uri + MaximumRedirection = $res.Get.Download.MaximumRedirection + } + Resolve-MicrosoftFwLink @params | ForEach-Object { $_.Language = $language.key; $_ } | Write-Output + } + } +} diff --git a/Evergreen/Apps/Get-MicrosoftOpenJDK21.ps1 b/Evergreen/Apps/Get-MicrosoftOpenJDK21.ps1 new file mode 100644 index 00000000..46599bdb --- /dev/null +++ b/Evergreen/Apps/Get-MicrosoftOpenJDK21.ps1 @@ -0,0 +1,18 @@ +function Get-MicrosoftOpenJDK21 { + <# + .NOTES + Author: Aaron Parker + Twitter: @stealthpuppy + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $False, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + $Output = Get-AdoptiumTemurin -res $res + Write-Output -InputObject $Output +} diff --git a/Evergreen/Apps/Get-MicrosoftSsms.ps1 b/Evergreen/Apps/Get-MicrosoftSsms.ps1 index 8b76dc3a..5533890c 100644 --- a/Evergreen/Apps/Get-MicrosoftSsms.ps1 +++ b/Evergreen/Apps/Get-MicrosoftSsms.ps1 @@ -8,7 +8,7 @@ function Get-MicrosoftSsms { Twitter: @stealthpuppy #> [OutputType([System.Management.Automation.PSObject])] - [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification="Product name is a plural")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification = "Product name is a plural")] [CmdletBinding(SupportsShouldProcess = $false)] param ( [Parameter(Mandatory = $false, Position = 0)] @@ -17,30 +17,23 @@ function Get-MicrosoftSsms { $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) ) - # Resolve the SSMS update feed - $UpdateFeed = Resolve-SystemNetWebRequest -Uri $res.Get.Update.Uri + # Follow the https://go.microsoft.com/fwlink/?linkid= link to get to the update XML + $UpdateFeed = Invoke-EvergreenRestMethod -Uri $res.Get.Update.Uri + if ($UpdateFeed -is [System.Xml.XmlElement]) { - # SQL Management Studio downloads/versions documentation - $params = @{ - Uri = $UpdateFeed.ResponseUri.AbsoluteUri - } - $Content = Invoke-EvergreenRestMethod @params - - if ($null -ne $Content) { - foreach ($entry in $Content.component) { + foreach ($Entry in $UpdateFeed) { foreach ($language in $res.Get.Download.Language.GetEnumerator()) { # Follow the download link which will return a 301 - $Uri = $res.Get.Download.Uri -replace $res.Get.Download.ReplaceText, $res.Get.Download.Language[$language.key] + $Query = "?clcid=" + $Uri = "$($Entry.link.href)$($Query)$($res.Get.Download.Language[$language.key])" $ResponseUri = Resolve-SystemNetWebRequest -Uri $Uri - - # Check returned URL. It should be a go.microsoft.com/fwlink/?linkid style link - if ($null -ne $ResponseUri) { + if ($ResponseUri.ResponseUri.AbsoluteUri -eq $true) { # Construct the output; Return the custom object to the pipeline $PSObject = [PSCustomObject] @{ - Version = $entry.version - Date = ConvertTo-DateTime -DateTime ($Content.updated.Split(".")[0]) -Pattern $res.Get.Update.DatePattern + Version = $Entry.component.version + Date = ConvertTo-DateTime -DateTime ($UpdateFeed.updated.Split(".")[0]) -Pattern $res.Get.Update.DatePattern Language = $language.key URI = $ResponseUri.ResponseUri.AbsoluteUri } diff --git a/Evergreen/Apps/Get-Proxyman.ps1 b/Evergreen/Apps/Get-Proxyman.ps1 new file mode 100644 index 00000000..fb8d830e --- /dev/null +++ b/Evergreen/Apps/Get-Proxyman.ps1 @@ -0,0 +1,37 @@ +function Get-Proxyman { + <# + .NOTES + Author: Aaron Parker + Twitter: @stealthpuppy + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $false)] + param ( + [Parameter(Mandatory = $false, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + # Pass the repo releases API URL and return a formatted object + # Return the version only because the download is tagged as Linux + $params = @{ + Uri = $res.Get.Update.Uri + MatchVersion = $res.Get.Update.MatchVersion + Filter = $res.Get.Update.MatchFileTypes + ReturnVersionOnly = $true + } + $LatestVersion = Get-GitHubRepoRelease @params + + # Resolve the evergreen download URL + $Url = Resolve-SystemNetWebRequest -Uri $res.Get.Download.Uri + + # Return a formatted object to the pipeline + [PSCustomObject]@{ + Version = $LatestVersion.Version + Date = $Url.LastModified.ToShortDateString() + Size = $Url.ContentLength + Type = Get-FileType -File $Url.ResponseUri.AbsoluteUri + URI = $Url.ResponseUri.AbsoluteUri + } | Write-Output +} diff --git a/Evergreen/Apps/Get-RedHatOpenJDK21.ps1 b/Evergreen/Apps/Get-RedHatOpenJDK21.ps1 new file mode 100644 index 00000000..8829c397 --- /dev/null +++ b/Evergreen/Apps/Get-RedHatOpenJDK21.ps1 @@ -0,0 +1,18 @@ +function Get-RedHatOpenJDK21 { + <# + .NOTES + Author: Aaron Parker + Twitter: @stealthpuppy + #> + [OutputType([System.Management.Automation.PSObject])] + [CmdletBinding(SupportsShouldProcess = $False)] + param ( + [Parameter(Mandatory = $false, Position = 0)] + [ValidateNotNull()] + [System.Management.Automation.PSObject] + $res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1]) + ) + + $Output = Get-AdoptiumTemurin -res $res + Write-Output -InputObject $Output +} diff --git a/Evergreen/Manifests/AdoptiumTemurin21.json b/Evergreen/Manifests/AdoptiumTemurin21.json new file mode 100644 index 00000000..fd2b5da8 --- /dev/null +++ b/Evergreen/Manifests/AdoptiumTemurin21.json @@ -0,0 +1,22 @@ +{ + "Name": "Adoptium Temurin 21", + "Source": "https://adoptium.net/", + "Get": { + "Update": { + "Uri": "https://api.adoptium.net/v3/assets/latest/21/hotspot?os=windows&jvm_impl=hotspot", + "ContentType": "application/json", + "MatchImage": "jdk|jre" + } + }, + "Install": { + "Setup": "OpenJDK*.msi", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} diff --git a/Evergreen/Manifests/AzulZulu21.json b/Evergreen/Manifests/AzulZulu21.json new file mode 100644 index 00000000..d561fd9a --- /dev/null +++ b/Evergreen/Manifests/AzulZulu21.json @@ -0,0 +1,23 @@ +{ + "Name": "Azul Zulu 21", + "Source": "https://www.azul.com/downloads/#zulu", + "Get": { + "Update": { + "Uri": "https://marketplace-api.adoptium.net/v1/assets/latestForVendors?feature_version=21&os=windows&vendor=azul", + "ContentType": "application/json", + "MatchImage": "jdk|jre", + "ResolveUri": false + } + }, + "Install": { + "Setup": "OpenJDK*.msi", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} diff --git a/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer.json b/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer.json index 7d610b78..27859399 100644 --- a/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer.json +++ b/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer.json @@ -1,5 +1,5 @@ { - "Name": "Microsoft ODBC Driver for SQL Server", + "Name": "Microsoft ODBC Driver for SQL Server (latest)", "Source": "https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server", "Get": { "Update": { @@ -7,10 +7,23 @@ }, "Download": { "Uri": [ - "https://go.microsoft.com/fwlink/?linkid=2249006", - "https://go.microsoft.com/fwlink/?linkid=2249005", - "https://go.microsoft.com/fwlink/?linkid=2248720" + "https://go.microsoft.com/fwlink/?linkid=2266640", + "https://go.microsoft.com/fwlink/?linkid=2266742", + "https://go.microsoft.com/fwlink/?linkid=2266837" ], + "Language": { + "English": "0x409", + "French": "0x40c", + "German": "0x407", + "Italian": "0x410", + "Japanese": "0x411", + "Korean": "0x412", + "Portuguese (Brazil)": "0x416", + "Russian": "0x419", + "Spanish": "0x40a", + "Chinese (Simplified)": "0x804", + "Chinese (Traditional)": "0x404" + }, "MaximumRedirection": 3, "DatePattern": "d/M/yyyy" } diff --git a/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer17.json b/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer17.json new file mode 100644 index 00000000..6f13a3ed --- /dev/null +++ b/Evergreen/Manifests/MicrosoftODBCDriverForSQLServer17.json @@ -0,0 +1,42 @@ +{ + "Name": "Microsoft ODBC Driver for SQL Server 17.x", + "Source": "https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server", + "Get": { + "Update": { + "Uri": "" + }, + "Download": { + "Uri": [ + "https://go.microsoft.com/fwlink/?linkid=2266337", + "https://go.microsoft.com/fwlink/?linkid=2266446" + ], + "Language": { + "English": "0x409", + "French": "0x40c", + "German": "0x407", + "Italian": "0x410", + "Japanese": "0x411", + "Korean": "0x412", + "Portuguese (Brazil)": "0x416", + "Russian": "0x419", + "Spanish": "0x40a", + "Chinese (Simplified)": "0x804", + "Chinese (Traditional)": "0x404" + }, + "MaximumRedirection": 3, + "DatePattern": "d/M/yyyy" + } + }, + "Install": { + "Setup": "", + "Preinstall": "", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} diff --git a/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer.json b/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer.json index 04a78707..f6c512f6 100644 --- a/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer.json +++ b/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer.json @@ -1,5 +1,5 @@ { - "Name": "Microsoft OLE DB Driver for SQL Server", + "Name": "Microsoft OLE DB Driver for SQL Server (latest)", "Source": "https://learn.microsoft.com/en-us/sql/connect/oledb/download-oledb-driver-for-sql-server", "Get": { "Update": { @@ -7,10 +7,23 @@ }, "Download": { "Uri": [ - "https://go.microsoft.com/fwlink/?linkid=2248728", - "https://go.microsoft.com/fwlink/?linkid=2249102", - "https://go.microsoft.com/fwlink/?linkid=2249103" + "https://go.microsoft.com/fwlink/?linkid=2266674", + "https://go.microsoft.com/fwlink/?linkid=2266883", + "https://go.microsoft.com/fwlink/?linkid=2266884" ], + "Language": { + "English": "0x409", + "French": "0x40c", + "German": "0x407", + "Italian": "0x410", + "Japanese": "0x411", + "Korean": "0x412", + "Portuguese (Brazil)": "0x416", + "Russian": "0x419", + "Spanish": "0x40a", + "Chinese (Simplified)": "0x804", + "Chinese (Traditional)": "0x404" + }, "MaximumRedirection": 3, "DatePattern": "d/M/yyyy" } diff --git a/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer18.json b/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer18.json new file mode 100644 index 00000000..46199d6e --- /dev/null +++ b/Evergreen/Manifests/MicrosoftOLEDBDriverForSQLServer18.json @@ -0,0 +1,42 @@ +{ + "Name": "Microsoft OLE DB Driver for SQL Server 18", + "Source": "https://learn.microsoft.com/en-us/sql/connect/oledb/release-notes-for-oledb-driver-for-sql-server?view=sql-server-ver16#previous-releases", + "Get": { + "Update": { + "Uri": "" + }, + "Download": { + "Uri": [ + "https://go.microsoft.com/fwlink/?linkid=2266757", + "https://go.microsoft.com/fwlink/?linkid=2266858" + ], + "Language": { + "English": "0x409", + "French": "0x40c", + "German": "0x407", + "Italian": "0x410", + "Japanese": "0x411", + "Korean": "0x412", + "Portuguese (Brazil)": "0x416", + "Russian": "0x419", + "Spanish": "0x40a", + "Chinese (Simplified)": "0x804", + "Chinese (Traditional)": "0x404" + }, + "MaximumRedirection": 3, + "DatePattern": "d/M/yyyy" + } + }, + "Install": { + "Setup": "", + "Preinstall": "", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} \ No newline at end of file diff --git a/Evergreen/Manifests/MicrosoftOpenJDK21.json b/Evergreen/Manifests/MicrosoftOpenJDK21.json new file mode 100644 index 00000000..ff694b89 --- /dev/null +++ b/Evergreen/Manifests/MicrosoftOpenJDK21.json @@ -0,0 +1,24 @@ + +{ + "Name": "Microsoft OpenJDK 21", + "Source": "https://www.microsoft.com/openjdk", + "Get": { + "Update": { + "Uri": "https://marketplace-api.adoptium.net/v1/assets/latestForVendors?feature_version=21&os=windows&vendor=microsoft", + "ContentType": "application/json", + "MatchImage": "jdk|jre", + "ResolveUri": true + } + }, + "Install": { + "Setup": "", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} diff --git a/Evergreen/Manifests/MicrosoftSsms.json b/Evergreen/Manifests/MicrosoftSsms.json index b26c8a0f..16047d78 100644 --- a/Evergreen/Manifests/MicrosoftSsms.json +++ b/Evergreen/Manifests/MicrosoftSsms.json @@ -3,7 +3,7 @@ "Source": "https://go.microsoft.com/fwlink/?LinkId=531355", "Get": { "Update": { - "Uri": "https://go.microsoft.com/fwlink/?linkid=2264111", + "Uri": "https://go.microsoft.com/fwlink/?linkid=2267020", "DatePattern": "yyyy-MM-ddTHH:mm:ss" }, "Download": { diff --git a/Evergreen/Manifests/Proxyman.json b/Evergreen/Manifests/Proxyman.json new file mode 100644 index 00000000..716fe72d --- /dev/null +++ b/Evergreen/Manifests/Proxyman.json @@ -0,0 +1,26 @@ +{ + "Name": "Proxyman", + "Source": "https://proxyman.io/", + "Get": { + "Update": { + "Uri": "https://api.github.com/repos/ProxymanApp/proxyman-windows-linux/releases/latest", + "MatchVersion": "(\\d+(\\.\\d+){1,4}).*", + "MatchFileTypes": "\\.exe$|\\.msi$" + }, + "Download": { + "Uri": "https://proxyman.io/release/windows/Proxyman_latest.dmg" + } + }, + "Install": { + "Setup": "", + "Preinstall": "", + "Physical": { + "Arguments": "/quiet /norestart", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "/quiet /norestart", + "PostInstall": [] + } + } +} \ No newline at end of file diff --git a/Evergreen/Manifests/RedHatOpenJDK21.json b/Evergreen/Manifests/RedHatOpenJDK21.json new file mode 100644 index 00000000..805d1368 --- /dev/null +++ b/Evergreen/Manifests/RedHatOpenJDK21.json @@ -0,0 +1,23 @@ +{ + "Name": "Red Hat OpenJDK 21", + "Source": "https://developers.redhat.com/products/openjdk/overview", + "Get": { + "Update": { + "Uri": "https://marketplace-api.adoptium.net/v1/assets/latestForVendors?feature_version=21&os=windows&vendor=redhat", + "ContentType": "application/json", + "MatchImage": "jdk|jre", + "ResolveUri": false + } + }, + "Install": { + "Setup": "OpenJDK*.msi", + "Physical": { + "Arguments": "", + "PostInstall": [] + }, + "Virtual": { + "Arguments": "", + "PostInstall": [] + } + } +} diff --git a/Evergreen/Shared/Get-GitHubRepoRelease.ps1 b/Evergreen/Shared/Get-GitHubRepoRelease.ps1 index 56a73aa6..46505480 100644 --- a/Evergreen/Shared/Get-GitHubRepoRelease.ps1 +++ b/Evergreen/Shared/Get-GitHubRepoRelease.ps1 @@ -194,6 +194,7 @@ function Get-GitHubRepoRelease { Size = $asset.size URI = $asset.browser_download_url } + Write-Verbose -Message "$($MyInvocation.MyCommand): Matching platform 'Windows' against: $($PSObject.Platform)." if ($PSObject.Platform -eq "Windows") { Write-Output -InputObject $PSObject } diff --git a/Evergreen/Shared/Get-MicrosoftFwLink.ps1 b/Evergreen/Shared/Resolve-MicrosoftFwLink.ps1 similarity index 60% rename from Evergreen/Shared/Get-MicrosoftFwLink.ps1 rename to Evergreen/Shared/Resolve-MicrosoftFwLink.ps1 index 5b87d541..36c15b46 100644 --- a/Evergreen/Shared/Get-MicrosoftFwLink.ps1 +++ b/Evergreen/Shared/Resolve-MicrosoftFwLink.ps1 @@ -1,4 +1,4 @@ -function Get-MicrosoftFwLink { +function Resolve-MicrosoftFwLink { <# .SYNOPSIS Resolves https://go.microsoft.com/fwlink URLs @@ -10,18 +10,27 @@ function Get-MicrosoftFwLink { [OutputType([System.Management.Automation.PSObject])] [CmdletBinding(SupportsShouldProcess = $false)] param ( - [Parameter(Mandatory = $false, Position = 0)] + [Parameter(Mandatory = $true, Position = 0)] + [ValidateScript( { + if ($_ -match "^(https:\/\/go\.microsoft\.com\/fwlink\/\?linkid=)([0-9]+).*$") { $true } + else { + throw "'$_' must be in the format 'https://go.microsoft.com/fwlink/?linkid=2248728'." + } + })] + [System.String[]] $Uri, + + [Parameter()] [ValidateNotNullOrEmpty()] - [System.Management.Automation.PSObject] $res + [System.Int32] $MaximumRedirection = 2 ) process { - foreach ($Uri in $res.Get.Download.Uri) { + foreach ($Url in $Uri) { # Resolve the URL $params = @{ - Uri = $Uri - MaximumRedirection = $res.Get.Download.MaximumRedirection + Uri = $Url + MaximumRedirection = $MaximumRedirection } $ResolvedUrl = Resolve-SystemNetWebRequest @params @@ -30,19 +39,20 @@ function Get-MicrosoftFwLink { $Version = [RegEx]::Match($ResolvedUrl.ResponseUri.AbsoluteUri, "(\d+(\.\d+){1,4}).*").Captures.Groups[1].Value } catch { + $Version = "Unknown" Write-Warning -Message "$($MyInvocation.MyCommand): Failed to match version number from: $($ResolvedUrl.ResponseUri.AbsoluteUri)." } # Output a version object - $Output = [PSCustomObject]@{ + [PSCustomObject]@{ Version = $Version - Date = $ResolvedUrl.LastModified #ConvertTo-DateTime -Date $ResolvedUrl.LastModified -Pattern $res.Get.Download.DatePattern + Date = $ResolvedUrl.LastModified.ToShortDateString() Size = $ResolvedUrl.ContentLength + Language = "Unknown" Architecture = Get-Architecture -String $ResolvedUrl.ResponseUri.AbsoluteUri Type = Get-FileType -File $ResolvedUrl.ResponseUri.AbsoluteUri URI = $ResolvedUrl.ResponseUri.AbsoluteUri - } - Write-Output -InputObject $Output + } | Write-Output } } }