Récupérer certains paramètres Citrix pour BGINFO

Bonjour,

Comme demandé par certaines personnes, voici quelques « astuces » simples pour récupérer certaines données sur la ferme CPS/XenApp à des fins d’utilisations dans bginfo

BGINFO, vous connaissez? Non? dommage… c’est un petit outil très pratique pour générer des fonds d’écran dynamiques permettant d’avoir de nombreuses informations sur la machine. Il est téléchargeable sur http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx. C’est un outil SysInternals, ce qui donne déjà une idée sur sa qualité !

exemple de fond d’écran (source TechNet Windows SysInternals) :

Mais comment récupérer des informations pour afficher quelque chose de ce gout là :

Il suffit, lors de la création du fond d’écran dans BGINFO d’ajouter des éléments manuellement. Par défaut, seules certaines informations sont disponible (DNS, DHCP, Domaine, System Type etc) comme vu sur la première image. Pour ajouter un champ personnalisé, il faut cliquer sur Custom :

La fenêtre suivante liste les champs personalisés déjà définis :

Il faut donc cliquer sur New et configurer comme voulu pour récupérer l’information désirée :

J’imagine maintenant avec les manipulations décrites que vous souhaitez surtout connaître les différents endroits où récupérer les informations ? Pourtant c’est sympa de chercher plutôt que simplement lire non ?

Liste des éléments facilement récupérables :

Nom de la Ferme : HKEY_LOCAL_MACHINESOFTWARECitrixIMANeighborhood

Type de DataStore : HKEY_LOCAL_MACHINESOFTWARECitrixIMADatabaseDriver

Nom de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixProductName

Version de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixNewProductVersion

Edition de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixProductFeature

ID Session : variable d’environnement %SessionName%

Mais BGINFO supporte l’utilisation de scripts VBS et des reqêtes WMI. Dans l’exemple que j’ai donné, j’utilise MFCOM (via VBS uniquement, BGINFO ne supporte pas WSF) pour récupérer la liste des hotfix installés ainsi que le nom de la zone et si c’est un DataCollector :

Script pour les hotfix:

set oShell = CreateObject( « WScript.Shell » )

computername=oShell.ExpandEnvironmentStrings(« %ComputerName% »)

Set theServer = CreateObject(« MetaFrameCOM.MetaFrameServer »)

theServer.Initialize 6,computername

nHotfixes = theServer.WinServerObject2.HotfixCount

aHotfixes = theServer.WinServerObject2.Hotfixes

dim Hotfix(60), HRP(60)

For iCount = 0 To (nHotfixes – 1)

Set aHotfix = aHotfixes(iCount)

Hotfix(iCount)=aHotfix.Name

if right(hotfix(iCount),3)= »R03″ or right(hotfix(iCount),3)= »R01″ or right(hotfix(iCount),3)= »R02″ or right(hotfix(iCount),3)= »R04″ or right(hotfix(iCount),3)= »R05″ or right(hotfix(iCount),3)= »R06″ then HRP(iCount)=right(aHotfix.Name,2)

Next

First = LBound(HRP)

Last = UBound(HRP)

MaxIndex = First

ArrayMax = HRP(MaxIndex)

For Index = First + 1 To Last

If ArrayMax < HRP(Index) Then

MaxIndex = Index

ArrayMax = HRP(MaxIndex)

End If

Next

For iCount=0 To (nHotfixes-1)

If Instr(Hotfix(iCount), « R » & ArrayMax)>0 then HFDisplay=HFDisplay &  »  » & Hotfix(iCount)

Next

echo HFDisplay

Script pour l’information sur la Zone et le port XML :

set oShell = CreateObject( « WScript.Shell » )

computername=oShell.ExpandEnvironmentStrings(« %ComputerName% »)

Set theServer = CreateObject(« MetaFrameCOM.MetaFrameServer »)

theServer.Initialize 6,computername

XMLPort=theServer.WinServerObject.XMLPortNumber

if theServer.ZoneRanking=1 then

Zone= »Data Collector for zone  » & theServer.ZoneName

else

Set theZone = CreateObject(« MetaFrameCOM.MetaFrameZone »)

theZone.Initialize theServer.ZoneName

Zone= »Member of zone  » & theServer.ZoneName &  » (ZDC:  » & theZone.DataCollector & « ) »

end if

if XMLPort0 then

XML= »XML Port :  » & XMLPort

else

XML= »XML port shared with IIS »

end if

echo Zone & VbCrLf & XML

En espérant que cela vous plaise à tous..

ThinIsFat

Bonjour,

