GlobalProtect (Palo Alto)¶
Ce que vous allez apprendre
- Les cles de registre principales du client GlobalProtect et leur emplacement
- La configuration pre-logon pour le VPN avant authentification Windows
- Les parametres de certificats, portails et passerelles dans le registre
- Le split tunneling et le routage applicatif via le registre
- Le controle des mises a jour automatiques et le verrouillage de version
- Le depannage des problemes courants (echecs de connexion, erreurs de certificat)
- Un scenario reel de deploiement pre-logon sur 500 postes via GPO
Arborescence du registre GlobalProtect¶
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#bd93f9', 'primaryTextColor': '#f8f8f2', 'primaryBorderColor': '#bd93f9', 'lineColor': '#ff79c6', 'secondaryColor': '#44475a', 'tertiaryColor': '#282a36', 'edgeLabelBackground': '#282a36', 'clusterBkg': '#282a36', 'clusterBorder': '#6272a4', 'titleColor': '#f8f8f2'}}}%%
flowchart LR
A["Poste client"]:::pink
B["Agent\nGlobalProtect"]:::cyan
C["Portail GP\n(configuration)"]:::purple
D["Passerelle GP\n(tunnel VPN)"]:::green
E["Réseau\ninterne"]:::orange
A --> B
B -->|"HTTPS\n(auth + config)"| C
C -->|"Liste des\npasserelles"| B
B -->|"IPsec / SSL\n(tunnel)"| D
D --> E
classDef pink fill:#ff79c6,stroke:#ff79c6,color:#282a36
classDef green fill:#50fa7b,stroke:#50fa7b,color:#282a36
classDef cyan fill:#8be9fd,stroke:#8be9fd,color:#282a36
classDef orange fill:#ffb86c,stroke:#ffb86c,color:#282a36
classDef purple fill:#bd93f9,stroke:#bd93f9,color:#282a36 Le client GlobalProtect stocke sa configuration sous deux emplacements principaux. Commencons par explorer ce qui existe sur un poste ou le client est installe.
# List all subkeys under the main GlobalProtect hive
Get-ChildItem "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect" -Recurse |
Select-Object PSChildName, PSPath
PSChildName PSPath
----------- ------
Settings ...Palo Alto Networks\GlobalProtect\Settings
PanSetup ...Palo Alto Networks\GlobalProtect\PanSetup
PanGPS ...Palo Alto Networks\GlobalProtect\PanGPS
PanGPHip ...Palo Alto Networks\GlobalProtect\PanGPHip
Le second emplacement contient les parametres de politique pousse par le portail :
# Portal-pushed configuration
Get-ChildItem "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS" |
Select-Object PSChildName
| Cle de registre | Contenu |
|---|---|
HKLM\SOFTWARE\Palo Alto Networks\GlobalProtect\Settings | Parametres generaux du client |
HKLM\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup | Configuration initiale (portail, methode de connexion) |
HKLM\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS | Configuration poussee par le portail |
HKLM\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPHip | Donnees HIP (Host Information Profile) |
En resume
- GlobalProtect utilise
HKLM\SOFTWARE\Palo Alto Networks\GlobalProtectcomme racine - Les sous-cles
PanSetup,PanGPS,PanGPHipetSettingsstructurent la configuration - La configuration poussee par le portail se retrouve dans
PanGPS\PortalConfig
Configuration Pre-Logon¶
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#bd93f9', 'primaryTextColor': '#f8f8f2', 'primaryBorderColor': '#bd93f9', 'lineColor': '#ff79c6', 'secondaryColor': '#44475a', 'tertiaryColor': '#282a36'}}}%%
sequenceDiagram
participant PC as Poste (pré-logon)
participant GP as Agent GlobalProtect
participant P as Portail GP
participant GW as Passerelle GP
participant DC as Contrôleur AD
PC->>GP: Démarrage Windows (avant logon)
GP->>GP: Lecture certificat machine<br/>(Cert:\LocalMachine\My)
GP->>P: Authentification certificat machine
P-->>GP: Configuration + passerelle assignée
GP->>GW: Tunnel IPsec / SSL établi
GW-->>GP: Tunnel actif (pré-logon)
PC->>DC: Logon Windows via tunnel VPN
DC-->>PC: Authentification Kerberos OK
GP->>P: Ré-authentification utilisateur
P-->>GP: Bascule session utilisateur Le mode pre-logon permet d'etablir le tunnel VPN avant meme que l'utilisateur se connecte a Windows. C'est essentiel pour les postes joints au domaine qui doivent atteindre un controleur de domaine distant.
Cles de base du pre-logon¶
# Configure pre-logon connection via registry
$path = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
# Portal address
Set-ItemProperty -Path $path -Name "PanGPPortal" -Value "vpn.entreprise.com" -Type String
# Connection method: pre-logon
Set-ItemProperty -Path $path -Name "prelogon" -Value 1 -Type DWord
# Connect method: pre-logon then on-demand
Set-ItemProperty -Path $path -Name "connect-method" -Value "pre-logon-then-on-demand" -Type String
Valeurs de configuration PanSetup¶
| Valeur | Type | Description | Exemple |
|---|---|---|---|
PanGPPortal | REG_SZ | Adresse FQDN du portail GP | vpn.entreprise.com |
prelogon | REG_DWORD | Activer le mode pre-logon | 1 |
connect-method | REG_SZ | Methode de connexion | pre-logon-then-on-demand |
agent-user-override-key | REG_SZ | Cle de contournement pour l'utilisateur | SecretKey123 |
default-browser | REG_SZ | Navigateur pour l'authentification SAML | default |
Methodes de connexion disponibles¶
La valeur connect-method accepte quatre modes :
| Methode | Comportement |
|---|---|
pre-logon | Tunnel etabli avant la connexion Windows, maintenu ensuite |
on-demand | L'utilisateur lance manuellement la connexion |
user-logon | Tunnel etabli automatiquement a la connexion Windows |
pre-logon-then-on-demand | Pre-logon puis passage en mode manuel apres authentification |
# Verify the current connect method
$val = Get-ItemProperty "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect" `
-Name "connect-method" -ErrorAction SilentlyContinue
$val.'connect-method'
Certificat machine pour le pre-logon¶
En mode pre-logon, le client utilise un certificat machine (pas un certificat utilisateur). Le certificat doit se trouver dans le magasin machine local.
# Check for machine certificates usable by GlobalProtect
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.EnhancedKeyUsageList.FriendlyName -contains "Client Authentication" } |
Select-Object Thumbprint, Subject, NotAfter |
Format-Table -AutoSize
Thumbprint Subject NotAfter
---------- ------- --------
A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2 CN=PC-001.entreprise.com 01/06/2027 00:00:00
En resume
- Le pre-logon necessite
prelogon=1etconnect-methoddansPanSetup\GlobalProtect - Quatre methodes de connexion existent :
pre-logon,on-demand,user-logon,pre-logon-then-on-demand - Un certificat machine valide dans
Cert:\LocalMachine\Myest requis pour le pre-logon
Authentification par certificat¶
GlobalProtect peut exiger un certificat client pour valider l'identite du poste ou de l'utilisateur. Les parametres lies aux certificats sont repartis entre le registre et le magasin de certificats Windows.
Configuration du profil de certificat¶
# Registry path for certificate settings
$certPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\AgentConfig"
# View current certificate profile setting
Get-ItemProperty -Path $certPath -Name "CertificateStoreLocation" -ErrorAction SilentlyContinue
Importer un certificat racine du portail¶
Le portail GlobalProtect pousse generalement son certificat racine dans le magasin de confiance. Si ce mecanisme echoue, il faut l'importer manuellement.
# Import the portal root CA into Trusted Root store
$cert = "C:\Temp\PaloAlto-RootCA.cer"
Import-Certificate -FilePath $cert -CertStoreLocation Cert:\LocalMachine\Root
Thumbprint Subject
---------- -------
F1E2D3C4B5A6F1E2D3C4B5A6F1E2D3C4B5A6F1E2 CN=PaloAlto-RootCA, O=Entreprise
Valeurs de registre liees aux certificats¶
| Valeur | Emplacement | Description |
|---|---|---|
CertificateStoreLocation | PanGPS\AgentConfig | Machine ou User — magasin de certificats a interroger |
CertificateStoreName | PanGPS\AgentConfig | Nom du magasin (My, Root, etc.) |
Certificate | PanGPS\PortalConfig | Empreinte du certificat portail |
RootCACert | PanGPS\PortalConfig | Certificat racine du portail (encode base64) |
Forcer l'utilisation d'un certificat specifique¶
# Pin a specific client certificate by thumbprint
$gpPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\AgentConfig"
Set-ItemProperty -Path $gpPath -Name "ClientCertThumbprint" `
-Value "A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2" -Type String
En resume
CertificateStoreLocationetCertificateStoreNamecontrolent ou GlobalProtect cherche les certificats- Le certificat racine du portail est stocke dans
PanGPS\PortalConfig - On peut forcer un certificat client precis via
ClientCertThumbprint
Configuration du portail et des passerelles¶
Le portail (portal) distribue la configuration et les passerelles (gateways) fournissent le tunnel VPN. Leurs parametres se retrouvent dans le registre apres la premiere connexion reussie.
Adresse du portail¶
# Read the portal address configured on the client
$setupPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
(Get-ItemProperty -Path $setupPath -Name "PanGPPortal").PanGPPortal
Configuration des passerelles¶
Apres connexion au portail, les passerelles disponibles sont mises en cache dans le registre :
# List cached gateway configurations
$gwPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\PortalConfig"
Get-ItemProperty -Path $gwPath -Name "Gateways" -ErrorAction SilentlyContinue
Parametres de passerelle importants¶
| Valeur | Type | Description |
|---|---|---|
Gateways | REG_SZ | Liste des passerelles separees par ; |
PreferredGateway | REG_SZ | Passerelle preferee pour la reconnexion |
PortalAddress | REG_SZ | Adresse du portail (cache local) |
LastConnectedGateway | REG_SZ | Derniere passerelle utilisee avec succes |
Forcer une passerelle specifique¶
# Force a specific gateway for all connections
$gwConfPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\PortalConfig"
Set-ItemProperty -Path $gwConfPath -Name "PreferredGateway" `
-Value "gw-paris.entreprise.com" -Type String
Version de l'agent¶
Le portail peut exiger une version minimale du client. Cette information est stockee localement :
# Check the installed agent version
$verPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
(Get-ItemProperty -Path $verPath -Name "agent-version" -ErrorAction SilentlyContinue).'agent-version'
En resume
- L'adresse du portail est dans
PanSetup\GlobalProtect\PanGPPortal - Les passerelles sont mises en cache dans
PanGPS\PortalConfig\Gateways PreferredGatewayetLastConnectedGatewaycontrolent la selection de passerelle
Split tunnel et tunnel applicatif¶
Le split tunneling permet de router seulement une partie du trafic dans le tunnel VPN. Le tunnel applicatif (app-based) route le trafic en fonction de l'application source.
Lecture de la configuration split tunnel¶
# Read split tunnel settings from the portal configuration
$splitPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\PortalConfig"
Get-ItemProperty -Path $splitPath -Name "SplitTunnelEnabled", "SplitTunnelDomains", `
"SplitTunnelIncludes", "SplitTunnelExcludes" -ErrorAction SilentlyContinue
SplitTunnelEnabled : 1
SplitTunnelDomains : entreprise.com;intranet.local
SplitTunnelIncludes : 10.0.0.0/8;172.16.0.0/12
SplitTunnelExcludes : 10.99.0.0/16
Parametres de split tunnel¶
| Valeur | Type | Description |
|---|---|---|
SplitTunnelEnabled | REG_DWORD | 1 = split tunnel actif, 0 = tout dans le tunnel |
SplitTunnelIncludes | REG_SZ | Sous-reseaux routes dans le tunnel (separes par ;) |
SplitTunnelExcludes | REG_SZ | Sous-reseaux exclus du tunnel |
SplitTunnelDomains | REG_SZ | Domaines DNS resolus via le tunnel |
DisableAccessToLocalNetwork | REG_DWORD | 1 = bloquer l'acces au reseau local |
Tunnel applicatif (App-Based VPN)¶
Le tunnel applicatif est configure cote portail mais ses parametres sont mis en cache localement :
# Check app-based tunnel configuration
$appPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\PortalConfig"
Get-ItemProperty -Path $appPath -Name "AppBasedVPN", "AppBasedVPNApps" -ErrorAction SilentlyContinue
Verification du routage actif¶
Pour verifier que le split tunnel fonctionne correctement, examinez la table de routage pendant une connexion active :
# Check routes added by GlobalProtect
Get-NetRoute -InterfaceAlias "PANGP Virtual Ethernet Adapter*" |
Select-Object DestinationPrefix, NextHop, RouteMetric |
Format-Table -AutoSize
DestinationPrefix NextHop RouteMetric
----------------- ------- -----------
10.0.0.0/8 10.100.0.1 1
172.16.0.0/12 10.100.0.1 1
0.0.0.0/0 10.100.0.1 9999
En resume
- Le split tunnel est controle par
SplitTunnelEnabled,SplitTunnelIncludesetSplitTunnelExcludes - Le tunnel applicatif route le trafic par processus via
AppBasedVPNetAppBasedVPNApps - Verifiez le routage actif avec
Get-NetRoutesur l'interface PANGP
Mises a jour et verrouillage de version¶
GlobalProtect peut se mettre a jour automatiquement via le portail. En entreprise, il est souvent necessaire de controler les versions deployees.
Controler les mises a jour automatiques¶
# Disable automatic agent upgrades
$upgradePath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
Set-ItemProperty -Path $upgradePath -Name "allow-auto-upgrade" -Value "no" -Type String
# Verify
(Get-ItemProperty -Path $upgradePath -Name "allow-auto-upgrade").'allow-auto-upgrade'
Parametres de mise a jour¶
| Valeur | Type | Description |
|---|---|---|
allow-auto-upgrade | REG_SZ | yes ou no — autoriser la mise a jour automatique |
agent-version | REG_SZ | Version actuelle installee |
minimum-agent-version | REG_SZ | Version minimale requise par le portail |
upgrade-mode | REG_SZ | prompt, transparent, disable |
Verrouiller sur une version specifique¶
# Pin to a specific version — prevent upgrades beyond this version
$setupPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
Set-ItemProperty -Path $setupPath -Name "allow-auto-upgrade" -Value "no" -Type String
Set-ItemProperty -Path $setupPath -Name "upgrade-mode" -Value "disable" -Type String
# Confirm current installed version
$version = (Get-ItemProperty -Path $setupPath -Name "agent-version" `
-ErrorAction SilentlyContinue).'agent-version'
Write-Output "Version verrouillee : $version"
Deployer le verrouillage en masse via GPO¶
# GPO registry preference — apply to all workstations
# Path: Computer Configuration > Preferences > Windows Settings > Registry
# Action: Update
# Hive: HKEY_LOCAL_MACHINE
# Key: SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect
# Value: allow-auto-upgrade = no (REG_SZ)
# Value: upgrade-mode = disable (REG_SZ)
En resume
allow-auto-upgradeetupgrade-modecontrolent le comportement de mise a jour- Le mode
disableempeche toute mise a jour,promptdemande a l'utilisateur,transparentapplique sans interaction - Deployer ces valeurs via GPO Registry Preferences pour un controle a l'echelle du parc
Depannage via le registre¶
Les problemes GlobalProtect les plus courants laissent des traces dans le registre. Voici comment les diagnostiquer systematiquement.
Echec de connexion au portail¶
Le premier reflexe est de verifier la configuration de base :
# Quick diagnostic — check all critical settings
$setupPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
$gpsPath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS"
Write-Output "=== Configuration de base ==="
$setup = Get-ItemProperty -Path $setupPath -ErrorAction SilentlyContinue
Write-Output "Portal : $($setup.PanGPPortal)"
Write-Output "Connect : $($setup.'connect-method')"
Write-Output "Pre-logon : $($setup.prelogon)"
Write-Output "Version : $($setup.'agent-version')"
Write-Output "`n=== Etat de la connexion ==="
$status = Get-ItemProperty -Path $gpsPath -ErrorAction SilentlyContinue
Write-Output "Status : $($status.ConnectionStatus)"
Write-Output "Gateway : $($status.ConnectedGateway)"
=== Configuration de base ===
Portal : vpn.entreprise.com
Connect : pre-logon-then-on-demand
Pre-logon : 1
Version : 6.2.1-120
=== Etat de la connexion ===
Status : Disconnected
Gateway :
Erreurs de certificat¶
Si le client refuse de se connecter avec une erreur de certificat :
# Check 1: Verify the portal certificate trust chain
$portalFQDN = "vpn.entreprise.com"
$result = Test-NetConnection -ComputerName $portalFQDN -Port 443
Write-Output "Connectivite : $($result.TcpTestSucceeded)"
# Check 2: Verify machine certificate is present and valid
$machCerts = Get-ChildItem Cert:\LocalMachine\My |
Where-Object {
$_.NotAfter -gt (Get-Date) -and
$_.EnhancedKeyUsageList.FriendlyName -contains "Client Authentication"
}
Write-Output "Certificats machine valides : $($machCerts.Count)"
$machCerts | Select-Object Thumbprint, Subject, NotAfter | Format-Table -AutoSize
# Check 3: Verify root CA is in Trusted Root store
$rootCerts = Get-ChildItem Cert:\LocalMachine\Root |
Where-Object { $_.Subject -match "PaloAlto|GlobalProtect|Entreprise" }
Write-Output "Certificats racine pertinents : $($rootCerts.Count)"
Connectivite : True
Certificats machine valides : 1
Thumbprint Subject NotAfter
---------- ------- --------
A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2 CN=PC-001.entreprise.com 01/06/2027 00:00:00
Certificats racine pertinents : 1
Reinitialiser la configuration du client¶
Quand tout le reste echoue, une reinitialisation propre du registre peut resoudre les problemes de configuration corrompue :
# Reset GlobalProtect client configuration
# WARNING: This removes all cached portal/gateway config
Stop-Service PanGPS -Force -ErrorAction SilentlyContinue
# Back up current configuration
reg export "HKLM\SOFTWARE\Palo Alto Networks\GlobalProtect" C:\Temp\gp-backup.reg /y
# Remove cached portal configuration
Remove-Item "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\PortalConfig" `
-Recurse -ErrorAction SilentlyContinue
Remove-Item "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanGPS\AgentConfig" `
-Recurse -ErrorAction SilentlyContinue
# Restart the service
Start-Service PanGPS
Write-Output "Configuration reintialisee. Le client va re-telecharger la config du portail."
Fichiers de logs associes¶
En complement du registre, les logs GlobalProtect se trouvent ici :
| Emplacement | Contenu |
|---|---|
C:\Program Files\Palo Alto Networks\GlobalProtect\PanGPA.log | Log de l'agent utilisateur |
C:\Program Files\Palo Alto Networks\GlobalProtect\PanGPS.log | Log du service systeme |
C:\ProgramData\Palo Alto Networks\GlobalProtect\Logs\ | Logs complementaires (HIP, connexion) |
# Search for connection errors in the last 100 lines
Get-Content "C:\Program Files\Palo Alto Networks\GlobalProtect\PanGPS.log" -Tail 100 |
Select-String -Pattern "Error|Failed|Timeout"
[2026-04-03 14:22:01] Error: Portal authentication failed - certificate not found
[2026-04-03 14:22:01] Failed to establish pre-logon tunnel
En resume
- Verifiez d'abord
PanGPPortal,connect-methodetprelogondansPanSetup - Les erreurs de certificat se diagnostiquent via
Cert:\LocalMachine\MyetCert:\LocalMachine\Root - En dernier recours, sauvegardez puis supprimez
PanGPS\PortalConfigpour forcer le re-telechargement - Les logs
PanGPA.logetPanGPS.logcompletent le diagnostic registre
Scenario reel : deployer GlobalProtect pre-logon sur 500 postes via GPO¶
Contexte¶
Une entreprise de 500 postes nomades doit activer le VPN GlobalProtect en mode pre-logon. Les utilisateurs doivent pouvoir ouvrir leur session Windows via un controleur de domaine accessible uniquement a travers le tunnel VPN.
Etape 1 : preparer le certificat machine¶
Chaque poste doit posseder un certificat machine emis par l'autorite de certification interne. Deployez-le via GPO d'auto-enrollment ou via un script :
# Verify auto-enrollment is working on a sample machine
$certs = Get-ChildItem Cert:\LocalMachine\My |
Where-Object {
$_.Issuer -match "CA-Interne" -and
$_.EnhancedKeyUsageList.FriendlyName -contains "Client Authentication" -and
$_.NotAfter -gt (Get-Date)
}
if ($certs.Count -ge 1) {
Write-Output "OK : $($certs.Count) certificat(s) machine valide(s) trouve(s)"
$certs | Select-Object Thumbprint, Subject, NotAfter | Format-Table -AutoSize
} else {
Write-Output "ERREUR : aucun certificat machine valide. Verifiez l'auto-enrollment."
}
OK : 1 certificat(s) machine valide(s) trouve(s)
Thumbprint Subject NotAfter
---------- ------- --------
A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6A1B2 CN=PC-NOM-001.corp.local 15/03/2027 00:00:00
Etape 2 : creer la GPO de configuration registre¶
Creez une GPO contenant les preferences de registre suivantes :
# Script to create the registry values (run on each workstation via GPO startup script)
$basePath = "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect"
# Ensure the key exists
if (-not (Test-Path $basePath)) {
New-Item -Path $basePath -Force | Out-Null
}
# Portal address
Set-ItemProperty -Path $basePath -Name "PanGPPortal" -Value "vpn.entreprise.com" -Type String
# Pre-logon mode
Set-ItemProperty -Path $basePath -Name "prelogon" -Value 1 -Type DWord
Set-ItemProperty -Path $basePath -Name "connect-method" -Value "pre-logon" -Type String
# Prevent users from disconnecting
Set-ItemProperty -Path $basePath -Name "allow-user-disconnect" -Value "no" -Type String
# Lock the upgrade version
Set-ItemProperty -Path $basePath -Name "allow-auto-upgrade" -Value "no" -Type String
Set-ItemProperty -Path $basePath -Name "upgrade-mode" -Value "disable" -Type String
Write-Output "GlobalProtect pre-logon configure avec succes."
Etape 3 : valeurs GPO Registry Preferences equivalentes¶
Pour utiliser les preferences de registre integrables directement dans la GPO (sans script) :
| Action | Hive | Cle | Valeur | Type | Donnee |
|---|---|---|---|---|---|
| Update | HKLM | SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect | PanGPPortal | REG_SZ | vpn.entreprise.com |
| Update | HKLM | (idem) | prelogon | REG_DWORD | 1 |
| Update | HKLM | (idem) | connect-method | REG_SZ | pre-logon |
| Update | HKLM | (idem) | allow-user-disconnect | REG_SZ | no |
| Update | HKLM | (idem) | allow-auto-upgrade | REG_SZ | no |
| Update | HKLM | (idem) | upgrade-mode | REG_SZ | disable |
Etape 4 : deployer le MSI GlobalProtect¶
# Silent install of GlobalProtect via GPO software deployment or startup script
$msiPath = "\\serveur-fichiers\Deploiement\GlobalProtect\GlobalProtect64-6.2.1.msi"
$logFile = "C:\Windows\Temp\GP-Install.log"
Start-Process msiexec.exe -ArgumentList "/i `"$msiPath`" /qn /l*v `"$logFile`" PORTAL=vpn.entreprise.com" `
-Wait -NoNewWindow
# Verify installation
$installed = Get-ItemProperty "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect" `
-Name "agent-version" -ErrorAction SilentlyContinue
Write-Output "Version installee : $($installed.'agent-version')"
Etape 5 : validation post-deploiement¶
# Post-deployment validation script (run on sample machines)
$checks = @()
# Check 1: Service running
$svc = Get-Service PanGPS -ErrorAction SilentlyContinue
$checks += [PSCustomObject]@{ Test = "Service PanGPS"; Result = $svc.Status }
# Check 2: Registry configuration
$reg = Get-ItemProperty "HKLM:\SOFTWARE\Palo Alto Networks\GlobalProtect\PanSetup\GlobalProtect" `
-ErrorAction SilentlyContinue
$checks += [PSCustomObject]@{ Test = "Portal configure"; Result = $reg.PanGPPortal }
$checks += [PSCustomObject]@{ Test = "Pre-logon actif"; Result = $reg.prelogon }
$checks += [PSCustomObject]@{ Test = "Methode connexion"; Result = $reg.'connect-method' }
# Check 3: Machine certificate
$cert = Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $_.EnhancedKeyUsageList.FriendlyName -contains "Client Authentication" }
$checks += [PSCustomObject]@{ Test = "Certificat machine"; Result = "$(if($cert){'Present'}else{'ABSENT'})" }
# Check 4: Portal reachability
$net = Test-NetConnection -ComputerName $reg.PanGPPortal -Port 443 -WarningAction SilentlyContinue
$checks += [PSCustomObject]@{ Test = "Connectivite portail"; Result = $net.TcpTestSucceeded }
$checks | Format-Table -AutoSize
Test Result
---- ------
Service PanGPS Running
Portal configure vpn.entreprise.com
Pre-logon actif 1
Methode connexion pre-logon
Certificat machine Present
Connectivite portail True
En resume
- Deployer les certificats machine via auto-enrollment PKI avant d'activer le pre-logon
- Utiliser les GPO Registry Preferences pour pousser les 6 valeurs cles de
PanSetup\GlobalProtect - Le MSI accepte la propriete
PORTAL=pour preconfigurer le portail a l'installation - Valider avec un script de verification couvrant service, registre, certificat et connectivite
Voir aussi
- Wi-Fi, VPN et 802.1X via GPO — GPO Admins