A few days ago i was in charge do remove some users from IBM Connections. The case was to delete the inactivated users.
The users was removed from the corporate LDAP a few months ago and no one know the DN or CN of the users. The only information was the Display Name
I need to know the user_dn and user_uid to create the file delete_or_inactivate_employees.in and then run delete_or_inactivate_employees.sh script.
The only way i found was to export some data from PEOPLEDB. Reading the table EMPINST . Inactivated users does not have the PROF_MAIL data.
I created an java program using Eclipse, connect to PEOPLEDB and export all users without the PROF_MAIL.
I was able to see the user list and compare with the display name.
The java program print the results on eclipse console.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DAO {
public static void main(String[] args) {
String jdbcClassName=”com.ibm.db2.jcc.DB2Driver”;
String url=”jdbc:db2://mydb2server:50000/PEOPLEDB”;
String user=”lcuser”;
String password=”password”;
Connection connection = null;
try {
//Load class into memory
Class.forName(jdbcClassName);
//Establish connection
connection = DriverManager.getConnection(url, user, password);
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT PROF_UID, PROF_SOURCE_UID, PROF_DISPLAY_NAME FROM “EMPINST”.”EMPLOYEE” WHERE PROF_MAIL IS NULL”);
while (rs.next()){
String x = rs.getString(“PROF_SOURCE_UID”);
String y = rs.getString(“PROF_UID”);
System.out.println (“$dn:”+x);
System.out.println(“uid:”+y);
System.out.println(“.”);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
if(connection!=null){
System.out.println(“Exported successfully.”);
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}