Correction de la façon de désactiver Bitlocker
Désactivation du délai écran noir sur secteur Suppression de unattend.xml qui reste par endroit avec le mot de passe admin Mise en place du numéro de version dans le pied de page à droite. Reste à finaliser le contrôle de mise à jour disponible.
This commit is contained in:
1 parent
5a121718d4
commit
a765701fed
8 files changed
+251
-21
No files matched your search
@@ -0,0 +1,78 @@
|
||||
# DeployCenter - asynchronous Gitea release check
|
||||
# Compatible with Windows PowerShell 5.1
|
||||
|
||||
function ConvertTo-DeployCenterComparableVersion {
|
||||
[CmdletBinding()]
|
||||
param([Parameter(Mandatory=$true)][string]$VersionText)
|
||||
|
||||
if ($VersionText -notmatch '(?i)(?:^|[-_])v?(?<Numeric>\d+(?:\.\d+){1,3})(?=$|[-+])') {
|
||||
return $null
|
||||
}
|
||||
$parts = @($Matches.Numeric.Split('.'))
|
||||
while ($parts.Count -lt 4) { $parts += '0' }
|
||||
try { return [version]::Parse(($parts -join '.')) } catch { return $null }
|
||||
}
|
||||
|
||||
function Start-DeployCenterVersionCheck {
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory=$true)][string]$CurrentVersion,
|
||||
[Parameter(Mandatory=$true)][string]$ReleaseApiUrl
|
||||
)
|
||||
|
||||
try {
|
||||
[System.Net.ServicePointManager]::SecurityProtocol =
|
||||
[System.Net.ServicePointManager]::SecurityProtocol -bor [System.Net.SecurityProtocolType]::Tls12
|
||||
$request = [System.Net.HttpWebRequest]::Create($ReleaseApiUrl)
|
||||
$request.Method = 'GET'
|
||||
$request.Accept = 'application/json'
|
||||
$request.UserAgent = 'DeployCenter-VersionCheck/1.0'
|
||||
$request.Timeout = 4000
|
||||
$request.ReadWriteTimeout = 4000
|
||||
$request.KeepAlive = $false
|
||||
$asyncResult = $request.BeginGetResponse($null, $null)
|
||||
return [pscustomobject]@{
|
||||
CurrentVersion = $CurrentVersion
|
||||
Request = $request
|
||||
AsyncResult = $asyncResult
|
||||
Completed = $false
|
||||
Update = $null
|
||||
}
|
||||
} catch {
|
||||
# This optional check must never interrupt startup or deployment.
|
||||
return $null
|
||||
}
|
||||
}
|
||||
|
||||
function Complete-DeployCenterVersionCheck {
|
||||
[CmdletBinding()]
|
||||
param([Parameter(Mandatory=$true)]$Check)
|
||||
|
||||
if ($Check.Completed -or -not $Check.AsyncResult.IsCompleted) { return $null }
|
||||
$Check.Completed = $true
|
||||
$response = $null
|
||||
$reader = $null
|
||||
try {
|
||||
$response = [System.Net.HttpWebResponse]$Check.Request.EndGetResponse($Check.AsyncResult)
|
||||
if ([int]$response.StatusCode -ne 200) { return $null }
|
||||
$reader = New-Object System.IO.StreamReader($response.GetResponseStream())
|
||||
$release = ConvertFrom-Json -InputObject $reader.ReadToEnd() -ErrorAction Stop
|
||||
if ($release.draft -or [string]::IsNullOrWhiteSpace([string]$release.tag_name)) { return $null }
|
||||
$current = ConvertTo-DeployCenterComparableVersion -VersionText ([string]$Check.CurrentVersion)
|
||||
$latest = ConvertTo-DeployCenterComparableVersion -VersionText ([string]$release.tag_name)
|
||||
if ($null -eq $current -or $null -eq $latest -or $latest -le $current) { return $null }
|
||||
$Check.Update = [pscustomobject]@{
|
||||
CurrentVersion = [string]$Check.CurrentVersion
|
||||
LatestVersion = [string]$release.tag_name
|
||||
}
|
||||
return $Check.Update
|
||||
} catch {
|
||||
# A network/API failure simply leaves the local version visible.
|
||||
return $null
|
||||
} finally {
|
||||
if ($null -ne $reader) { $reader.Dispose() }
|
||||
if ($null -ne $response) { $response.Dispose() }
|
||||
}
|
||||
}
|
||||
|
||||
Export-ModuleMember -Function Start-DeployCenterVersionCheck, Complete-DeployCenterVersionCheck
|
||||
Reference in new issue
Block a user