[PS1] exemple install/config app avec infos webservice
# 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
/image%2F0881799%2F20140610%2Fob_a8c7fe_logo2.jpg)
Commenter cet article