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
- Force TLS 1.2 (obligatoire pour GitHub sur les vieux Windows)
- Crée le dossier de destination s’il n’existe pas
- Télécharge le fichier
- 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.