Récupérer les RollupPacks d’une ferme

Comment faire pour lister les “Hotfix RollUp Packs”, quand les serveurs sont trop nombreux pour être tous affichés dans la console, ou tout simplement quand le module permettant de lister les HRP dans la console n’est pas disponible ?

Encore une fois, le snapin powershell de Citrix nous vient en aide, avec le cmdlet get-xaserverHotfix.

PS c:\get-xaserverHotfix -ServerName MyServer

ServerName        : MyServer
HotfixName        : PSF450W2K3R01
InstalledBy       : DOMAIN\Admin
InstalledOn       : 01/04/2008 11:41:38
Valid             : False
TargetProduct     : Citrix Presentation Server pour Windows
HotfixType        : HRP
LanguageId        : 1036
HotfixesReplaced  : {PSF450W2K3014, PSF450W2K3018, PSF450W2K3017, PSF450W2K3016...}
MoreInformationAt : http://support.citrix.com/article/CTX112747

ServerName        : MyServer
HotfixName        : PSF450W2K3R06
InstalledBy       : DOMAIN\Admin
InstalledOn       : 25/12/2011 11:06:01
Valid             : True
TargetProduct     : Citrix Presentation Server pour Windows
HotfixType        : HRP
LanguageId        : 1036
HotfixesReplaced  : {PSF450W2K3001, PSF450W2K3002, PSF450W2K3003, PSF450W2K3004...}
MoreInformationAt : http://support.citrix.com/article/CTX122757

Il ne nous reste plus qu’à trier sur InstalledOn et filter sur HotfixType  pour récupérer le dernier HRP installé _ ou de ne sélectionner que le HRP valide _ ! Plus pragmatiquement, Il faut s’assurer de ne pas trier une liste vide ou d’être sur d’accéder au premier élément d’un tableau.

$hServer = @()
get-xaServer | % {
  $tmp = get-xaserverHotfix -ServerNAme $_.serverNAme
  if( $tmp.length -gt 0 ){
    $hrps = ($tmp | sort InstalledOn -descending)
    if( $hrps.Count -gt 0 ){
      $hrp = $hrps[0].HotfixName
    }else{
      $hrp = $hrps.HotfixName
    }
    $hServer+= @{"ServerName" = $_.serverName ;"HotFix" = $hrp }
  }else{
    $hServer += @{"ServerName" = $_.serverName;"HotFix" = "Unable to        retreive HotFix" }
  }
}
#Sorti Standard Format CSV
$hServer |% { @($_.ServerName, $_.Hotfix) -join ";"}

Ou

get-xaServer | % { get-xaserverhotfix -ServerName $_.ServerName |? { $_.HotfixType -eq "HRP" -and $_.Valid }} | select ServerName,HotfixName

Leave a Reply

Your email address will not be published. Required fields are marked *