.TH "RPCCLIENT" "8" "August 27, 2000" "Samba" "SAMBA" 
.SH "NAME" 
rpcclient \- developer\'s tool to testing client side MS-RPC functions
.SH "SYNOPSIS" 
.IP "\fBrpcclient\fP" 
[-d debuglevel] [-S server] [-l logbasename] [-n netbios name] [-N]
[-m maxprotocol] [-I destIP] [-E] [-U username] [-W workgroup] [-c `command string`]
[-t terminalcode] [-i scope] [-O socket options]
[-s smb\&.conf]
.SH "DESCRIPTION" 
.IP "\fBrpcclient\fP" 
is a utility for developers for executing various MS-RPC functions\&.  It\'s
primary use is for testing Samba\'s own MS-RPC server implementation, however
many administrators have written scripts around it to manage Windows NT clients
from their UNIX workstation\&.
.SH "OPTIONS" 
.PP 
.IP 
.IP "\fB-d debuglevel\fP" 
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)\&.
.IP 
.IP "\fB-S server\fP" 
NetBIOS name of Server to which you wish to connect\&. The server can be 
any SMB/CIFS server\&. The name is resolved using either the "name resolve 
order = " line or by using the \fB-R\fP option\&.
.IP 
.IP "\fB-l logbasename\fP" 
File name for log/debug files\&. \&.client will be
appended\&. The log file is never removed  by the client\&.
.IP 
.IP "\fB-n netbios name\fP" 
NetBIOS name of the local machine\&. This option
is only needed if your Samba client cannot find
it automatically\&. Samba should use the uppercase of the machine\'s
hostname\&.
.IP 
.IP "\fB-N\fP" 
tells rpcclient not to ask for a password\&. rpcclient will prompt
the user by default\&.
.IP 
.IP "\fB-I destIP\fP" 
The IP address of the server specified with the \fB-S\fP
option\&. Only needed when the server\'s NetBIOS
name cannot be resolved using WINS or broadcast
and isn\'t found in the LMHOSTS file\&.
.IP 
.IP "\fB-E\fP" 
causes regedit to write messages to stderr instead of stdout\&.
.IP 
.IP "\fB-U username[%pass]\fP" 
Sets the SMB username or username and password\&. If %pass is not
specified, The user will be prompted\&. The client will first check the USER
environment variable, then the LOGNAME variable and if either exist, the
string is uppercased\&. Anything in these variables following a % sign will be
treated as the password\&. If these environmental variables are not found, the
username GUEST is used\&.
.IP 
If the password is not included in these environment variables
(using the %pass syntax), rpcclient will look for a PASSWD environment
variable from which to read the password\&.
.IP 
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 \fB-A\fP for more details\&.
.IP 
Be cautious about including passwords in scripts or in the
\f(CWPASSWD\fP environment variable\&. Also, on many systems the command
line of a running process may be seen via the \f(CWps\fP command to be
safe always allow smbclient to prompt for a password and type it in
directly\&.
.IP 
.IP "\fB-A <filename>\fP" 
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
.IP 
\f(CWusername = <value>\fP 
.br 
\f(CWpassword = <value>\fP 
.br 
.IP 
Make certain that the permissions on the file restrict access from
unwanted users\&.
.IP 
.IP "\fB-W domain\fP" 
Set the SMB domain of the username\&.   This overrides the default 
domain which is the domain of the server specified with the 
bt(-S) option\&. 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)\&.
.IP 
.IP "\fB-P\fP" 
operate in promptless mode\&.  Without this mode (the default)
rpcclient displays a prompt of the form \'[domain\eusername@host]$\'
.IP 
.IP "\fB-c \'command string\'\fP" 
execute semicolon separated commands (listed below))
.IP 
.IP "\fB-t terminalcode\fP" 
This tells the Samba client how to interpret the incoming filenames, in regards
to character sets\&. The list here is not complete\&. For a complete list see your
local Samba source\&. Some valid options are sjis, euc, jis7, jis8, junet and hex\&.
.IP 
.IP "\fB-O socket options\fP" 
These socket options are the same as in smb\&.conf (under the bt(socket options = )
section)\&.
.IP 
.IP "\fB-s smb\&.conf\fP" 
Specifies the location of the all important smb\&.conf file\&.
.IP 
.IP "\fB-i scope\fP" 
Defines the NetBIOS scope\&. For more information on NetBIOS scopes, see rfc1001
and rfc1002\&. NetBIOS scopes are rarely used\&.
.IP 
.PP 
.SH "COMMANDS" 
.PP 
.IP "\fBSPOOLSS Commands\fP" 
.IP "spoolenum" 
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\&.
.PP 
.IP "spoolenumports <level>" 
Executes an EnumPorts call using the specified info level\&.
Currently only info level 1 and 2 are supported\&.
.PP 
.IP "spoolenumdata" 
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 EnumPorts 
function\&.
.PP 
.IP "spooljobs <printer>" 
List the jobs and status of a given printer\&.  This command
corresponds to the MS Platform SDK EnumJobs function\&.
.PP 
.IP "spoolopen <printer>" 
Execute an OpenPrinterEx() and ClosePrinter()
RPC against a given printer\&.
.PP 
.IP "spoolgetdata" 
Retrive the data for a given printer setting\&.  See the 
\fBspoolenumdata\fP command for more information\&.  This command
corresponds to the GetPrinterData() MS Platform SDK function\&.
.PP 
.IP "spoolgetprinter <printer>" 
Retrieve the current printer information\&.  This command
sorresponds to the GetPrinter() MS Platform SDK function\&.
.PP 
.IP "spoolgetprinterdriver <printer>" 
Retrive 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\&.
.PP 
.IP "spoolgetprinterdriverdir <arch>" 
Execute a 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"\&.
.PP 
.YODLTAGSTART. roffcmd .IP "spooladdprinter <printername> <sharename> 
<drivername> <port>" .YODLTAGEND. 
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 \fBaddprinterdriver\fP) and the <port> must
be a valid port name\&.
.PP 
.IP "spooladdprinterdriver <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 directort returned by 
\fBspoolgetprinterdriverdir\fP\&.  Possible values for <arch>
are the same as those for the \fBspooolgetprintedriverdir\fP command\&.
The <config> parameter is defined as follows:
.PP 
.IP "" 
<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>
.PP 
.IP "" 
Any empty fields should be enter as the string "NULL"\&.
.PP 
.IP "" 
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\&.
.PP 
.IP "\fBGeneral Commands\fP" 
.IP "set" 
Set miscellaneous rpcclient command line options during a running 
session\&.
.PP 
.IP "use" 
Connect to a rmeote SMB server\&.  \fBrpcclient\fP has the ability
to maintain connections to multiple server simulaneously\&.
.PP 
.IP "help" 
Print a listing of all known commands or extended help 
on a particular command\&.
.PP 
.IP "quit" 
Exit rpcclient\&.
.PP 
.SH "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\&.
.PP 
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 flakey in places\&.
.PP 
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 
\fBsmbd(8)\fP and rpcclient that are incompatible for some commands or 
services\&. Additionally, the developers are sending reports to Microsoft, 
and problems found or reported to Microsoft are fixed in Service Packs, 
which may result in incompatibilities\&."
.PP 
.SH "SEE ALSO" 
\fBsamba (7)\fP
.SH "AUTHOR" 
Samba is written by The Samba Team as Open Source\&. This man page was written
by Matthew Geddes, Luke Kenneth Casson, and Gerald Carter\&.