Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1033 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [powershell] Comparer version installation distance

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[powershell] Comparer version installation distance

n°2393265
razer69
Posté le 13-08-2021 à 11:51:47  profilanswer
 

Bonjour à tous,
 
Je prépare un script powershell pour télécharger et mettre à jour/installer Firefox sur mes serveurs.
 
Ci-dessous une partie su script qui compare la version de Firefox.(testé en local)

Code :
  1. $ff = Invoke-WebRequest  "https://product-details.mozilla.org/1.0/firefox_versions.json" | ConvertFrom-Json
  2. $ff.LATEST_FIREFOX_VERSION
  3. $firefox = (Get-Item (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe').'(Default)').VersionInfo
  4. $firefox_version_installe=$firefox.FileVersion
  5. $firefox_version_installe
  6. if($ff.LATEST_FIREFOX_VERSION -gt $firefox_version_installe) { echo " MAJ à installer"}  Elseif ($ff.LATEST_FIREFOX_VERSION -eq $firefox_version_installe) {echo "version identique"} else { echo "version supérieur à la source pas besoin de MAJ"}


 
 
 
Quelle commande doit être utilisé pour faire cette vérification à distance sur mes serveurs?
 
merci d'avance pour vos explications
 
razer69

mood
Publicité
Posté le 13-08-2021 à 11:51:47  profilanswer
 

n°2393519
ericlm128
Posté le 18-08-2021 à 09:08:06  profilanswer
 

Pour comparer des version je te conseil d'utiliser le type Version

Code :
  1. $ff = Invoke-WebRequest "https://product-details.mozilla.org/1.0/firefox_versions.json" | ConvertFrom-Json
  2. $ff.LATEST_FIREFOX_VERSION
  3. $firefox = (Get-Item (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe').'(Default)').VersionInfo
  4. $firefox_version_installe = $firefox.FileVersion
  5. $firefox_version_installe
  6. if([Version]$ff.LATEST_FIREFOX_VERSION -gt [Version]$firefox_version_installe) { echo " MAJ à installer"}  Elseif ([Version]$ff.LATEST_FIREFOX_VERSION -eq [Version]$firefox_version_installe) {echo "version identique"} else { echo "version supérieur à la source pas besoin de MAJ"}


 
Qu'as tu comme moyen pour déployer le script ? GPO, SCCM, autre ?
 
Pour une exécution à distance en directe il faut l'autoriser mais je ne connais pas exactement la manipulation
https://docs.microsoft.com/fr-fr/po [...] rshell-7.1
https://docs.microsoft.com/fr-fr/po [...] rshell-7.1

n°2393694
razer69
Posté le 19-08-2021 à 15:20:26  profilanswer
 

Bonjour,
 
le script je vais exécuter moi même. Car dans ce script j'ai une fait une boucle qui liste mes serveurs.
 
Par contre je comprend pas  "utiliser le typer "Version"" ? tu entends pas quoi?

n°2393696
ericlm128
Posté le 19-08-2021 à 15:47:36  profilanswer
 
n°2393704
razer69
Posté le 19-08-2021 à 17:46:23  profilanswer
 

Re bonjour,
 
voici mon script qui fonctionne. :)

Code :
  1. $ff = Invoke-WebRequest  "https://product-details.mozilla.org/1.0/firefox_versions.json" | ConvertFrom-Json
  2. $derniereversionfirefox= $ff.LATEST_FIREFOX_VERSION
  3. $workdir = "\\srv-data\DATA_APPLICATION\A DEPLACER\"
  4. $destination = "$workdir\firefox-$derniereversionfirefox.msi"
  5. $source = "https://download.mozilla.org/?product=firefox-msi-latest-ssl&os=win64&lang=fr"
  6. If (Test-Path -Path $workdir -PathType Container)
  7. {
  8. Write-Host "$workdir already exists" -ForegroundColor Red
  9. if(Test-Path $destination){
  10.    Write-Host "Le fichier existe"
  11. }else{
  12.    Write-Host "Le fichier n'existe pas ! telechargement du fichier"
  13.    if (Get-Command 'Invoke-Webrequest')
  14. {
  15.      Invoke-WebRequest $source -OutFile $destination
  16. }
  17. else
  18. {
  19.     $WebClient = New-Object System.Net.WebClient
  20.     $webclient.DownloadFile($source, $destination)
  21. }
  22. }
  23. }
  24. ELSE
  25. { New-Item -Path $workdir  -ItemType directory }
  26. ######################
  27. for ($MonCompteur = 1; $MonCompteur -le 25; $MonCompteur++){
  28. #Write-Host "$MonCompteur"
  29. $nbrcaract = "$MonCompteur".Length
  30. #Write-Host "$nbrcaract"
  31. if ($nbrcaract -eq "1" )
  32. {
  33. $Numeroserveur = "0$MonCompteur"
  34. }
  35. else
  36. {
  37. $Numeroserveur = "$MonCompteur"
  38. }
  39. $firefox = Invoke-Command -ComputerName SRV-CTX-"$Numeroserveur" -ScriptBlock {(Get-Item (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe').'(Default)').VersionInfo}
  40. $firefox_version_installe=$firefox.FileVersion
  41. if($derniereversionfirefox -gt $firefox_version_installe) { echo "SRV-CTX-$Numeroserveur|Version Actuelle $firefox_version_installe | Nouvelle Version $derniereversionfirefox |  MAJ à installer"} 
  42. Elseif ($derniereversionfirefox -eq $firefox_version_installe) {echo "SRV-CTX-$Numeroserveur|Version Actuelle $firefox_version_installe | Nouvelle Version $derniereversionfirefox |  Identique Rien à faire"} else { echo "SRV-CTX-$Numeroserveur|Version Actuelle $firefox_version_installe | Nouvelle Version $derniereversionfirefox |  Destination superieur à la source  Rien à faire"}
  43. }


 
Par contre je bloque pour  lui dire de lancer l'installation. J'ai fais pas mal essai avec la commande Invoke-Command, mais j'ai un accès refusé.  
 
Faut-il rajouter une étape supplémentaire avant de lancer la commande install avec Invoke-Command ?
 
merci d'avance pour vos explications
 
razer69

n°2393707
ericlm128
Posté le 19-08-2021 à 17:56:23  profilanswer
 

PS C:\Users\Moi> "9.0.0.0" -gt "10.0.0.0"
True
 
PS C:\Users\Moi> [version]"9.0.0.0" -gt [version]"10.0.0.0"
False

n°2393732
razer69
Posté le 20-08-2021 à 08:19:30  profilanswer
 

Bonjour erickl128,
 
D'accord je ne connaissais pas


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [powershell] Comparer version installation distance

 

Sujets relatifs
[Powershell]Ajouter une valeur dans un tableau dans requête reccursive(CLOS) Comment comparer les fichiers .class ?
[powershell] appcmd ouvre une autre fenêtre[powershell] copie/màj de répertoires
Appel PowerShell dans une macro[RESOLU !!] Ajouter noeud fichier xml powershell
Probleme d'installation de PHP-8.0.0Meteor plantage après installation npm faker
Powershell: créer users AD à partir d'un CSV 
Plus de sujets relatifs à : [powershell] Comparer version installation distance


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR