Skip to main content

Télécharger un fichier depuis GitHub via RMM

Quand on déploie des scripts ou outils via un RMM (Action1, NinjaRMM, etc.), on a souvent besoin de récupérer un fichier depuis GitHub sur le poste distant.

La commande

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12                                                                                                                                                                                         
                                                                                                                                                                                                                                                                        
$url = "https://raw.githubusercontent.com/user/repo/main/script.ps1"                                                                                                                                                                                                    
$output = "C:\tmp\script.ps1"                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                        
New-Item -ItemType Directory -Force -Path (Split-Path $output) | Out-Null                                                                                                                                                                                               
Invoke-WebRequest -Uri $url -OutFile $output -UseBasicParsing                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                        
if (Test-Path $output) { Write-Host "OK: $output" } else { exit 1 }                                                                                                                                                                                                     

Ce que ça fait

  1. Force TLS 1.2 (obligatoire pour GitHub sur les vieux Windows)
  2. Crée le dossier de destination s’il n’existe pas
  3. Télécharge le fichier
  4. Vérifie qu’il est bien là (et retourne un code d’erreur sinon)

Astuce GitHub

Pour les fichiers bruts, utilise raw.githubusercontent.com au lieu de github.com. L’URL classique te donne la page HTML, pas le fichier.