This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal


Feb 26, 2015, 1:54 PM
5 Posts

Detect Sametime Release use by Notes Client

  • Category: Sametime
  • Platform: Windows
  • Release: 9.0.1
  • Role: Administrator,Developer
  • Tags:
  • Replies: 2

I am looking for a way to know what release of Sametime our users are using.  Each Notes Release have his default Sametime release:
Notes 8.0 = Sametime 7.5.1
Notes 8.0.1 = Sametime 8.0
Notes 8.0.2 = Sametime 8.0 + some fixes
Notes 8.5 = Sametime 8.0.1
Notes 8.5.1 = Sametime 8.0.2 (specifically 8.0.2.20090919-0400)
Notes 8.5.2 = Sametime 8.0.2 (specifically 8.0.2.20100802-0849)
Notes 8.5.3 = Sametime 8.5.1

IBM Notes/Domino 9.0.1 currently includes IBM Sametime 8.5.2 IFR1

User can use setup program files to update their Sametime client to a later release, like Sametime 901.

As an admin, how can I detect by script who is using what release?  We have severals hundred of computers, and we don't want to make that survey by going into each of them and looking it manually via Help - About IBM Notes and Click of Feature Details.

Is there any API, script, class, file, registry key, or anything else that exist to get that info?

Thank,

Feb 26, 2015, 3:55 PM
202 Posts
Responses posted in other forum
Date Topic Author
        You could see what client they are using in the stlog.nsf on the server (Created by Carl Tyler on 02/26/2015)
        stlog (Created by Barry Shapiro on 02/26/2015)

Feb 27, 2015, 1:34 PM
191 Posts
I did some work in this area
A few years ago, I worked with a company to parse the docs in stlog.nsf and dump them to a view so that you don't end up with many entries per user. I don't remember all of the details, but here was the code that handled that part. You could use that as a starting point for something similar.

%REM
        Agent User Versions
        Created Jun 27, 2012 by Chad Scott/Austin/IBM
        Description: Pulls information from the user logins view and stores it as
                       a static, per-user document in a new view of stlog.nsf.
%END REM

Option Public
Option Declare

Private Const AGENT_VERSION = "User Versions 0.1"
Private Const ST_USER_LOGINS_VIEW = "Notes Community Server Login and Logout Events by User"
Private Const ST_USER_VERSION_VIEW = "User Client Versions"
Private Const ST_USER_VERSION_FORM = "ClientVersions"
Private Const ST_USER_ID = "UserID"
Private Const ST_APP_NAME = "ApplicationName"
Private Const ST_IP_ADDRESS = "NetworkAddress"

Sub Initialize
       
        Dim s As New NotesSession
        Dim stLogDb As NotesDatabase
        Dim userLoginView As NotesView
        Dim userLoginViewDC As NotesDocumentCollection
        Dim userLoginViewDoc As NotesDocument
        Dim userLoginViewUserID As Variant
        Dim userVersionView As NotesView
        Dim userVersionViewDoc As NotesDocument
        Dim userVersionViewUserID As String
        Dim counter As Long
       
        Set stLogDb = s.CurrentDatabase
        counter = 0
       
        ' See if our target view exists. If not, log a message that it needs to be created and
        ' exit. This view is required because we need to correlate entries in it with entries in
        ' the user login view."
        Set userVersionView = stLogDb.GetView(ST_USER_VERSION_VIEW)
        If (userVersionView Is Nothing) Then
                Print "The User Client Versions view does not exist. Please create it and re-run the agent."
                Exit Sub
        End If
       
        ' Get the unprocessed documents from our source view
        Set userLoginViewDC = stLogDb.UnprocessedDocuments
        ' Print stLoginViewDC.Count
       
        ' Loop through the unprocessed documents
        Set userLoginViewDoc = userLoginViewDC.GetFirstDocument
        While (Not userLoginViewDoc Is Nothing)
                counter = counter + 1
                ' Look for a document in the User Client Versions view for this same user
                userLoginViewUserID = userLoginViewDoc.GetItemValue(ST_USER_ID)
                If (userLoginViewUserID(0) = "") Then
                        Goto NextDoc
                Else
                        userVersionViewUserID = userLoginViewUserID(0)
                        Set userVersionViewDoc = userVersionView.GetDocumentByKey(userVersionViewUserID)
                        If (Not userVersionViewDoc Is Nothing) Then
                                ' We found a match, so update it
                                Call UpdateClientInfo(userLoginViewDoc, UserVersionViewDoc, False)
                        Else
                                ' We didn't find a match. Create a new doc and update it
                                Set userVersionViewDoc = stLogDb.CreateDocument
                                If (userVersionViewDoc Is Nothing) Then
                                        Print "Error creating a new document for ", userID
                                        Goto NextDoc
                                End If
                                Call UpdateClientInfo(userLoginViewDoc, UserVersionViewDoc, True)
                        End If
                        ' Add $NoPurge so the docs won't age out of the log
                        Call userVersionViewDoc.AppendItemValue("$NoPurge", "1")
                        Call userVersionViewDoc.Save(False, False)
                End If
