RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)
NAME
rpcclient - tool for executing client side MS-RPC functions
SYNOPSIS
rpcclient [ -A authfile ] [ -c <command string> ] [ -d
debuglevel ] [ -h ] [ -l logfile ] [ -N ] [ -s <smb
config file> ] [ -U username[%password] ] [ -W workgroup ]
[ -N ] server
DESCRIPTION
This tool is part of the Samba suite.
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
administrators have now written scripts around it to manage
Windows 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 order line 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 connection.
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'
Page 1 (printed 2/13/04)
RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)
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 password.
This option is mainly provided for scripts where the
admin doesn't desire to pass the credentials on the
command line or via environment variables. 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.
Page 2 (printed 2/13/04)
RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)
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 AddPrinterDriver()
RPC to install the printer driver information on the
server. Note that the driver files should already exist in
the directory returned by getdriverdir. Possible values
for arch are the same as those for the getdriverdir
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
Monitors since these only apply to local printers whose
driver can make use of a bi-directional link for
communication. 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> -
Page 3 (printed 2/13/04)
RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)
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
documentation 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. Currently 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
GetPrinterData() 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
corresponds to the GetPrinterDriver() MS Platform SDK
function. Currently info level 1, 2, and 3 are supported.
o getdriverdir <arch> - Execute a
Page 4 (printed 2/13/04)
RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)GetPrinterDriverDirectory() RPC to retreive the SMB share
name and subdirectory for storing printer driver files for
a given architecture. 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 GetPrinter()
MS Platform SDK function.
o openprinter <printername> - Execute an OpenPrinterEx() and
ClosePrinter() RPC against a given printer.
o setdriver <printername> <drivername> - Execute a
SetPrinter() command to update the printer driver
associated 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
parsing). 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. Additionally,
Page 5 (printed 2/13/04)
RPCCLIENT(1) UNIX System V (19 November 2002) RPCCLIENT(1)
the developers are sending reports to Microsoft, and
problems found or reported to Microsoft are fixed in Service
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.
Page 6 (printed 2/13/04)