Plantage Domino sur Windows 2008

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Plantage Domino sur Windows 2008

Messagepar Scualito » 02 Oct 2012 à 10:16

Bonjour,

Je ne sais pas si je poste au bon endroit, donc je m'excuse d'avance si ce n'est pas le cas.

Voici mon problème...
Je fais planter violemment Domino sur un Windows 2008 64 bits (et 32 bits aussi, à priori)... Quand je dis violemment, c'est violent car c'est de l’instantané !
J'ai repéré la ligne qui génère le plantage.
En fait, c'est dans une fonction récupérant l'adresse ip de la machine courante. Elle a été récupéré sur Internet (notes.net probablement) il y a des années et n'a jamais posé de soucis.

Voici les déclarations :

Code : Tout sélectionner
Type HOSTENT
   hName As Long
   hAliases As Long
   hAddrType As Integer
   hLen As Integer
   hAddrList As Long
End Type
Type WSADATA
   wVersion As Integer
   wHighVersion As Integer
   szDescription(0 To MAX_WSADescription) As Long
   szSystemStatus(0 To MAX_WSASYSStatus) As Long
   wMaxSockets As Integer
   wMaxUDPDG As Integer
   dwVendorInfo As Long
End Type

Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Declare Function WSAStartup Lib "WSOCK32.DLL" (Byval wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Declare Function gethostname Lib "WSOCK32.DLL" (Byval szHost As String, Byval dwHostLen As Long) As Long
Declare Function gethostbyname Lib "WSOCK32.DLL" (Byval szHost As String) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, Byval hpvSource As Long, Byval cbCopy As Long)

Const MAX_WSADescription = 256
Const MAX_WSASYSStatus = 128
Const ERROR_SUCCESS = 0
Const WS_VERSION_REQD = &H101
Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Const MIN_SOCKETS_REQD = 1
Const SOCKET_ERROR = -1


Voici le code (épuré) :

Code : Tout sélectionner
Function GetIPAddress() As String
   
   Dim sHostName As String * 256
   Dim lpHost As Long
   Dim HOST As HOSTENT
   Dim dwIPAddr As Long
   Dim tmpIPAddr() As Long
   Dim i As Integer
   Dim sIPAddr As String
   
   Dim sess As New NotesSession
   Dim db As NotesDatabase
   Set db = sess.currentDatabase
   
   On Error Goto fin
   
      
   If Not SocketsInitialize() Then
      GetIPAddress = ""
      Exit Function
   End If
   
   If gethostname(sHostName, 256) = SOCKET_ERROR Then
      GetIPAddress = ""
      Msgbox "Windows Sockets error " & Str$(WSAGetLastError()) & _
      " has occurred. Unable to successfully get Host Name."
      SocketsCleanup
      Exit Function
   End If
   
   sHostName = Trim$(sHostName)
   lpHost = gethostbyname(sHostName)
   
   If lpHost = 0 Then
      GetIPAddress = ""
      Msgbox "Windows Sockets are not responding. " & _
      "Unable to successfully get Host Name."
      SocketsCleanup
      Exit Function
   End If
   
   CopyMemory HOST, lpHost, Len(HOST)
   CopyMemory dwIPAddr, HOST.hAddrList, 4
   
   Redim tmpIPAddr(1 To HOST.hLen)
   CopyMemory tmpIPAddr(1), dwIPAddr, 4
   
   sIPAddr = Hex$(sIPAddr & tmpIPAddr(1))
   
   Dim Address_IP As String
   Address_IP = HextoDec(sIPAddr)
   
   GetIPAddress = Address_IP
   SocketsCleanup
   
   Exit Function
fin :   
   Msgbox db.filepath +  " GetIpAdress : " + Str$(Err) + " ( ligne "+ Str$(Erl) + " ):" + Error
   Exit Function   
   
End Function


Et la ligne qui provoque le plantage :

Code : Tout sélectionner
   CopyMemory dwIPAddr, HOST.hAddrList, 4


Via des msgbox, je peux dire que dwIPAddr=0 et que HOST.hAddrList=0
alors que sur Windows 2003, dwIPAddr=0 et que HOST.hAddrList=12521520 (chiffre mis au hasard).
Donc, je pense que la question est pourquoi HOST.hAddrList=0 sur un Windows 2008 64 bits (ou 32 bits)...

Est-ce que quelqu'un aurait une idée pour résoudre ce (gros) problème...
Un grand merci d'avance pour toute l'aide qui pourra nous être apportée...
Avatar de l’utilisateur
Scualito
Posteur habitué
Posteur habitué
 
Message(s) : 230
Inscrit(e) le : 31 Déc 2004 à 15:47
Localisation : Savoie

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 02 Oct 2012 à 10:28

Hello Scualito

malheureusement les API sont connu pour faire planter les server (et les clients) car tout un partie de la gestion des threads et de la mémoire est zapé.

va falloir faire autrement
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 02 Oct 2012 à 10:35

regarde par là si tu peux pas récupérer l'ip => http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 02 Oct 2012 à 10:40

regarde la partie win32_Network
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar Scualito » 02 Oct 2012 à 10:59

Michael DELIQUE a écrit:va falloir faire autrement


Je veux bien, pourquoi pas, mais tu as une idée de comment faire ?

Michael DELIQUE a écrit:regarde la partie win32_Network


J'ai regardé et....... :roll:
Avatar de l’utilisateur
Scualito
Posteur habitué
Posteur habitué
 
Message(s) : 230
Inscrit(e) le : 31 Déc 2004 à 15:47
Localisation : Savoie

Re: Plantage Domino sur Windows 2008

Messagepar roubech » 02 Oct 2012 à 13:18

tu as absolument besoin de l'IP ?
Sinon, tu peux récupérer le nom de la machine dans la variable d'environnement ComputerName

@Environment("ComputerName")
ou
environ("ComputerName")
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Plantage Domino sur Windows 2008

Messagepar Scualito » 02 Oct 2012 à 13:55

roubech a écrit:tu as absolument besoin de l'IP ?