Comme demandé par certaines personnes, voici quelques « astuces » simples pour récupérer certaines données sur la ferme CPS/XenApp à des fins d’utilisations dans bginfo

BGINFO, vous connaissez? Non? dommage… c’est un petit outil très pratique pour générer des fonds d’écran dynamiques permettant d’avoir de nombreuses informations sur la machine. Il est téléchargeable sur http://technet.microsoft.com/en-us/sysinternals/bb897557.aspx. C’est un outil SysInternals, ce qui donne déjà une idée sur sa qualité !

exemple de fond d’écran (source TechNet Windows SysInternals) :

Mais comment récupérer des informations pour afficher quelque chose de ce gout là :

Il suffit, lors de la création du fond d’écran dans BGINFO d’ajouter des éléments manuellement. Par défaut, seules certaines informations sont disponible (DNS, DHCP, Domaine, System Type etc) comme vu sur la première image. Pour ajouter un champ personnalisé, il faut cliquer sur Custom :

La fenêtre suivante liste les champs personalisés déjà définis :

Il faut donc cliquer sur New et configurer comme voulu pour récupérer l’information désirée :

J’imagine maintenant avec les manipulations décrites que vous souhaitez surtout connaître les différents endroits où récupérer les informations ? Pourtant c’est sympa de chercher plutôt que simplement lire non ?

Liste des éléments facilement récupérables :

Nom de la Ferme : HKEY_LOCAL_MACHINESOFTWARECitrixIMANeighborhood

Type de DataStore : HKEY_LOCAL_MACHINESOFTWARECitrixIMADatabaseDriver

Nom de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixProductName

Version de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixNewProductVersion

Edition de CPS : HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrixProductFeature

ID Session : variable d’environnement %SessionName%

Mais BGINFO supporte l’utilisation de scripts VBS et des reqêtes WMI. Dans l’exemple que j’ai donné, j’utilise MFCOM (via VBS uniquement, BGINFO ne supporte pas WSF) pour récupérer la liste des hotfix installés ainsi que le nom de la zone et si c’est un DataCollector :

Script pour les hotfix:

set oShell = CreateObject( « WScript.Shell » )

computername=oShell.ExpandEnvironmentStrings(« %ComputerName% »)

Set theServer = CreateObject(« MetaFrameCOM.MetaFrameServer »)

theServer.Initialize 6,computername

nHotfixes = theServer.WinServerObject2.HotfixCount

aHotfixes = theServer.WinServerObject2.Hotfixes

dim Hotfix(60), HRP(60)

For iCount = 0 To (nHotfixes – 1)

Set aHotfix = aHotfixes(iCount)

Hotfix(iCount)=aHotfix.Name

if right(hotfix(iCount),3)= »R03″ or right(hotfix(iCount),3)= »R01″ or right(hotfix(iCount),3)= »R02″ or right(hotfix(iCount),3)= »R04″ or right(hotfix(iCount),3)= »R05″ or right(hotfix(iCount),3)= »R06″ then HRP(iCount)=right(aHotfix.Name,2)

Next

First = LBound(HRP)

Last = UBound(HRP)

MaxIndex = First

ArrayMax = HRP(MaxIndex)

For Index = First + 1 To Last

If ArrayMax < HRP(Index) Then

MaxIndex = Index

ArrayMax = HRP(MaxIndex)

End If

Next

For iCount=0 To (nHotfixes-1)

If Instr(Hotfix(iCount), « R » & ArrayMax)>0 then HFDisplay=HFDisplay &  »  » & Hotfix(iCount)

Next

echo HFDisplay

Script pour l’information sur la Zone et le port XML :

set oShell = CreateObject( « WScript.Shell » )

computername=oShell.ExpandEnvironmentStrings(« %ComputerName% »)

Set theServer = CreateObject(« MetaFrameCOM.MetaFrameServer »)

theServer.Initialize 6,computername

XMLPort=theServer.WinServerObject.XMLPortNumber

if theServer.ZoneRanking=1 then

Zone= »Data Collector for zone  » & theServer.ZoneName

else

Set theZone = CreateObject(« MetaFrameCOM.MetaFrameZone »)

theZone.Initialize theServer.ZoneName

Zone= »Member of zone  » & theServer.ZoneName &  » (ZDC:  » & theZone.DataCollector & « ) »

end if

if XMLPort0 then

XML= »XML Port :  » & XMLPort

else

XML= »XML port shared with IIS »

end if

echo Zone & VbCrLf & XML

En espérant que cela vous plaise à tous..

ThinIsFat

Laisser un commentaire