How many named PCs in the collection of Pilot are running the latest version of the package?
Who is running Notes R8.5 on that PC, so that we can convert their mailbox to R8?
So, here is what I did...
I made a list of PCs listed in the pilot collection (from SCCM) and put it in a file called workstations.txt
us000001 us000001 mx000001 mx000002 cn000001 cn000002
And, wrote the following code...
===============================================================================
'txtFile = "workstations.txt"
txtFile = "workstationsTest.txt"
const HKEY_LOCAL_MACHINE = &H80000002
' Lotus Notes 6.5.1 Single Client {1AAE3976-3167-4BDF-B785-00E19C6671A3}
' Lotus Notes 6.5.4 Single Client {6B2764B1-F062-4481-94FD-58B1C211C448}
' Lotus Notes 8.5.1 Single Client {6ACD1549-274A-491B-A233-2B8B689DD0D3}
' Lotus Notes 8.5.1 Multi Client {836670E9-61EB-4D47-9EF8-CFE936C3FE32}
' Lotus Notes 8.5.2 Single Client {E11DFB27-BAF4-46D6-AD76-D5519C0E6786}
' Lotus Notes 8.5.2 Multi Client {07C69B3A-62B3-41BF-82EE-B3A87BD6EA0C}
' Lotus Notes 8.5.3 Single Client {95246D82-99D2-4229-841E-6867C3251087}
dim reg(7)
reg(1)="{07C69B3A-62B3-41BF-82EE-B3A87BD6EA0C}" ' Lotus Notes 8.5.2 Multi Client
reg(2)="{836670E9-61EB-4D47-9EF8-CFE936C3FE32}" ' Lotus Notes 8.5.1 Multi Client
reg(3)="{6ACD1549-274A-491B-A233-2B8B689DD0D3}" ' Lotus Notes 8.5.1 Single Client
reg(4)="{6B2764B1-F062-4481-94FD-58B1C211C448}" ' Lotus Notes 6.5.4 Single Client
reg(5)="{1AAE3976-3167-4BDF-B785-00E19C6671A3}" ' Lotus Notes 6.5.1 Single Client
reg(6)="{E11DFB27-BAF4-46D6-AD76-D5519C0E6786}" ' Lotus Notes 8.5.2 Single Client
reg(7)="{95246D82-99D2-4229-841E-6867C3251087}" ' Lotus Notes 8.5.3 Single Client
dim txtNotesVersion, txtLastUser, txtPersonName, txtMailServer, txtMailFile
dim txtUserName, count
on error resume next 'many PCs will not respond
Dim session, db, view, doc
Set session = CreateObject("Lotus.NotesSession")
Call session.Initialize("xxxxxxxxxxxx")
'wscript.echo "Username: " & session.CommonUserName & "..."
set db = session.getDatabase("HRSM0001/SRV/NA/MyCompanyHub", "names.nsf")
set view =db.getView("lookup\shortname")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(txtFile, 1)
Do Until objFile.AtEndOfStream
count = count + 1
strComputer = objFile.ReadLine
txtNotesVersion = ReadRegistry(strComputer)
if len(txtNotesVersion) > 0 then
txtLastUser = LastUser(strComputer)
set doc = view.getDocumentByKey(txtLastUser)
txtPersonName = doc.getItemValue("FullName")
txtMailServer = doc.getItemValue("MailServer")
txtMailFile = doc.getItemValue("MailFile")
end if
wscript.echo cstr(count) & ":" & strComputer & ":" & txtNotesVersion & ":" & txtLastUser & ":" & Abbreviate(txtPersonName(0)) & ":" & Abbreviate(txtMailServer(0)) & ":" & txtMailFile(0)
' wscript.echo cstr(count) & vbTab & strComputer & vbTab & txtNotesVersion & vbTab & txtLastUser & vbTab & Abbreviate(txtPersonName(0)) & vbTab & Abbreviate(txtMailServer(0)) & vbTab & txtMailFile(0)
Loop
objFile.Close
WScript.Quit
Function ReadRegistry (strComputer)
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
strValueName = "DisplayName"
for i = 1 to 6
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath+reg(i),strValueName,strValue
if len(strValue)>0 then exit for
next
ReadRegistry = strValue
end function
function LastUser (strComputer)
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon"
strValueName = "DefaultUserName"
objRegistry.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue
LastUser = strValue
end function
function Abbreviate (txtIn)
txtIn = replace (txtIn, "CN=", "")
txtIn = replace (txtIn, "OU=", "")
txtIn = replace (txtIn, "O=", "")
Abbreviate = txtIn
end function
===============================================================================
* You may notice about line 43 (wscript.echo cstr(.... ), uses colons as the delimiter. The next line uses tabs, which I used for importing the data into a spreadsheet.
Which produces the following output...
1:us000001:Lotus Notes 6.5.4:MS000001:Mary Smith/RSM/NA/MyCompany:SRSMM001/SRV/NA/MyCompany:mail\MS000001 2:us000002:Lotus Notes 6.5.4:JJ000002:James Johnson/AMA/NA/MyCompany:SMMOM023/SRV/NA/MyCompany:mail\JJ000002 3:mx000001::MH000001:María Hernández/OAX/NA/MyCompany:SMOXA001/SRV/NA/MyCompany:mail\MH000001 4:mx000002:Lotus Notes 8.5.1:SC000001:Santiago García/OAX/NA/MyCompany:SMOXA001/SRV/NA/MyCompany:mail\SC000001 5:cn000001:Lotus Notes 8.5.2:EL000001:Emma Li/PEI/NA/MyCompany:SMPEI001/SRV/NA/MyCompany:mail\ELi 6:cn000002:Lotus Notes 8.5.1:JL000001:Jacob Lam/PEI/NA/MyCompany:SMPEI001/SRV/NA/MyCompany:mail\JL000001
* Line 3: Turns out Maria's PC does not have Notes installed on it.
Which I pipped to a .txt file for later manipulation and merging with other data sources.