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