diff --git a/src/main/java/org/opencord/aaa/AaaShowUsersCommand.java b/src/main/java/org/opencord/aaa/AaaShowUsersCommand.java
index e2c13c3..e64a6fe 100644
--- a/src/main/java/org/opencord/aaa/AaaShowUsersCommand.java
+++ b/src/main/java/org/opencord/aaa/AaaShowUsersCommand.java
@@ -17,6 +17,11 @@
 
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.net.AnnotationKeys;
+import org.onosproject.net.device.DeviceService;
+
+import org.opencord.sadis.SubscriberAndDeviceInformation;
+import org.opencord.sadis.SubscriberAndDeviceInformationService;
 
 /**
  * Shows the users in the aaa.
@@ -33,13 +38,28 @@
                 "AUTHORIZED",
                 "UNAUTHORIZED"
         };
+
+        DeviceService devService = AbstractShellCommand.get(DeviceService.class);
+        SubscriberAndDeviceInformationService subsService =
+                AbstractShellCommand.get(SubscriberAndDeviceInformationService.class);
+
         for (StateMachine stateMachine : StateMachine.sessionIdMap().values()) {
             String deviceId = stateMachine.supplicantConnectpoint().deviceId().toString();
             String portNum = stateMachine.supplicantConnectpoint().port().toString();
             String username = new String(stateMachine.username());
             String mac = stateMachine.supplicantAddress().toString();
-            print("UserName=%s,CurrentState=%s,DeviceId=%s,MAC=%s,PortNumber=%s",
-                  username, state[stateMachine.state()], deviceId, mac, portNum);
+
+            String nasPortId = devService.getPort(stateMachine.supplicantConnectpoint()).
+                    annotations().value(AnnotationKeys.PORT_NAME);
+
+            String subsId = "Unknown";
+            SubscriberAndDeviceInformation subscriber = subsService.get(nasPortId);
+            if (subscriber != null) {
+                subsId = subscriber.nasPortId();
+            }
+
+            print("UserName=%s,CurrentState=%s,DeviceId=%s,MAC=%s,PortNumber=%s,SubscriberId=%s",
+                  username, state[stateMachine.state()], deviceId, mac, portNum, subsId);
         }
     }
 }
diff --git a/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/src/main/resources/OSGI-INF/blueprint/shell-config.xml
index a47c6c0..728aaf0 100644
--- a/src/main/resources/OSGI-INF/blueprint/shell-config.xml
+++ b/src/main/resources/OSGI-INF/blueprint/shell-config.xml
@@ -19,5 +19,8 @@
         <command>
             <action class="org.opencord.aaa.AaaShowUsersCommand"/>
         </command>
+        <command>
+            <action class="org.opencord.aaa.AaaResetDeviceCommand"/>
+        </command>
     </command-bundle>
 </blueprint>
