Das Notes Forum

Domino 9 und frühere Versionen => ND8: Administration & Userprobleme => Thema gestartet von: Günther Rupitz am 06.09.11 - 09:33:27

Titel: LN Version incl. Fixpack ermitteln
Beitrag von: Günther Rupitz am 06.09.11 - 09:33:27
hallo

ich bastel mir gerade in unserem netzwerk-scan tool "Lansweeper" eine Abfrage mit der ich mir alle Lotus Notes Relevanten Client-Daten anzeigen möchte.
Aus der Registry lese ich mir aus HKEY_LOCAL_MACHINE\Software\Lotus\Notes\Version derzeit die LN Version raus.
diese enthält jedoch nicht die info ob ein Fixpack installiert ist.

fällt jemand ein anderer weg ein wo ich das abfragen kann? zur notes.ini komm ich mit dem tool glaube ich nicht hin (nur abfragen über WMI möglich)
Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: MCPvsTron am 06.09.11 - 11:29:31
Hallo,

meines Wissens nach wird die FP-Version nur in der Notes.ini hinterlegt, aber man kann zum Beispiel mit der NSD.exe auch den Releasestand abfragen. (nsd -info)

MfG
Christian
Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: Günther Rupitz am 06.09.11 - 11:43:28
ich könnte mit dem tool zwar ini.dateien auf entfernten maschinen abfragen, jedoch müssten die immer im gleichen verzeichnis liegen, das ist bei uns leider nicht der fall.

Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: tks am 06.09.11 - 12:06:05
Ich weiss zwar nicht, ob das das ist, was du willst.... aber im Personendokument der User ist unter dem Reiter "Administration" aufgeführt, an welchem Client der Benutzer mit welcher Version (inkl. Fixpack) arbeitet.

Jetzt könnte man natürlich die Daten aller User exportieren und daraus eine Liste aller Clients machen.
Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: Günther Rupitz am 06.09.11 - 12:18:24
Ich weiss zwar nicht, ob das das ist, was du willst.... aber im Personendokument der User ist unter dem Reiter "Administration" aufgeführt, an welchem Client der Benutzer mit welcher Version (inkl. Fixpack) arbeitet.

ja, kenne ich. jedoch hab ich immer wieder beobachtet dass die daten hier nicht stimmen. wie es dazu gekommen ist habe ich jedoch nie recherchiert.
Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: eknori (retired) am 06.09.11 - 12:24:50
Ich weiss, daß es mit der API geht ( LS2CAPI), finde es aber momentan nicht. Ich such mal weiter.
Eine andere Möglichkeit ist, die nstrings.dll auszulesen. Dort ist die Version gespeichert, die im Client angezeigt wird.

Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: eknori (retired) am 06.09.11 - 12:36:29
OK, here we go

Declaration section:
Code
'** Error code masks
Const ERR_MASK = &H3fff
Const PKG_MASK = &H3f00
Const ERRNUM_MASK = &H00ff

Declare Function OSLoadString Lib "nnotes.dll" (Byval hModule As Long, Byval stringCode As Integer, _
Byval retBuffer As String, Byval bufferLength As Integer) As Integer

Code
Function GetAPIError (errorCode As Integer) As String
	'** this function translates Notes API error codes into their
	'** corresponding error strings
	Dim errorString As String*256
	Dim returnErrorString As String
	Dim resultStringLength As Long
	Dim errorCodeTranslated As Integer
	
	'** mask off the top 2 bits of the errorCode that was returned; this is
	'** what the ERR macro in the API does
	errorCodeTranslated = (errorCode And ERR_MASK)
	
	'** get the error code translation using the OSLoadString API function
	resultStringLength = OSLoadString(0, errorCodeTranslated, errorString, Len(errorString) - 1)
	
	'** strip off the null-termination on the string before you return it
	If (Instr(errorString, Chr(0)) > 0) Then
		returnErrorString = Left$(errorString, Instr(errorString, Chr(0)) - 1)
	Else
		returnErrorString = errorString
	End If
	
	GetAPIError = returnErrorString
	
End Function

und ein Aufruf mit

Code
Sub Click(Source As Button)
	Msgbox  GetAPIError (1)
End Sub

gibt die die aktuelle NotesVersion incl. FP zurück. Funktioniert auch auf LINUX und MAC, wenn man OSLoadString entsprechend anpasst.
Titel: Re: LN Version incl. Fixpack ermitteln
Beitrag von: koehlerbv am 06.09.11 - 12:42:34
Sehr cool! Danke, Ulrich.

Bernhard