You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.2 KiB
142 lines
5.2 KiB
<#
|
|
.SYNOPSIS
|
|
Get direct URL of Sophia Script archive, depending on which Windows it is run on
|
|
|
|
.SYNOPSIS
|
|
For example, if you start script on Windows 11 you will start downloading Sophia Script for Windows 11
|
|
|
|
.EXAMPLE To download for PowerShell 5.1
|
|
choco install sophia --force -y
|
|
|
|
.EXAMPLE To download for PowerShell 7
|
|
choco install sophia --params "/PS7" --force -y
|
|
#>
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
|
|
$Parameters = @{
|
|
Uri = "https://api.github.com/repos/farag2/Sophia-Script-for-Windows/releases/latest"
|
|
UseBasicParsing = $true
|
|
}
|
|
$LatestGitHubRelease = (Invoke-RestMethod @Parameters).tag_name
|
|
|
|
$Parameters = @{
|
|
Uri = "https://raw.githubusercontent.com/farag2/Sophia-Script-for-Windows/master/sophia_script_versions.json"
|
|
UseBasicParsing = $true
|
|
}
|
|
$JSONVersions = Invoke-RestMethod @Parameters
|
|
|
|
$null = $packageParameters
|
|
$packageParameters = $env:chocolateyPackageParameters
|
|
|
|
switch ((Get-CimInstance -ClassName Win32_OperatingSystem).BuildNumber)
|
|
{
|
|
"17763"
|
|
{
|
|
# Check for Windows 10 LTSC 2019
|
|
if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName) -match "LTSC 2019")
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_10_LTSC2019
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.10.LTSC.2019.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_10_LTSC2019"
|
|
}
|
|
else
|
|
{
|
|
Write-Verbose -Message "Windows version is not supported. Update your Windows" -Verbose
|
|
|
|
# Receive updates for other Microsoft products when you update Windows
|
|
(New-Object -ComObject Microsoft.Update.ServiceManager).AddService2("7971f918-a847-4430-9279-4a52d1efe18d", 7, "")
|
|
|
|
# Check for updates
|
|
Start-Process -FilePath "$env:SystemRoot\System32\UsoClient.exe" -ArgumentList StartInteractiveScan
|
|
|
|
# Open the "Windows Update" page
|
|
Start-Process -FilePath "ms-settings:windowsupdate"
|
|
|
|
pause
|
|
exit
|
|
}
|
|
}
|
|
"19044"
|
|
{
|
|
# Check for Windows 10 LTSC 2021
|
|
if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName) -match "LTSC 2021")
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_10_LTSC2021
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.10.LTSC.2021.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_10_LTSC2021"
|
|
}
|
|
else
|
|
{
|
|
Write-Verbose -Message "Windows version is not supported. Update your Windows" -Verbose
|
|
|
|
# Receive updates for other Microsoft products when you update Windows
|
|
(New-Object -ComObject Microsoft.Update.ServiceManager).AddService2("7971f918-a847-4430-9279-4a52d1efe18d", 7, "")
|
|
|
|
# Check for updates
|
|
Start-Process -FilePath "$env:SystemRoot\System32\UsoClient.exe" -ArgumentList StartInteractiveScan
|
|
|
|
# Open the "Windows Update" page
|
|
Start-Process -FilePath "ms-settings:windowsupdate"
|
|
|
|
pause
|
|
exit
|
|
}
|
|
}
|
|
"19045"
|
|
{
|
|
if ($packageParameters)
|
|
{
|
|
if ($packageParameters.Contains('PS7'))
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_10_PowerShell_7
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.10.PowerShell.7.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_10_PowerShell_7"
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_10_PowerShell_5_1
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.10.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_10_PowerShell_5_1"
|
|
}
|
|
}
|
|
{$_ -ge 26100}
|
|
{
|
|
# Check for Windows 11 LTSC 2024
|
|
if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ProductName) -match "LTSC 2024")
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_11_LTSC2024
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.11.LTSC.2024.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_11_LTSC2024"
|
|
}
|
|
else
|
|
{
|
|
if ($packageParameters)
|
|
{
|
|
if ($packageParameters.Contains('PS7'))
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_11_PowerShell_7
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.11.PowerShell.7.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_11_PowerShell_7"
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$LatestRelease = $JSONVersions.Sophia_Script_Windows_11_PowerShell_5_1
|
|
$URL = "https://github.com/farag2/Sophia-Script-for-Windows/releases/download/$LatestGitHubRelease/Sophia.Script.for.Windows.11.v$LatestRelease.zip"
|
|
$Hash = "Hash_Sophia_Script_Windows_11_PowerShell_5_1"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$Downloads = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
|
|
$packageArgs = @{
|
|
packageName = $env:ChocolateyPackageName
|
|
fileType = "ZIP"
|
|
unzipLocation = $Downloads
|
|
url = $URL
|
|
checksum = $Hash
|
|
checksumType = "sha256"
|
|
}
|
|
Install-ChocolateyZipPackage @packageArgs
|
|
|