RPCCLIENT(1)                                         RPCCLIENT(1)



NAME
       rpcclient  -  tool for executing client side  MS-RPC func-
       tions

SYNOPSIS
       rpcclient server [ -A authfile ]  [ -c <command string>  ]
       [  -d  debuglevel  ]  [ -h ]  [ -l logfile ]  [ -N ]  [ -s
       <smb config file> ]  [  -U  username[%password]  ]   [  -W
       workgroup ]  [ -N ]

DESCRIPTION
       This tool is part of the  Sambasuite.

       rpcclient  is a utility initially developed to test MS-RPC
       functionality in Samba itself. It  has  undergone  several
       stages  of development and stability. Many system adminis-
       trators have now written scripts around it to manage  Win-
       dows NT clients from their UNIX workstation.

OPTIONS
       server NetBIOS  name  of  Server to which to connect.  The
              server can be any  SMB/CIFS  server.  The  name  is
              resolved  using  the   name  resolve orderline from
              smb.conf(5).

       -A filename
              This option allows you to specify a file from which
              to  read the username and password used in the con-
              nection. The format of the file is


                        username = <value>
                        password = <value>
                        domain   = <value>



              Make certain  that  the  permissions  on  the  file
              restrict access from unwanted users.

       -c 'command string'
              execute   semicolon   separated   commands  (listed
              below))

       -d debuglevel
              set the debuglevel. Debug level 0 is the lowest and
              100 being the highest. This should be set to 100 if
              you are planning on submitting a bug report to  the
              Samba team (see BUGS.txt).

       -h     Print a summary of command line options.

       -l logbasename
              File   name  for  log/debug  files.  The  extension
              '.client' will be appended. The log file  is  never
              removed by the client.

       -N     instruct  rpcclient  not  to ask for a password. By
              default, rpcclient will prompt for a password.  See
              also the -U option.

       -s smb.conf
              Specifies   the   location  of  the  all  important
              smb.conf file.

       -U username[%password]
              Sets the SMB username or username and password.

              If %password is not specified,  the  user  will  be
              prompted.  The  client  will  first  check the USER
              environment variable, then the LOGNAME variable and
              if  either  exists,  the  string  is uppercased. If
              these environmental variables are  not  found,  the
              username GUEST is used.

              A  third  option is to use a credentials file which
              contains the plaintext of the  username  and  pass-
              word.  This  option  is mainly provided for scripts
              where the admin doesn't desire to pass the  creden-
              tials  on the command line or via environment vari-
              ables. If this method is used,  make  certain  that
              the  permissions  on  the file restrict access from
              unwanted users. See the -A for more details.

              Be cautious about including passwords  in  scripts.
              Also, on many systems the command line of a running
              process may be seen via the ps command. To be  safe
              always allow rpcclient to prompt for a password and
              type it in directly.

       -W domain
              Set the SMB domain of the username. This  overrides
              the  default  domain which is the domain defined in
              smb.conf. If the domain specified is  the  same  as
              the  server's NetBIOS name, it causes the client to
              log on using the server's local SAM (as opposed  to
              the Domain SAM).