NextDoc:
                Call s.UpdateProcessedDoc(userLoginViewDoc)
                Set userLoginViewDoc = userLoginViewDC.GetNextDocument(userLoginViewDoc)
        Wend
       
        Print AGENT_VERSION ": Documents processed: ", counter
       
End Sub

Sub UpdateClientInfo(userLoginViewDoc As NotesDocument, userVersionViewDoc As NotesDocument, isNewlyTrackedUser As Boolean)
        Dim userID As Variant
        Dim currentClientVersion As Variant
        Dim existingClientVersion As Variant
        Dim currentIPAddress As Variant
        Dim existingIPAddress As Variant
       
        userID = userLoginViewDoc.GetItemValue(ST_USER_ID)
        currentClientVersion = userLoginViewDoc.GetItemValue(ST_APP_NAME)
        currentIPAddress = userLoginViewDoc.GetItemValue(ST_IP_ADDRESS)
       
        If ( userID(0) <> "" And currentClientVersion(0) <> "" ) Then
                If (isNewlyTrackedUser = True) Then
                        ' If this is a user who does not already exist in our User Client Versions view, we can just update the doc with no further ado
                        Call userVersionViewDoc.AppendItemValue(ST_USER_ID, userID(0))
                        Call userVersionViewDoc.AppendItemValue(ST_APP_NAME, currentClientVersion(0))
                        Call userVersionViewDoc.AppendItemValue(ST_IP_ADDRESS, currentIPAddress(0))
                        Call userVersionViewDoc.AppendItemValue("Form", ST_USER_VERSION_FORM)
                Else
                        ' If this user already exists in the User Client Versions view, see if the ST client version
                        ' and IP address info remain the same. If either one is different, update it
                        existingClientVersion = userVersionViewDoc.GetItemValue(ST_APP_NAME)
                        existingIPAddress = userVersionViewDoc.GetItemValue(ST_IP_ADDRESS)
                        If (currentClientVersion(0) <> existingClientVersion(0)) Then
                                Call userVersionViewDoc.ReplaceItemValue(ST_APP_NAME, currentClientVersion(0))
                        End If
                        If (currentIPAddress(0) <> existingIPAddress(0)) Then
                                Call userVersionViewDoc.ReplaceItemValue(ST_IP_ADDRESS, currentIPAddress(0))
                        End If
                End If
        End If
End Sub

This forum is closed to new posts and responses. Individual names altered for privacy purposes. The information contained in this website is provided for informational purposes only and should not be construed as a forum for customer support requests. Any customer support requests should be directed to the official HCL customer support channels below:

HCL Software Customer Support Portal for U.S. Federal Government clients
HCL Software Customer Support Portal