Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2cf3281b4d | ||
|
|
b2da734c75 |
@@ -38,6 +38,39 @@ function Get-OCSentinelManifest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-OCSentinelArtifact {
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory)][string]$Uri,
|
||||||
|
[Parameter(Mandatory)][string]$DestinationPath
|
||||||
|
)
|
||||||
|
|
||||||
|
$parameters = @{ Uri = $Uri; OutFile = $DestinationPath; TimeoutSec = 300 }
|
||||||
|
if ((Get-Command Invoke-WebRequest).Parameters.ContainsKey("UseBasicParsing")) {
|
||||||
|
$parameters.UseBasicParsing = $true
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($attempt = 1; $attempt -le 3; $attempt++) {
|
||||||
|
try {
|
||||||
|
Remove-Item -LiteralPath $DestinationPath -Force -ErrorAction SilentlyContinue
|
||||||
|
Invoke-WebRequest @parameters
|
||||||
|
|
||||||
|
if (-not (Test-Path -LiteralPath $DestinationPath) -or (Get-Item -LiteralPath $DestinationPath).Length -eq 0) {
|
||||||
|
throw "The downloaded artifact is empty."
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
if ($attempt -eq 3) {
|
||||||
|
throw "Could not download the OCSentinel package after 3 attempts. Last error: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Warning "Package download attempt $attempt failed. Retrying."
|
||||||
|
Start-Sleep -Seconds (5 * $attempt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Initialize-OCSentinelTls
|
Initialize-OCSentinelTls
|
||||||
|
|
||||||
$installRoot = Join-Path ${env:ProgramFiles} "OCSentinel"
|
$installRoot = Join-Path ${env:ProgramFiles} "OCSentinel"
|
||||||
@@ -122,7 +155,7 @@ $extractRoot = Join-Path $downloadRoot "payload"
|
|||||||
New-Item -ItemType Directory -Force -Path $downloadRoot, $extractRoot | Out-Null
|
New-Item -ItemType Directory -Force -Path $downloadRoot, $extractRoot | Out-Null
|
||||||
|
|
||||||
Write-Host "Downloading artifact: $($manifest.artifactUrl)"
|
Write-Host "Downloading artifact: $($manifest.artifactUrl)"
|
||||||
Invoke-WebRequest -Uri ([string]$manifest.artifactUrl) -OutFile $zipPath -TimeoutSec 300
|
Get-OCSentinelArtifact -Uri ([string]$manifest.artifactUrl) -DestinationPath $zipPath
|
||||||
|
|
||||||
$actualHash = Get-Sha256Hex -Path $zipPath
|
$actualHash = Get-Sha256Hex -Path $zipPath
|
||||||
$expectedHash = ([string]$manifest.sha256).ToLowerInvariant()
|
$expectedHash = ([string]$manifest.sha256).ToLowerInvariant()
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"channel": "stable",
|
"channel": "stable",
|
||||||
"version": "1.3.5",
|
"version": "1.3.6",
|
||||||
"publishedAtUtc": "2026-07-26T22:34:59.0988140Z",
|
"publishedAtUtc": "2026-07-27T08:45:53.0419623Z",
|
||||||
"artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.3.5/OCSentinelClient-win-x64.zip",
|
"artifactUrl": "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/v1.3.6/OCSentinelClient-win-x64.zip",
|
||||||
"sha256": "4d53be28835e7bbe3be8dab7e68a47d4db00ebd4cf09cd8ced158cecd09f9490",
|
"sha256": "48e9faa242a59797bed9732ae5b8914ab44843b9c949260a17bc15b47659a3d5",
|
||||||
"minUpdaterVersion": "1.0.0"
|
"minUpdaterVersion": "1.0.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,10 +61,52 @@ if ([Enum]::GetNames([Net.SecurityProtocolType]) -contains 'Tls13') {
|
|||||||
exit `$LASTEXITCODE
|
exit `$LASTEXITCODE
|
||||||
"@
|
"@
|
||||||
|
|
||||||
& powershell.exe -NoProfile -ExecutionPolicy Bypass -Command $command
|
for ($attempt = 1; $attempt -le 3; $attempt++) {
|
||||||
|
& powershell.exe -NoProfile -ExecutionPolicy Bypass -Command $command | ForEach-Object { Write-Host $_ }
|
||||||
$exitCode = $LASTEXITCODE
|
$exitCode = $LASTEXITCODE
|
||||||
if ($exitCode -ne 0) {
|
if ($exitCode -eq 0) {
|
||||||
throw "OCSentinel updater exited with code $exitCode"
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($attempt -lt 3) {
|
||||||
|
Write-Warning "OCSentinel update attempt $attempt failed. Retrying."
|
||||||
|
Start-Sleep -Seconds (5 * $attempt)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw "OCSentinel updater exited with code $exitCode after 3 attempts."
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-OCSentinelArtifact {
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory)][string]$Uri,
|
||||||
|
[Parameter(Mandatory)][string]$DestinationPath
|
||||||
|
)
|
||||||
|
|
||||||
|
$parameters = @{ Uri = $Uri; OutFile = $DestinationPath; TimeoutSec = 300 }
|
||||||
|
if ((Get-Command Invoke-WebRequest).Parameters.ContainsKey("UseBasicParsing")) {
|
||||||
|
$parameters.UseBasicParsing = $true
|
||||||
|
}
|
||||||
|
|
||||||
|
for ($attempt = 1; $attempt -le 3; $attempt++) {
|
||||||
|
try {
|
||||||
|
Remove-Item -LiteralPath $DestinationPath -Force -ErrorAction SilentlyContinue
|
||||||
|
Invoke-WebRequest @parameters
|
||||||
|
|
||||||
|
if (-not (Test-Path -LiteralPath $DestinationPath) -or (Get-Item -LiteralPath $DestinationPath).Length -eq 0) {
|
||||||
|
throw "The downloaded artifact is empty."
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
if ($attempt -eq 3) {
|
||||||
|
throw "Could not download the OCSentinel package after 3 attempts. Last error: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Warning "Package download attempt $attempt failed. Retrying."
|
||||||
|
Start-Sleep -Seconds (5 * $attempt)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +165,7 @@ else {
|
|||||||
try {
|
try {
|
||||||
New-Item -ItemType Directory -Force -Path $extractRoot | Out-Null
|
New-Item -ItemType Directory -Force -Path $extractRoot | Out-Null
|
||||||
Write-Host "Downloading OCSentinel $($manifest.version)"
|
Write-Host "Downloading OCSentinel $($manifest.version)"
|
||||||
Invoke-WebRequest -Uri ([string]$manifest.artifactUrl) -OutFile $zipPath -TimeoutSec 300
|
Get-OCSentinelArtifact -Uri ([string]$manifest.artifactUrl) -DestinationPath $zipPath
|
||||||
|
|
||||||
$actualHash = (Get-FileHash -LiteralPath $zipPath -Algorithm SHA256).Hash.ToLowerInvariant()
|
$actualHash = (Get-FileHash -LiteralPath $zipPath -Algorithm SHA256).Hash.ToLowerInvariant()
|
||||||
$expectedHash = ([string]$manifest.sha256).ToLowerInvariant()
|
$expectedHash = ([string]$manifest.sha256).ToLowerInvariant()
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
<RootNamespace>OCSentinelCli</RootNamespace>
|
<RootNamespace>OCSentinelCli</RootNamespace>
|
||||||
<Product>OfficeCom Sentinel</Product>
|
<Product>OfficeCom Sentinel</Product>
|
||||||
<Company>OfficeCom</Company>
|
<Company>OfficeCom</Company>
|
||||||
<Version>1.3.6</Version>
|
<Version>1.3.7</Version>
|
||||||
<AssemblyVersion>1.3.6.0</AssemblyVersion>
|
<AssemblyVersion>1.3.7.0</AssemblyVersion>
|
||||||
<FileVersion>1.3.6.0</FileVersion>
|
<FileVersion>1.3.7.0</FileVersion>
|
||||||
<InformationalVersion>1.3.6</InformationalVersion>
|
<InformationalVersion>1.3.7</InformationalVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user