Oui, car c'est pour former une url en cas d'absence de nom de domaine...
Le contexte est un peu compliqué à expliquer, mais si on a pas de nom de domaine on doit prendre l'IP pour former l'url vers le serveur.
Avatar de l’utilisateur
Scualito
Posteur habitué
Posteur habitué
 
Message(s) : 230
Inscrit(e) le : 31 Déc 2004 à 15:47
Localisation : Savoie

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 02 Oct 2012 à 14:07

tu peux pas faire un ipconfig récupérer le résultat et en parser l'ip ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar roubech » 03 Oct 2012 à 13:22

une URL ? c'est l'IP du serveur courant qu'il te faut ? si oui, elle ne doit pas changer souvent. Il ne serait pas plus simple de la paramétrer quelque part ?
sinon, au niveau domino, dans le doc serveur ou le doc site, il doit y avoir un paramètre hostname ....
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Plantage Domino sur Windows 2008

Messagepar Scualito » 03 Oct 2012 à 14:23

roubech a écrit:Il ne serait pas plus simple de la paramétrer quelque part ?


J'y avais déjà pensé, mais le problème est que l'on ne maitrise pas tous les serveurs sur lesquels notre soft est installé et donc on a pas trop envie qu'un mauvais paramétrage fasse planter les serveurs chez des clients.
Je pense qu'on finira au pire par mettre en place ce paramétrage mais bon... en désespoir de cause.

Je vais regarder aussi si je peux récupérer l'info dans le document serveur comme proposé... Mais là-aussi, le risque de plantage existera aussi sur un serveur mal paramétré...

Merci pour les idées !
Avatar de l’utilisateur
Scualito
Posteur habitué
Posteur habitué
 
Message(s) : 230
Inscrit(e) le : 31 Déc 2004 à 15:47
Localisation : Savoie

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 03 Oct 2012 à 14:32

c'est pas enregistré dans la base de registre cette info ?
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 03 Oct 2012 à 14:37

ya peut être une solution en passant par du java.

tu appeller des fonction java en LS ça pourrait le faire.

j'ai trouvé http://blog.developpez.com/ddelbecq/p87 ... la_machine
et ça http://exampledepot.com/egs/java.net/Local.html
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Re: Plantage Domino sur Windows 2008

Messagepar roubech » 03 Oct 2012 à 21:20

Je pensais qu'il s'agissait d'une appli perso et que tu avais la maîtrise de l'environnement. Mais si c'est un "produit", ce n'est pas le cas. Je prevoirai quand même la possibilité de paramétrer la base de l'URL, ne serait ce que pour gérer le cas où le Domino est en cluster et derrière un reverse proxy ... un peu comme les options de iwaredir
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Plantage Domino sur Windows 2008

Messagepar Scualito » 04 Oct 2012 à 09:36

Bon, il a finalement été décidé de créer un paramétrage pour indiquer l'IP du serveur et de forcer l'utilisation de ce paramétrage pour les serveurs Windows 2008.
En fait, il existe déjà ce paramétrage mais il était obligatoire uniquement pour les machines AIX. Donc, on va le généraliser.

Merci en tout cas pour toutes vos réponses ! :wink:

D'ailleurs, en passant, quelqu'un aurait un code pour déterminer la version de Windows sur lequel tourne le serveur ?
J'ai bien essayé NotesSession.PlatForm mais sur 2003 et 2008, ca me donne "Windows/32"

Quelqu'un a une idée ?? Merci....
Avatar de l’utilisateur
Scualito
Posteur habitué
Posteur habitué
 
Message(s) : 230
Inscrit(e) le : 31 Déc 2004 à 15:47
Localisation : Savoie

Re: Plantage Domino sur Windows 2008

Messagepar Michael DELIQUE » 04 Oct 2012 à 09:42

re essais ça

