type=page
status=published
title=list-admin-objects
next=list-application-refs.html
prev=list.html
~~~~~~

= list-admin-objects

[[list-admin-objects-1]][[GSRFM00146]][[list-admin-objects]]

== list-admin-objects

Gets all the administered objects

[[sthref1292]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-admin-objects [--help]
[target]
----

[[sthref1293]]

=== Description

The `list-admin-objects` subcommand lists all the administered objects.

This subcommand is supported in remote mode only.

[[sthref1294]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.

[[sthref1295]]

=== Operands

target::
  The target for which administered objects are to be listed. Valid
  values are as follows:

  `server`;;
    Lists the administered objects on the default server instance. This
    is the default value.
  configuration-name;;
    Lists the administered objects in the specified configuration.
  cluster-name;;
    Lists the administered objects on all server instances in the
    specified cluster.
  instance-name;;
    Lists the administered objects on a specified server instance.

[[sthref1296]]

=== Examples

[[GSRFM634]][[sthref1297]]

==== Example 1   Listing Administered Objects

This example lists all the administered objects.

[source]
----
asadmin> list-admin-objects
jms/samplequeue
jms/anotherqueue
Command list-admin-objects executed successfully
----

[[sthref1298]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1299]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-admin-object.html#create-admin-object-1[`create-admin-object`(1)],
link:delete-admin-object.html#delete-admin-object-1[`delete-admin-object`(1)]