COMMANDS
       LSARPC

       o lsaquery

       o lookupsids - Resolve a list of SIDs to usernames.

       o lookupnames - Resolve s list of usernames to SIDs.

       o enumtrusts



       SAMR


       o queryuser

       o querygroup

       o queryusergroups

       o querygroupmem

       o queryaliasmem

       o querydispinfo

       o querydominfo

       o enumdomgroups



       SPOOLSS


       o adddriver  <arch>  <config>  -  Execute  an  AddPrinter-
         Driver() RPC to install the printer  driver  information
         on the server. Note that the driver files should already
         exist in the directory returned by getdriverdir.  Possi-
         ble  values  for arch are the same as those for the get-
         driverdir command.  The config parameter is  defined  as
         follows:


                   Long Printer Name:\
                   Driver File Name:\
                   Data File Name:\
                   Config File Name:\
                   Help File Name:\
                   Language Monitor Name:\
                   Default Data Type:\
                   Comma Separated list of Files



         Any empty fields should be enter as the string "NULL".

         Samba does not need to support the concept of Print Mon-
         itors since these only apply  to  local  printers  whose
         driver  can make use of a bi-directional link for commu-
         nication. This field should be "NULL". On  a  remote  NT
         print  server,  the  Print  Monitor  for  a  driver must
         already be installed prior to adding the driver or  else
         the RPC will fail.

       o addprinter <printername> <sharename> <drivername> <port>
         - Add a printer on the remote server. This printer  will
         be  automatically  shared.  Be  aware  that  the printer
         driver must already be  installed  on  the  server  (see
         adddriver)  and  the  portmust be a valid port name (see
         enumports.

       o deldriver - Delete the specified printer driver for  all
         architectures.  This  does  not delete the actual driver
         files from the server, only the entry from the  server's
         list of drivers.

       o enumdata  - Enumerate all printer setting data stored on
         the server. On Windows  NT  clients,  these  values  are
         stored  in  the registry, while Samba servers store them
         in the printers TDB. This command corresponds to the  MS
         Platform  SDK  GetPrinterData() function (* This command
         is currently unimplemented).

       o enumjobs <printer> - List the jobs and status of a given
         printer.   This  command  corresponds to the MS Platform
         SDK EnumJobs() function (*  This  command  is  currently
         unimplemented).

       o enumports  [level]  - Executes an EnumPorts() call using
         the specified info level. Currently only info  levels  1
         and 2 are supported.

       o enumdrivers  [level]  -  Execute an EnumPrinterDrivers()
         call. This lists the various installed  printer  drivers
         for all architectures. Refer to the MS Platform SDK doc-
         umentation for more details of  the  various  flags  and
         calling  options. Currently supported info levels are 1,
         2, and 3.

       o enumprinters [level] - Execute an  EnumPrinters()  call.
         This  lists  the  various  installed and share printers.
         Refer to the MS  Platform  SDK  documentation  for  more
         details  of  the various flags and calling options. Cur-
         rently supported info levels are 0, 1, and 2.

       o getdata <printername> - Retrieve the data  for  a  given
         printer  setting.  See  the  enumdata  command  for more
         information.  This command corresponds to the  GetPrint-
         erData()  MS  Platform  SDK  function (* This command is
         currently unimplemented).

       o getdriver <printername> - Retrieve  the  printer  driver
         information (such as driver file, config file, dependent
         files, etc...) for the given printer. This command  cor-
         responds to the GetPrinterDriver() MS Platform SDK func-
         tion. Currently info level 1, 2, and 3 are supported.

       o getdriverdir <arch> - Execute  a  GetPrinterDriverDirec-
         tory()  RPC to retreive the SMB share name and subdirec-
         tory for storing printer driver files for a given archi-
         tecture. Possible values for arch are "Windows 4.0" (for
         Windows 95/98), "Windows NT x86", "Windows NT  PowerPC",
         "Windows Alpha_AXP", and "Windows NT R4000".

       o getprinter  <printername> - Retrieve the current printer
         information.  This  command  corresponds  to  the   Get-
         Printer() MS Platform SDK function.

       o openprinter  <printername>  - Execute an OpenPrinterEx()
         and ClosePrinter() RPC against a given printer.

       o setdriver <printername> <drivername> -  Execute  a  Set-
         Printer()  command  to update the printer driver associ-
         ated with an installed printer. The printer driver  must
         already be correctly installed on the print server.

         See  also  the enumprinters and enumdrivers commands for
         obtaining a list of of installed printers and drivers.

       GENERAL OPTIONS


       o debuglevel - Set the current debug  level  used  to  log
         information.

       o help  (?)  -  Print  a  listing of all known commands or
         extended help on a particular command.

       o quit (exit) - Exit rpcclient .

BUGS
       rpcclient is designed as a developer testing tool and  may
       not be robust in certain areas (such as command line pars-
       ing).  It has been known to  generate  a  core  dump  upon
       failures  when  invalid  parameters  where  passed  to the
       interpreter.

       From Luke Leighton's original rpcclient man page:

       "WARNING! The MSRPC over SMB code has been developed  from
       examining  Network  traces.  No documentation is available
       from the original creators (Microsoft) on how  MSRPC  over
       SMB  works,  or  how  the  individual MSRPC services work.
       Microsoft's implementation  of  these  services  has  been
       demonstrated  (and  reported)  to  be...  a  bit  flaky in
       places.

       The development of Samba's implementation is  also  a  bit
       rough,  and as more of the services are understood, it can
       even result in versions of smbd(8) and  rpcclient(1)  that
       are  incompatible for some commands or services. Addition-
       ally, the developers are sending reports to Microsoft, and
       problems  found or reported to Microsoft are fixed in Ser-
       vice Packs, which may result in incompatibilities."

VERSION
       This man page is correct for  version  2.2  of  the  Samba
       suite.

AUTHOR
       The  original  Samba  software  and related utilities were
       created by Andrew Tridgell. Samba is now developed by  the
       Samba  Team  as  an Open Source project similar to the way
       the Linux kernel is developed.

       The original rpcclient man page  was  written  by  Matthew
       Geddes,  Luke  Kenneth  Casson  Leighton, and rewritten by
       Gerald Carter.  The conversion to DocBook  for  Samba  2.2
       was done by Gerald Carter.



                         06 December 2001            RPCCLIENT(1)