Code : Tout sélectionner
Public Function WindowsOSInfo() As Variant
   Dim lstRetour List As String
   Dim vrObject As Variant
   Dim nbOk As Boolean
   Const Computer = "."
   On Error GoTo ErreurHandle
   
   lstRetour("BOOTDEVICE") = ""
   lstRetour("BUILDNUMBER") = ""
   lstRetour("BUILDTYPE") = ""
   lstRetour("CAPTION") = ""
   lstRetour("CODESET") = ""
   lstRetour("COUNTRYCODE") = ""
   lstRetour("CREATIONCLASSNAME") = ""
   lstRetour("CSCREATIONCLASSNAME") = ""
   lstRetour("CSDVERSION") = ""
   lstRetour("CSNAME") = ""
   lstRetour("CURRENTTIMEZONE") = ""
   lstRetour("DATAEXECUTIONPREVENTION_AVAILABLE") = ""
   rem   lstRetour("DATAEXECUTIONPREVENTION_32BITAPPLICATION") = ""
   lstRetour("DATAEXECUTIONPREVENTION_DRIVERS") = ""
   lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICY") = ""
   lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = ""
   lstRetour("DEBUG") = ""
   lstRetour("DESCRIPTION") = ""
   lstRetour("DISTRIBUTED") = ""
   lstRetour("ENCRYPTIONLEVEL") = ""
   lstRetour("FOREGROUNDAPPLICATIONBOOST") = ""
   lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = ""
   lstRetour("FREEPHYSICALMEMORY") = ""
   lstRetour("FREESPACEINPAGINGFILES") = ""
   lstRetour("FREEVIRTUALMEMORY") = ""
   lstRetour("INSTALLDATE") = ""
   lstRetour("LARGESYSTEMCACHE") = ""
   lstRetour("LARGESYSTEMCACHENAME") = ""
   lstRetour("LASTBOOTUPTIME") = ""
   lstRetour("LOCALDATETIME") = ""
   lstRetour("LOCALE") = ""
   lstRetour("MANUFACTURER") = ""
   lstRetour("MAXNUMBEROFPROCESSES") = ""
   lstRetour("MAXPROCESSMEMORYSIZE") = ""
   lstRetour("MUILANGUAGES") = ""
   lstRetour("NAME") = ""
   lstRetour("NUMBEROFLICENSEDUSERS") = ""
   lstRetour("NUMBEROFPROCESSES") = ""
   lstRetour("NUMBERSOFUSERS") = ""
   lstRetour("OPERATINGSYSTEMSKU") = ""
   lstRetour("OPERATINGSYSTEMSKUNAME") = ""
   lstRetour("ORGANIZATION") = ""
   lstRetour("OSARCHITECTURE") = ""
   lstRetour("OSLANGUAGE") = ""
   lstRetour("OSLANGUAGENAME") = ""
   lstRetour("OSPRODUCTSUITE") = ""
   lstRetour("OSPRODUCTSUITENAME") = ""
   lstRetour("OSTYPE") = ""
   lstRetour("OSTYPENAME") = ""
   lstRetour("OTHERTYPEDESCRIPTION") = ""
   lstRetour("PAEENABLED") = ""
   lstRetour("PLUSPRODUCTID") = ""
   lstRetour("PLUSVERSIONNUMBER") = ""
   lstRetour("PRIMARY") = ""
   lstRetour("PRODUCTTYPE") = ""
   lstRetour("PRODUCTTYPENAME") = ""
   lstRetour("REGISTEREDUSER") = ""
   lstRetour("SERIALNUMBER") = ""
   lstRetour("SERVICEPACKMAJORVERSION") = ""
   lstRetour("SERVICEPACKMINORVERSION") = ""
   lstRetour("SIZESTOREDINPAGINGFILES") = ""
   lstRetour("STATUS") = ""
   lstRetour("SUITEMASK") = ""
   lstRetour("SUITEMASKNAME") = ""
   lstRetour("SYSTEMDEVICE") = ""
   lstRetour("SYSTEMDIRECTORY") = ""
   lstRetour("SYSTEMDRIVE") = ""
   lstRetour("TOTALSWAPSPACESIZE") = ""
   lstRetour("TOTALVIRTUALMEMORYSIZE") = ""
   lstRetour("TOTALVISIBLEMEMORYSIZE") = ""
   lstRetour("VERSION") = ""
   lstRetour("WINDOWSDIRECTORY") = ""

   Set vrObject = GetObject("WinMgmts:{impersonationLevel=impersonate, authenticationLevel=connect, (security)}!\\" +Computer + "\root\CIMv2").ExecQuery("Select * from Win32_OperatingSystem")
   nbOk = false
   ForAll value In vrObject
      nbOk = true
      On Error Resume Next
      lstRetour("BOOTDEVICE") = CStr(value.BootDevice)
      lstRetour("BUILDNUMBER") = CStr(value.BuildNumber)
      lstRetour("BUILDTYPE") = CStr(value.BuildType)
      lstRetour("CAPTION") = CStr(value.Caption)
      lstRetour("CODESET") = CStr(value.CodeSet)
      lstRetour("COUNTRYCODE") = CStr(value.CountryCode)
      lstRetour("CREATIONCLASSNAME") = CStr(value.CreationClassName)
      lstRetour("CSCREATIONCLASSNAME") = CStr(value.CSCreationClassName)
      lstRetour("CSDVERSION") = CStr(value.CSDVersion)
      lstRetour("CSNAME") = CStr(value.CSName)
      lstRetour("CURRENTTIMEZONE") = CStr(value.CurrentTimeZone)
      lstRetour("DATAEXECUTIONPREVENTION_AVAILABLE") = CStr(value.DataExecutionPrevention_Available)
      rem   lstRetour("DATAEXECUTIONPREVENTION_32BITAPPLICATION") = CStr(value.DataExecutionPrevention_32BitApplications)
      lstRetour("DATAEXECUTIONPREVENTION_DRIVERS") = CStr(value.DataExecutionPrevention_Drivers)
      lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICY") = CStr(value.DataExecutionPrevention_SupportPolicy)
      lstRetour("DEBUG") = CStr(value.Debug)
      lstRetour("DESCRIPTION") = CStr(value.Description)
      lstRetour("DISTRIBUTED") = CStr(value.Distributed)
      lstRetour("ENCRYPTIONLEVEL") = CStr(value.EncryptionLevel)
      lstRetour("FOREGROUNDAPPLICATIONBOOST") = CStr(value.ForegroundApplicationBoost)
      lstRetour("FREEPHYSICALMEMORY") = CStr(value.FreePhysicalMemory)
      lstRetour("FREESPACEINPAGINGFILES") = CStr(value.FreeSpaceInPagingFiles)
      lstRetour("FREEVIRTUALMEMORY") = CStr(value.FreeVirtualMemory)
      lstRetour("INSTALLDATE") = CStr(value.InstallDate)
      lstRetour("LARGESYSTEMCACHE") = CStr(value.LargeSystemCache)
      lstRetour("LASTBOOTUPTIME") = CStr(value.LastBootUpTime)
      lstRetour("LOCALDATETIME") = CStr(value.LocalDateTime)
      lstRetour("LOCALE") = CStr(value.Locale)
      lstRetour("MANUFACTURER") = CStr(value.Manufacturer)
      lstRetour("MAXNUMBEROFPROCESSES") = CStr(value.MaxNumberOfProcesses)
      lstRetour("MAXPROCESSMEMORYSIZE") = CStr(value.MaxProcessMemorySize)
      lstRetour("MUILANGUAGES") = CStr(Join(value.MUILanguages,","))
      lstRetour("NAME") = CStr(value.Name)
      lstRetour("NUMBEROFLICENSEDUSERS") = CStr(value.NumberOfLicensedUsers)
      lstRetour("NUMBEROFPROCESSES") = CStr(value.NumberOfProcesses)
      lstRetour("NUMBERSOFUSERS") = CStr(value.NumberOfUsers)
      lstRetour("OPERATINGSYSTEMSKU") = CStr(value.OperatingSystemSKU)
      lstRetour("ORGANIZATION") = CStr(value.Organization)
      lstRetour("OSARCHITECTURE") = CStr(value.OSArchitecture)
      lstRetour("OSLANGUAGE") = CStr(value.OSLanguage)
      lstRetour("OSPRODUCTSUITE") = CStr(value.OSProductSuite)
      lstRetour("OSTYPE") = CStr(value.OSType)
      lstRetour("OTHERTYPEDESCRIPTION") = CStr(value.OtherTypeDescription)
      lstRetour("PAEENABLED") = CStr(value.PAEEnabled)
      lstRetour("PLUSPRODUCTID") = CStr(value.PlusProductID)
      lstRetour("PLUSVERSIONNUMBER") = CStr(value.PlusVersionNumber)
      lstRetour("PRIMARY") = CStr(value.Primary)
      lstRetour("PRODUCTTYPE") = CStr(value.ProductType)
      lstRetour("REGISTEREDUSER") = CStr(value.RegisteredUser)
      lstRetour("SERIALNUMBER") = CStr(value.SerialNumber)
      lstRetour("SERVICEPACKMAJORVERSION") = CStr(value.ServicePackMajorVersion)
      lstRetour("SERVICEPACKMINORVERSION") = CStr(value.ServicePackMinorVersion)
      lstRetour("SIZESTOREDINPAGINGFILES") = CStr(value.SizeStoredInPagingFiles)
      lstRetour("STATUS") = CStr(value.Status)
      lstRetour("SUITEMASK") = CStr(value.SuiteMask)
      lstRetour("SYSTEMDEVICE") = CStr(value.SystemDevice)
      lstRetour("SYSTEMDIRECTORY") = CStr(value.SystemDirectory)
      lstRetour("SYSTEMDRIVE") = CStr(value.SystemDrive)
      lstRetour("TOTALSWAPSPACESIZE") = CStr(value.TotalSwapSpaceSize)
      lstRetour("TOTALVIRTUALMEMORYSIZE") = CStr(value.TotalVirtualMemorySize)
      lstRetour("TOTALVISIBLEMEMORYSIZE") = CStr(value.TotalVisibleMemorySize)
      lstRetour("VERSION") = CStr(value.Version)
      lstRetour("WINDOWSDIRECTORY") = CStr(value.WindowsDirectory)
      On Error GoTo ErreurHandle
   End ForAll   
   Set vrObject = Nothing
   
   If nbOk = True then
      Select Case Trim(lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICY"))      
      Case "0"
         lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = "Always Off. DEP Is turned off For all 32-bit applications On the computer With no exceptions. This setting Is Not available For the user interface."
      Case "1"
         lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = "Always On. DEP Is enabled For all 32-bit applications On the computer. This setting Is Not available For the user interface."
      Case "2"
         lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = "Opt In. DEP Is enabled For a limited number of binaries, the kernel, And all Windows-based services. However, it Is off by default For all 32-bit applications. A user Or administrator must explicitly choose either the AlwaysOn Or the OptOut setting before DEP can be applied To 32-bit applications."
      Case "3"
         lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = "Opt Out. DEP Is enabled by default For all 32-bit applications. A user Or administrator can explicitly Remove support For a 32-bit application by adding the application To an exceptions list."
      Case Else
         REM lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("FOREGROUNDAPPLICATIONBOOSTN"))
      Case "0"   
         lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = "None"
      Case "1"
         lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = "Minimum"
      Case "2"
         lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = "(Default) Maximum"      
      Case Else
         REM lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("LARGESYSTEMCACHE"))
      Case "0"
         lstRetour("LARGESYSTEMCACHENAME") = "Optimize memory For applications."
      Case "1"
         lstRetour("LARGESYSTEMCACHENAME") = "Optimize memory For system performance."
      Case Else
         REM lstRetour("LARGESYSTEMCACHENAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("OSLANGUAGE"))

      Case "1"
         lstRetour("OSLANGUAGENAME") = "Arabic"
      Case "4"
         lstRetour("OSLANGUAGENAME") = "Chinese (Simplified)– China"
      Case "9"
         lstRetour("OSLANGUAGENAME") = "English"
      Case "1025"
         lstRetour("OSLANGUAGENAME") = "Arabic – Saudi Arabia"
      Case "1026"
         lstRetour("OSLANGUAGENAME") = "Bulgarian"
      Case "1027"
         lstRetour("OSLANGUAGENAME") = "Catalan"
      Case "1028"
         lstRetour("OSLANGUAGENAME") = "Chinese (Traditional) – Taiwan"
      Case "1029"
         lstRetour("OSLANGUAGENAME") = "Czech"
      Case "1030"
         lstRetour("OSLANGUAGENAME") = "Danish"
      Case "1031"
         lstRetour("OSLANGUAGENAME") = "German – Germany"
      Case "1032"
         lstRetour("OSLANGUAGENAME") = "Greek"
      Case "1033"
         lstRetour("OSLANGUAGENAME") = "English – United States"
      Case "1034"
         lstRetour("OSLANGUAGENAME") = "Spanish – Traditional Sort"
      Case "1035"
         lstRetour("OSLANGUAGENAME") = "Finnish"
      Case "1036"
         lstRetour("OSLANGUAGENAME") = "French – France"
      Case "1037"
         lstRetour("OSLANGUAGENAME") = "Hebrew"
      Case "1038"
         lstRetour("OSLANGUAGENAME") = "Hungarian"
      Case "1039"
         lstRetour("OSLANGUAGENAME") = "Icelandic"
      Case "1040"
         lstRetour("OSLANGUAGENAME") = "Italian – Italy"
      Case "1041"
         lstRetour("OSLANGUAGENAME") = "Japanese"
      Case "1042"
         lstRetour("OSLANGUAGENAME") = "Korean"
      Case "1043"
         lstRetour("OSLANGUAGENAME") = "Dutch – Netherlands"
      Case "1044"
         lstRetour("OSLANGUAGENAME") = "Norwegian – Bokmal"
      Case "1045"
         lstRetour("OSLANGUAGENAME") = "Polish"
      Case "1046"
         lstRetour("OSLANGUAGENAME") = "Portuguese – Brazil"
      Case "1047"
         lstRetour("OSLANGUAGENAME") = "Rhaeto-Romanic"
      Case "1048"
         lstRetour("OSLANGUAGENAME") = "Romanian"
      Case "1049"
         lstRetour("OSLANGUAGENAME") = "Russian"
      Case "1050"
         lstRetour("OSLANGUAGENAME") = "Croatian"
      Case "1051"
         lstRetour("OSLANGUAGENAME") = "Slovak"
      Case "1052"
         lstRetour("OSLANGUAGENAME") = "Albanian"
      Case "1053"
         lstRetour("OSLANGUAGENAME") = "Swedish"
      Case "1054"
         lstRetour("OSLANGUAGENAME") = "Thai"
      Case "1055"
         lstRetour("OSLANGUAGENAME") = "Turkish"
      Case "1056"
         lstRetour("OSLANGUAGENAME") = "Urdu"
      Case "1057"
         lstRetour("OSLANGUAGENAME") = "Indonesian"
      Case "1058"
         lstRetour("OSLANGUAGENAME") = "Ukrainian"
      Case "1059"
         lstRetour("OSLANGUAGENAME") = "Belarusian"
      Case "1060"
         lstRetour("OSLANGUAGENAME") = "Slovenian"
      Case "1061"
         lstRetour("OSLANGUAGENAME") = "Estonian"
      Case "1062"
         lstRetour("OSLANGUAGENAME") = "Latvian"
      Case "1063"
         lstRetour("OSLANGUAGENAME") = "Lithuanian"
      Case "1065"
         lstRetour("OSLANGUAGENAME") = "Persian"
      Case "1066"
         lstRetour("OSLANGUAGENAME") = "Vietnamese"
      Case "1069"
         lstRetour("OSLANGUAGENAME") = "Basque"
      Case "1070"
         lstRetour("OSLANGUAGENAME") = "Serbian"
      Case "1071"
         lstRetour("OSLANGUAGENAME") = "Macedonian (F.Y.R.O. Macedonia)"
      Case "1072"
         lstRetour("OSLANGUAGENAME") = "Sutu"
      Case "1073"
         lstRetour("OSLANGUAGENAME") = "Tsonga"
      Case "1074"
         lstRetour("OSLANGUAGENAME") = "Tswana"
      Case "1076"
         lstRetour("OSLANGUAGENAME") = "Xhosa"
      Case "1077"
         lstRetour("OSLANGUAGENAME") = "Zulu"
      Case "1078"
         lstRetour("OSLANGUAGENAME") = "Afrikaans"
      Case "1080"
         lstRetour("OSLANGUAGENAME") = "Faeroese"
      Case "1081"
         lstRetour("OSLANGUAGENAME") = "Hindi"
      Case "1082"
         lstRetour("OSLANGUAGENAME") = "Maltese"
      Case "1084"
         lstRetour("OSLANGUAGENAME") = "Scottish Gaelic"
      Case "1085"
         lstRetour("OSLANGUAGENAME") = "Yiddish"
      Case "1086"
         lstRetour("OSLANGUAGENAME") = "Malay – Malaysia"
      Case "2049"
         lstRetour("OSLANGUAGENAME") = "Arabic – Iraq"
      Case "2052"
         lstRetour("OSLANGUAGENAME") = "Chinese (Simplified) – PRC"
      Case "2055"
         lstRetour("OSLANGUAGENAME") = "German – Switzerland"
      Case "2057"
         lstRetour("OSLANGUAGENAME") = "English – United Kingdom"
      Case "2058"
         lstRetour("OSLANGUAGENAME") = "Spanish – Mexico"
      Case "2060"
         lstRetour("OSLANGUAGENAME") = "French – Belgium"
      Case "2064"
         lstRetour("OSLANGUAGENAME") = "Italian – Switzerland"
      Case "2067"
         lstRetour("OSLANGUAGENAME") = "Dutch – Belgium"
      Case "2068"
         lstRetour("OSLANGUAGENAME") = "Norwegian – Nynorsk"
      Case "2070"
         lstRetour("OSLANGUAGENAME") = "Portuguese – Portugal"
      Case "2072"
         lstRetour("OSLANGUAGENAME") = "Romanian – Moldova"
      Case "2073"
         lstRetour("OSLANGUAGENAME") = "Russian – Moldova"
      Case "2074"
         lstRetour("OSLANGUAGENAME") = "Serbian – Latin"
      Case "2077"
         lstRetour("OSLANGUAGENAME") = "Swedish – Finland"
      Case "3073"
         lstRetour("OSLANGUAGENAME") = "Arabic – Egypt"
      Case "3076"
         lstRetour("OSLANGUAGENAME") = "Chinese (Traditional) – Hong Kong SAR"
      Case "3079"
         lstRetour("OSLANGUAGENAME") = "German – Austria"
      Case "3081"
         lstRetour("OSLANGUAGENAME") = "English – Australia"
      Case "3082"
         lstRetour("OSLANGUAGENAME") = "Spanish – International Sort"
      Case "3084"
         lstRetour("OSLANGUAGENAME") = "French – Canada"
      Case "3098"
         lstRetour("OSLANGUAGENAME") = "Serbian – Cyrillic"
      Case "4097"
         lstRetour("OSLANGUAGENAME") = "Arabic – Libya"
      Case "4100"
         lstRetour("OSLANGUAGENAME") = "Chinese (Simplified) – Singapore"
      Case "4103"
         lstRetour("OSLANGUAGENAME") = "German – Luxembourg"
      Case "4105"
         lstRetour("OSLANGUAGENAME") = "English – Canada"
      Case "4106"
         lstRetour("OSLANGUAGENAME") = "Spanish – Guatemala"
      Case "4108"
         lstRetour("OSLANGUAGENAME") = "French – Switzerland"
      Case "5121"
         lstRetour("OSLANGUAGENAME") = "Arabic – Algeria"
      Case "5127"
         lstRetour("OSLANGUAGENAME") = "German – Liechtenstein"
      Case "5129"
         lstRetour("OSLANGUAGENAME") = "English – New Zealand"
      Case "5130"
         lstRetour("OSLANGUAGENAME") = "Spanish – Costa Rica"
      Case "5132"
         lstRetour("OSLANGUAGENAME") = "French – Luxembourg"
      Case "6145"
         lstRetour("OSLANGUAGENAME") = "Arabic – Morocco"
      Case "6153"
         lstRetour("OSLANGUAGENAME") = "English – Ireland"
      Case "6154"
         lstRetour("OSLANGUAGENAME") = "Spanish – Panama"
      Case "7169"
         lstRetour("OSLANGUAGENAME") = "Arabic – Tunisia"
      Case "7177"
         lstRetour("OSLANGUAGENAME") = "English – South Africa"
      Case "7178"
         lstRetour("OSLANGUAGENAME") = "Spanish – Dominican Republic"
      Case "8193"
         lstRetour("OSLANGUAGENAME") = "Arabic – Oman"
      Case "8201"
         lstRetour("OSLANGUAGENAME") = "English – Jamaica"
      Case "8202"
         lstRetour("OSLANGUAGENAME") = "Spanish – Venezuela"
      Case "9217"
         lstRetour("OSLANGUAGENAME") = "Arabic – Yemen"
      Case "9226"
         lstRetour("OSLANGUAGENAME") = "Spanish – Colombia"
      Case "10241"
         lstRetour("OSLANGUAGENAME") = "Arabic – Syria"
      Case "10249"
         lstRetour("OSLANGUAGENAME") = "English – Belize"
      Case "10250"
         lstRetour("OSLANGUAGENAME") = "Spanish – Peru"
      Case "11265"
         lstRetour("OSLANGUAGENAME") = "Arabic – Jordan"
      Case "11273"
         lstRetour("OSLANGUAGENAME") = "English – Trinidad"
      Case "11274"
         lstRetour("OSLANGUAGENAME") = "Spanish – Argentina"
      Case "12289"
         lstRetour("OSLANGUAGENAME") = "Arabic – Lebanon"
      Case "12298"
         lstRetour("OSLANGUAGENAME") = "Spanish – Ecuador"
      Case "13313"
         lstRetour("OSLANGUAGENAME") = "Arabic – Kuwait"
      Case "13322"
         lstRetour("OSLANGUAGENAME") = "Spanish – Chile"
      Case "14337"
         lstRetour("OSLANGUAGENAME") = "Arabic – U.A.E."
      Case "14346"
         lstRetour("OSLANGUAGENAME") = "Spanish – Uruguay"
      Case "15361"
         lstRetour("OSLANGUAGENAME") = "Arabic – Bahrain"
      Case "15370"
         lstRetour("OSLANGUAGENAME") = "Spanish – Paraguay"
      Case "16385"
         lstRetour("OSLANGUAGENAME") = "Arabic – Qatar"
      Case "16394"
         lstRetour("OSLANGUAGENAME") = "Spanish – Bolivia"
      Case "17418"
         lstRetour("OSLANGUAGENAME") = "Spanish – El Salvador"
      Case "18442"
         lstRetour("OSLANGUAGENAME") = "Spanish – Honduras"
      Case "19466"
         lstRetour("OSLANGUAGENAME") = "Spanish – Nicaragua"
      Case "20490"
         lstRetour("OSLANGUAGENAME") = "Spanish – Puerto Rico"
      Case Else
         REM lstRetour("OSLANGUAGENAME") = "UNKNOWN"      
      End Select
      
      Select Case Trim(lstRetour("OSPRODUCTSUITE"))
      Case "1"
         lstRetour("OSPRODUCTSUITENAME") = "Microsoft Small Business Server was once installed, but may have been upgraded To another version of Windows. Windows Server 2003, Windows XP, And Windows 2000:  Small Business"
      Case "2"
         lstRetour("OSPRODUCTSUITENAME") = "Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server, Or Windows NT Server 4.0 Enterprise Edition Is installed. Windows Server 2003, Windows XP, And Windows 2000:  Enterprise"
      Case "4"
         lstRetour("OSPRODUCTSUITENAME") = "Windows BackOffice components are installed. Windows Server 2003, Windows XP, And Windows 2000:  BackOffice"
      Case "8"
         lstRetour("OSPRODUCTSUITENAME") = "Communication Server Is installed. Windows Server 2003, Windows XP, And Windows 2000:  Communication Server"
      Case "16"
         lstRetour("OSPRODUCTSUITENAME") = "Terminal Services Is installed. Windows Server 2003, Windows XP, And Windows 2000:  Terminal Services"
      Case "32"
         lstRetour("OSPRODUCTSUITENAME") = "Microsoft Small Business Server Is installed With the restrictive client license. Windows Server 2003, Windows XP, And Windows 2000:  Small Business (Restricted)"
      Case "64"   
         lstRetour("OSPRODUCTSUITENAME") = "Windows XP Embedded Is installed. Windows Server 2003 And Windows XP:  Embedded NT"
      Case "128"   
         lstRetour("OSPRODUCTSUITENAME") = "Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition, Or Windows 2000 Datacenter Server Is installed. Windows Server 2003, Windows XP, And Windows 2000:  Data Center"
      Case "256"   
         lstRetour("OSPRODUCTSUITENAME") = "Terminal Services Is installed, but only one interactive session Is supported. Windows Server 2003, Windows XP, And Windows 2000:  This value Is Not available."
      Case "512"   
         lstRetour("OSPRODUCTSUITENAME") = "Windows XP Home Edition Is installed. Windows Server 2003, Windows XP, And Windows 2000:  This value Is Not available."
      Case "1024"
         lstRetour("OSPRODUCTSUITENAME") = "Windows Server 2003, Web Edition Is installed. Windows Server 2003, Windows XP, And Windows 2000:  This value Is Not available."
      Case "8192"
         lstRetour("OSPRODUCTSUITENAME") = "Windows Storage Server 2003 R2 Is installed.Windows Server 2003, Windows XP, And Windows 2000:  This value Is Not available."
      Case "16384"
         lstRetour("OSPRODUCTSUITENAME") = "Windows Server 2003, Compute Cluster Edition Is installed. Windows Server 2003, Windows XP, And Windows 2000:  This value Is Not available."
      Case Else
         REM lstRetour("OSPRODUCTSUITENAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("OSTYPE"))
      Case "0"
         lstRetour("OSTYPENAME") = "Unknown"
      Case "1"
         lstRetour("OSTYPENAME") = "Other"
      Case "2"
         lstRetour("OSTYPENAME") = "MACROS"
      Case "3"
         lstRetour("OSTYPENAME") = "ATTUNIX"
      Case "4"
         lstRetour("OSTYPENAME") = "DGUX"
      Case "5"
         lstRetour("OSTYPENAME") = "DECNT"
      Case "6"
         lstRetour("OSTYPENAME") = "Digital UNIX"
      Case "7"
         lstRetour("OSTYPENAME") = "OpenVMS"
      Case "8"
         lstRetour("OSTYPENAME") = "HPUX"
      Case "9"
         lstRetour("OSTYPENAME") = "AIX"
      Case "10"
         lstRetour("OSTYPENAME") = "MVS"
      Case "11"
         lstRetour("OSTYPENAME") = "OS400"
      Case "12"
         lstRetour("OSTYPENAME") = "OS/2"
      Case "13"
         lstRetour("OSTYPENAME") = "JavaVM"
      Case "14"
         lstRetour("OSTYPENAME") = "MSDOS"
      Case "15"
         lstRetour("OSTYPENAME") = "WIN3x"
      Case "16"
         lstRetour("OSTYPENAME") = "WIN95"
      Case "17"
         lstRetour("OSTYPENAME") = "WIN98"
      Case "18"
         lstRetour("OSTYPENAME") = "WINNT"
      Case "19"
         lstRetour("OSTYPENAME") = "WINCE"
      Case "20"
         lstRetour("OSTYPENAME") = "NCR3000"
      Case "21"
         lstRetour("OSTYPENAME") = "NetWare"
      Case "22"
         lstRetour("OSTYPENAME") = "OSF"
      Case "23"
         lstRetour("OSTYPENAME") = "DC/OS"
      Case "24"
         lstRetour("OSTYPENAME") = "Reliant UNIX"
      Case "25"
         lstRetour("OSTYPENAME") = "SCO UnixWare"
      Case "26"
         lstRetour("OSTYPENAME") = "SCO OpenServer"
      Case "27"
         lstRetour("OSTYPENAME") = "Sequent"
      Case "28"
         lstRetour("OSTYPENAME") = "IRIX"
      Case "29"
         lstRetour("OSTYPENAME") = "Solaris"
      Case "30"
         lstRetour("OSTYPENAME") = "SunOS"
      Case "31"   
         lstRetour("OSTYPENAME") = "U6000"
      Case "32"
         lstRetour("OSTYPENAME") = "ASERIES"
      Case "33"
         lstRetour("OSTYPENAME") = "TandemNSK"
      Case "34"
         lstRetour("OSTYPENAME") = "TandemNT"
      Case "35"
         lstRetour("OSTYPENAME") = "BS2000"
      Case "36"   
         lstRetour("OSTYPENAME") = "LINUX"
      Case "37"
         lstRetour("OSTYPENAME") = "Lynx"
      Case "38"
         lstRetour("OSTYPENAME") = "XENIX"
      Case "39"
         lstRetour("OSTYPENAME") = "VM/ESA"
      Case "40"
         lstRetour("OSTYPENAME") = "Interactive UNIX"
      Case "41"
         lstRetour("OSTYPENAME") = "BSDUNIX"
      Case "42"
         lstRetour("OSTYPENAME") = "FreeBSD"
      Case "43"
         lstRetour("OSTYPENAME") = "NetBSD"
      Case "44"
         lstRetour("OSTYPENAME") = "GNU Hurd"
      Case "45"
         lstRetour("OSTYPENAME") = "OS9"
      Case "46"
         lstRetour("OSTYPENAME") = "MACH Kernel"
      Case "47"
         lstRetour("OSTYPENAME") = "Inferno"
      Case "48"
         lstRetour("OSTYPENAME") = "QNX"
      Case "49"
         lstRetour("OSTYPENAME") = "EPOC"
      Case "50"
         lstRetour("OSTYPENAME") = "IxWorks"
      Case "51"
         lstRetour("OSTYPENAME") = "VxWorks"
      Case "52"
         lstRetour("OSTYPENAME") = "MiNT"
      Case "53"
         lstRetour("OSTYPENAME") = "BeOS"
      Case "54"
         lstRetour("OSTYPENAME") = "HP MPE"
      Case "55"
         lstRetour("OSTYPENAME") = "NextStep"
      Case "56"
         lstRetour("OSTYPENAME") = "PalmPilot"
      Case "57"
         lstRetour("OSTYPENAME") = "Rhapsody"
      Case Else
         REM lstRetour("OSTYPENAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("OPERATINGSYSTEMSKU"))
      Case "0"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Undefined"
      Case "1"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Ultimate Edition"
      Case "2"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Home Basic Edition"
      Case "3"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Home Premium Edition"
      Case "4"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Enterprise Edition"
      Case "5"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Home Basic N Edition"
      Case "6"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Business Edition"
      Case "7"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Standard Server Edition"
      Case "8"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Datacenter Server Edition"
      Case "9"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Small Business Server Edition"
      Case "10"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Enterprise Server Edition"
      Case "11"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Starter Edition"
      Case "12"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Datacenter Server Core Edition"
      Case "13"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Standard Server Core Edition"
      Case "14"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Enterprise Server Core Edition"
      Case "15"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Enterprise Server Edition For Itanium-Based Systems"
      Case "16"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Business N Edition"
      Case "17"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Web Server Edition"
      Case "18"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Cluster Server Edition"
      Case "19"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Home Server Edition"
      Case "20"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Storage Express Server Edition"
      Case "21"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Storage Standard Server Edition"
      Case "22"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Storage Workgroup Server Edition"
      Case "23"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Storage Enterprise Server Edition"
      Case "24"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Server For Small Business Edition"
      Case "25"
         lstRetour("OPERATINGSYSTEMSKUNAME") = "Small Business Server Premium Edition"
      Case Else
         REM lstRetour("OPERATINGSYSTEMSKUNAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("PRODUCTTYPE"))
      Case "1"
         lstRetour("PRODUCTTYPENAME") = "Work Station"
      Case "2"
         lstRetour("PRODUCTTYPENAME") = "Domain Controller"
      Case "3"
         lstRetour("PRODUCTTYPENAME") = "Server"
      Case Else
         REM lstRetour("PRODUCTTYPENAME") = "UNKNOWN"
      End Select
      
      Select Case Trim(lstRetour("SUITEMASK"))
      Case "1"
         lstRetour("SUITEMASKNAME") = "Small Business"
      Case "2"
         lstRetour("SUITEMASKNAME") = "Enterprise"
      Case "4"
         lstRetour("SUITEMASKNAME") = "BackOffice"
      Case "8"
         lstRetour("SUITEMASKNAME") = "Communications"
      Case "16"
         lstRetour("SUITEMASKNAME") = "Terminal"
      Case "32"
         lstRetour("SUITEMASKNAME") = "Small Business Restricted"
      Case "64"
         lstRetour("SUITEMASKNAME") = "Embedded NT"
      Case "128"
         lstRetour("SUITEMASKNAME") = "Data Center"
      Case "256"
         lstRetour("SUITEMASKNAME") = "Single User"
      Case "512"
         lstRetour("SUITEMASKNAME") = "Personal"
      Case "1024"
         lstRetour("SUITEMASKNAME") = "Blade"      
      Case Else
         REM lstRetour("SUITEMASKNAME") = "UNKNOWN"
      End Select
   End if
   
   WindowsOSInfo = lstRetour
   Erase lstRetour

   Exit Function
ErreurHandle:
   MsgBox "("+Structure_Log+" : "+Cstr(GetThreadInfo (1))+" Call by "+Cstr(GetThreadInfo(10))+")"+Chr(10)+"Error " + CStr(Err) + " : "+Chr(10) + CStr(Error)+". "+Chr(10)+"Line # "+Cstr(Erl),16," ERROR !"
   Erase lstRetour
   lstRetour("BOOTDEVICE") = ""
   lstRetour("BUILDNUMBER") = ""
   lstRetour("BUILDTYPE") = ""
   lstRetour("CAPTION") = ""
   lstRetour("CODESET") = ""
   lstRetour("COUNTRYCODE") = ""
   lstRetour("CREATIONCLASSNAME") = ""
   lstRetour("CSCREATIONCLASSNAME") = ""
   lstRetour("CSDVERSION") = ""
   lstRetour("CSNAME") = ""
   lstRetour("CURRENTTIMEZONE") = ""
   lstRetour("DATAEXECUTIONPREVENTION_AVAILABLE") = ""
   rem   lstRetour("DATAEXECUTIONPREVENTION_32BITAPPLICATION") = ""
   lstRetour("DATAEXECUTIONPREVENTION_DRIVERS") = ""
   lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICY") = ""
   lstRetour("DATAEXECUTIONPREVENTION_SUPPORTPOLICYNAME") = ""
   lstRetour("DEBUG") = ""
   lstRetour("DESCRIPTION") = ""
   lstRetour("DISTRIBUTED") = ""
   lstRetour("ENCRYPTIONLEVEL") = ""
   lstRetour("FOREGROUNDAPPLICATIONBOOST") = ""
   lstRetour("FOREGROUNDAPPLICATIONBOOSTNAME") = ""
   lstRetour("FREEPHYSICALMEMORY") = ""
   lstRetour("FREESPACEINPAGINGFILES") = ""
   lstRetour("FREEVIRTUALMEMORY") = ""
   lstRetour("INSTALLDATE") = ""
   lstRetour("LARGESYSTEMCACHE") = ""
   lstRetour("LARGESYSTEMCACHENAME") = ""
   lstRetour("LASTBOOTUPTIME") = ""
   lstRetour("LOCALDATETIME") = ""
   lstRetour("LOCALE") = ""
   lstRetour("MANUFACTURER") = ""
   lstRetour("MAXNUMBEROFPROCESSES") = ""
   lstRetour("MAXPROCESSMEMORYSIZE") = ""
   lstRetour("MUILANGUAGES") = ""
   lstRetour("NAME") = ""
   lstRetour("NUMBEROFLICENSEDUSERS") = ""
   lstRetour("NUMBEROFPROCESSES") = ""
   lstRetour("NUMBERSOFUSERS") = ""
   lstRetour("OPERATINGSYSTEMSKU") = ""
   lstRetour("OPERATINGSYSTEMSKUNAME") = ""
   lstRetour("ORGANIZATION") = ""
   lstRetour("OSARCHITECTURE") = ""
   lstRetour("OSLANGUAGE") = ""
   lstRetour("OSLANGUAGENAME") = ""
   lstRetour("OSPRODUCTSUITE") = ""
   lstRetour("OSPRODUCTSUITENAME") = ""
   lstRetour("OSTYPE") = ""
   lstRetour("OSTYPENAME") = ""
   lstRetour("OTHERTYPEDESCRIPTION") = ""
   lstRetour("PAEENABLED") = ""
   lstRetour("PLUSPRODUCTID") = ""
   lstRetour("PLUSVERSIONNUMBER") = ""
   lstRetour("PRIMARY") = ""
   lstRetour("PRODUCTTYPE") = ""
   lstRetour("PRODUCTTYPENAME") = ""
   lstRetour("REGISTEREDUSER") = ""
   lstRetour("SERIALNUMBER") = ""
   lstRetour("SERVICEPACKMAJORVERSION") = ""
   lstRetour("SERVICEPACKMINORVERSION") = ""
   lstRetour("SIZESTOREDINPAGINGFILES") = ""
   lstRetour("STATUS") = ""
   lstRetour("SUITEMASK") = ""
   lstRetour("SUITEMASKNAME") = ""
   lstRetour("SYSTEMDEVICE") = ""
   lstRetour("SYSTEMDIRECTORY") = ""
   lstRetour("SYSTEMDRIVE") = ""
   lstRetour("TOTALSWAPSPACESIZE") = ""
   lstRetour("TOTALVIRTUALMEMORYSIZE") = ""
   lstRetour("TOTALVISIBLEMEMORYSIZE") = ""
   lstRetour("VERSION") = ""
   lstRetour("WINDOWSDIRECTORY") = ""
   WindowsOSInfo = lstRetour
   Erase lstRetour
   Exit Function
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Suivant

Retour vers Développement

cron