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)