Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

[PS1] exemple install/config app avec infos webservice

Publié le par damcuvelier

# usage: .\Deploy-PosteWindows_SN-Zscaler.ps1 -ZscalerUri "<url de l'API Webservice contenant les informations Zscaler>"
# exl: .\Deploy-PosteWindows_SN-Zscaler.ps1 -ZscalerUri "http://<serveur>:<port>/Api/TokenZscaler"

param($ZscalerUri)
$ErrorActionpreference = "SilentlyContinue"

if(!$ZscalerUri){$ZscalerUri = "http://localhost:5000/Api/TokenZscaler"}
# $zscaler = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "*Zscaler*" }
$zscaler = Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*" | Where-Object { $_.DisplayName -like "*Zscaler*" }
$RetErr = "Not_Installed"

function ConfigZscaller {
    param($TenantToken, $votre_token)

$regPath = "HKLM:\Software\Zscaler"

if (-not (Test-Path $regPath)) {New-Item -Path "HKLM:\Software" -Name "Zscaler" -Force | Out-Null}
    
    Set-ItemProperty -Path $regPath -Name "TenantToken" -Value $TenantToken
    Set-ItemProperty -Path $regPath -Name "AuthToken" -Value $votre_token
}

function ConfigZscallerByGPO{

$PlainToken = Get-ItemPropertyValue -Path "HKLM:\Software\Entreprise\Zscaler" -Name "TenantToken"
$PlainToken = Get-ItemPropertyValue -Path "HKLM:\Software\Entreprise\Zscaler" -Name "AuthToken"
ConfigZscaller -TenantToken $PlainToken -votre_token $AuthToken
}


function ConfigZscallerByWebService{
    # exemple de lecture des infos sur API:
    param($Uri)
    
    if(!$Uri){$Uri = "https://intranet/Api/TokenZscaler"}
    
    if ($Uri -match "^(http://localhost|http://127\.0\.0\.1|http://intranet|https://intranet)"){$response = Invoke-RestMethod -Uri $Uri -Method Get} else {$response = Invoke-RestMethod -Uri $Uri -Method Get -UseDefaultCredentials}
    $TenantToken = $response.TenantToken
    $token = $response.token
    ConfigZscaller -TenantToken $TenantToken -votre_token $token
}


function installZscaller {
    param($ZscalerClientPath)

    # Démarrer le processus et attendre la fin
    $process = Start-Process -FilePath $ZscalerClientPath -ArgumentList "/quiet /norestart" -Wait -PassThru

    # Renvoyer le code de sortie (0 = succès)
    return $process.ExitCode
}


if ($zscaler) {$zscalerName = $zscaler.Name} else {$zscalerName = $Null}


if(!$zscalerName){
    $RetInstZscaller = installZscaller -ZscalerClientPath $ZscalerClientPath
    if ($RetInstZscaller -eq 0) {
    ConfigZscallerByWebService -Uri $ZscalerUri
    $zscaler = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "*Zscaler*" }
    if ($zscaler) {$zscalerName = $zscaler.Name} else {$zscalerName = $RetErr}
    }
    else {$zscalerName = $RetErr}
}

return $zscalerName


 

Commenter cet article