How to find where a group is being used in databases in the domain

Hi,I am talking about 20000 application databases and want to know where group “abc” is being used and the access level used.

Subject: Use the “Find Groups” tool in the Admin Clients.

It’s on the People & Groups tab, Tools bar under Groups…It generates AdminP responses for all groups found, check the doc for details.

Thomas - IBM

Subject: RE: Use the “Find Groups” tool in the Admin Clients.

Thankn you Guys. The admin client option works great.

Subject: How to find where a group is being used in databases in the domain.

Sample script server based.

HTH

Patrick

This LS agent picks every database on the server, looks for groupnames contained in the servers NAB (names.nsf) in the db ACL and writes the groupname, the filename and the groups access level to a text file. The code:

Declarations

%INCLUDE “lsxbeerr.lss”

Sub Initialize

Dim Session As New NotesSession

Dim DbDirectory As NotesDbDirectory

Dim db As NotesDatabase

Dim names As NotesDatabase

Dim view As NotesView

Dim doc As NotesDocument

Dim FileNum As Integer

Dim agent As NotesAgent

Dim dbACL As NotesACL

Dim dbACLentry As NotesACLEntry

Dim ename As String

Dim FileName As String

'Assigne un numéro de fichier non utilisé.

FileNum = Freefile

'Chemin d’accès complet et nom du fichier dans lequel les données sont exportées.

Open “C:\Documents and Settings\P. Montavon\Mes Documents\GroupsACL.txt” For Output As FileNum

eserver = Ucase(Inputbox(“Enter the Servername you want to search for Databases”, “Enter Server”))

Set DbDirectory = session.GetDbDirectory(eserver)

Set db = DbDirectory.GetFirstDatabase(DATABASE)

Set names = Session.Getdatabase(eserver, “names.nsf”)

Set view = names.GetView(“Groups”)

Do Until db Is Nothing

On Error Resume Next 'possible access denied on db

Call db.Open(“”,“”)

FileName = db.FileName

Print "Working through ACL in " + FileName

Set dbACL = db.ACL

Set dbACLEntry = dbACL.GetFirstEntry

While Not dbACLEntry Is Nothing

If (dbACLEntry.name = “-Default-”) Or _

(dbACLEntry.name = “LocalDomainServers”) Or _

(dbACLEntry.name = “OtherDomainServers”) Then

Set dbACLEntry = dbACL.GetNextEntry(dbACLEntry)

End If

Set doc = view.GetFirstdocument()

Do Until doc Is Nothing

ename = doc.Listname(0)

If ename = dbACLEntry.name Then

 Call Export(FileNum, FileName, dbACLEntry)

 Set doc = view.Getnextdocument(doc)     

Else

 Set doc = view.Getnextdocument(doc)

End If

Loop

Set dbACLEntry = dbACL.GetNextEntry(dbACLEntry)

Wend

Call db.Close

Set db = DbDirectory.GetNextDatabase

Loop

Close #FileNum

End Sub

Sub Export (FileNum As Integer, FileName As String, dbACLEntry As NotesACLEntry)

Dim ExpStr As String

Dim curlevel As String

curlevel = dbACLEntry.Level

levelconstant = ConvertLevel(curlevel)

ExpStr = dbACLEntry.name & " in file " & FileName & Chr(9) & levelconstant & Chr(13) & Chr(10)

'Ecriture de la ligne dans le fichier

Print #FileNum, ExpStr

Exit Sub

End Sub

Function ConvertLevel (curlevel As String)

Dim levelconstant As String

Select Case curlevel

Case “6”

levelconstant = “Manager”

Case “5”

levelconstant = “Designer”

Case “4”

levelconstant = “Editor”

Case “3”

levelconstant = “Author”

Case “2”

levelconstant = “Reader”

Case “1”

levelconstant = “Depositor”

Case “0”

levelconstant = “No Access”

End Select

ConvertLevel = levelconstant

End Function