rpcclient
1
Samba
User Commands
&doc.version;
rpcclient
tool for executing client side
MS-RPC functions
rpcclient
-c|--command=COMMANDS
-I|--dest-ip=IP
-p|--port=PORT
-?|--help
--usage
-d|--debuglevel=DEBUGLEVEL
--debug-stdout
--configfile=CONFIGFILE
--option=name=value
-l|--log-basename=LOGFILEBASE
--leak-report
--leak-report-full
-R|--name-resolve=NAME-RESOLVE-ORDER
-O|--socket-options=SOCKETOPTIONS
-m|--max-protocol=MAXPROTOCOL
-n|--netbiosname=NETBIOSNAME
--netbios-scope=SCOPE
-W|--workgroup=WORKGROUP
--realm=REALM
-U|--user=[DOMAIN/]USERNAME[%PASSWORD]
-N|--no-pass
--password=STRING
--pw-nt-hash
-A|--authentication-file=FILE
-P|--machine-pass
--simple-bind-dn=DN
--use-kerberos=desired|required|off
--use-krb5-ccache=CCACHE
--use-winbind-ccache
--client-protection=sign|encrypt|off
-V|--version
BINDING-STRING|HOST
DESCRIPTION
This tool is part of the samba
7 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
BINDING-STRING|HOST
When connecting to a dcerpc service you need to
specify a binding string.
The format is:
TRANSPORT:host[options]
where TRANSPORT is either ncacn_np (named pipes) for SMB or
ncacn_ip_tcp for DCERPC over TCP/IP.
"host" is an IP or hostname or netbios name. If the binding
string identifies the server side of an endpoint, "host" may be
an empty string. See below for more details.
"options" can include a SMB pipe name if using the ncacn_np
transport or a TCP port number if using the ncacn_ip_tcp transport,
otherwise they will be auto-determined.
Examples:
ncacn_ip_tcp:samba.example.com[1024]
ncacn_ip_tcp:samba.example.com[sign,seal,krb5]
ncacn_ip_tcp:samba.example.com[sign,spnego]
ncacn_np:samba.example.com
ncacn_np:samba.example.com[samr]
ncacn_np:samba.example.com[samr,sign,print]
ncalrpc:/path/to/unix/socket
//SAMBA
The supported transports are:
ncacn_np - Connect using named pipes
ncacn_ip_tcp - Connect over TCP/IP
ncalrpc - Connect over local RPC (unix sockets)
The supported options are:
sign - Use RPC integrity authentication level
seal - Enable RPC privacy (encryption) authentication level
connect - Use RPC connect level authentication (auth, but no sign or seal)
packet - Use RPC packet authentication level
spnego - Use SPNEGO instead of NTLMSSP authentication
ntlm - Use plain NTLM instead of SPNEGO or NTLMSSP
krb5 - Use Kerberos instead of NTLMSSP authentication
schannel - Create a schannel connection
smb1 - Use SMB1 for named pipes
smb2 - Use SMB2/3 for named pipes
validate - Enable the NDR validator
print - Enable debug output of packets
padcheck - Check reply data for non-zero pad bytes
bigendian - Use big endian for RPC
ndr64 - Use NDR64 for RPC
-c|--command=<command string>
Execute semicolon separated commands (listed
below)
-I|--dest-ip IP-address
IP address is the address of the server to connect to.
It should be specified in standard "a.b.c.d" notation.
Normally the client would attempt to locate a named
SMB/CIFS server by looking it up via the NetBIOS name resolution
mechanism described above in the name resolve order
parameter above. Using this parameter will force the client
to assume that the server is on the machine with the specified IP
address and the NetBIOS name component of the resource being
connected to will be ignored.
There is no default for this parameter. If not supplied,
it will be determined automatically by the client as described
above.
-p|--port port
This number is the TCP port number that will be used
when making connections to the server. The standard (well-known)
TCP port number for an SMB/CIFS server is 139, which is the
default.
&popt.autohelp;
&cmdline.common.samba.client;
&cmdline.common.connection;
&cmdline.common.credentials;
COMMANDS
LSARPC
lsaqueryQuery info policy
lookupsidsConvert SIDs to names
lookupsids3Convert SIDs to names
lookupsids_levelConvert SIDs to names
lookupnamesConvert names to SIDs
lookupnames4Convert names to SIDs
lookupnames_levelConvert names to SIDs
enumtrustEnumerate trusted domains
enumprivsEnumerate privileges
getdispnameGet the privilege name
lsaenumsidEnumerate the LSA SIDS
lsacreateaccountCreate a new lsa account
lsaenumprivsaccountEnumerate the privileges of an SID
lsaenumacctrightsEnumerate the rights of an SID
lsaaddprivAssign a privilege to a SID
lsadelprivRevoke a privilege from a SID
lsaaddacctrightsAdd rights to an account
lsaremoveacctrightsRemove rights from an account
lsalookupprivvalueGet a privilege value given its name
lsaquerysecobjQuery LSA security object
lsaquerytrustdominfoQuery LSA trusted domains info (given a SID)
lsaquerytrustdominfobynameQuery LSA trusted domains info (given a name), only works for Windows > 2k
lsaquerytrustdominfobysidQuery LSA trusted domains info (given a SID)
lsasettrustdominfoSet LSA trusted domain info
getusernameGet username
createsecretCreate Secret
deletesecretDelete Secret
querysecretQuery Secret
setsecretSet Secret
retrieveprivatedataRetrieve Private Data
storeprivatedataStore Private Data
createtrustdomCreate Trusted Domain
deletetrustdomDelete Trusted Domain
LSARPC-DS
dsroledominfoGet Primary Domain Information
DFS
dfsversionQuery DFS support
dfsaddAdd a DFS share
dfsremoveRemove a DFS share
dfsgetinfoQuery DFS share info
dfsenumEnumerate dfs shares
dfsenumexEnumerate dfs shares
SHUTDOWN
shutdowninitsyntax: shutdown [-m message]
shutdownabortsyntax: shutdownabort
SRVSVC
srvinfoServer query info
netshareenumEnumerate shares
netshareenumallEnumerate all shares
netsharegetinfoGet Share Info
netsharesetinfoSet Share Info
netsharesetdfsflagsSet DFS flags
netfileenumEnumerate open files
netremotetodFetch remote time of day
netnamevalidateValidate sharename
netfilegetsecGet File security
netsessdelDelete Session
netsessenumEnumerate Sessions
netdiskenumEnumerate Disks
netconnenumEnumerate Connections
netshareaddAdd share
netsharedelDelete share
SAMR
queryuserQuery user info
querygroupQuery group info
queryusergroupsQuery user groups
queryuseraliasesQuery user aliases
querygroupmemQuery group membership
queryaliasmemQuery alias membership
queryaliasinfoQuery alias info
deletealiasDelete an alias
querydispinfoQuery display info
querydispinfo2Query display info
querydispinfo3Query display info
querydominfoQuery domain info
enumdomusersEnumerate domain users
enumdomgroupsEnumerate domain groups
enumalsgroupsEnumerate alias groups
enumdomainsEnumerate domains
createdomuserCreate domain user
createdomgroupCreate domain group
createdomaliasCreate domain alias
samlookupnamesLook up names
samlookupridsLook up names
deletedomgroupDelete domain group
deletedomuserDelete domain user
samquerysecobjQuery SAMR security object
getdompwinfoRetrieve domain password info
getusrdompwinfoRetrieve user domain password info
lookupdomainLookup Domain Name
chgpasswdChange user password
chgpasswd2Change user password
chgpasswd3Change user password (RC4 encrypted)
chgpasswd4Change user password (AES encrypted)
getdispinfoidxGet Display Information Index
setuserinfoSet user info
setuserinfo2Set user info2
SPOOLSS
adddriver <arch> <config> [<version>]
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 Driver 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.
The version parameter lets you
specify the printer driver version number. If omitted, the
default driver version for the specified architecture will
be used. This option can be used to upload Windows 2000
(version 3) printer drivers.
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.
deldriver <driver>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.
deldriverex <driver> [architecture] [version] [flags]
Delete the specified printer driver and optionally files
associated with the driver.
You can limit this action to a specific architecture and a specific version.
If no architecture is given, all driver files of that driver will be deleted.
flags correspond to numeric DPD_* values, i.e. a value
of 3 requests (DPD_DELETE_UNUSED_FILES | DPD_DELETE_SPECIFIC_VERSION).
enumdataEnumerate 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).
enumdataexEnumerate printer data for a key
enumkeyEnumerate printer keys
enumjobs <printer>
List the jobs and status of a given printer.
This command corresponds to the MS Platform SDK EnumJobs()
function
getjobGet print job
setjobSet print job
enumports [level]
Executes an EnumPorts() call using the specified
info level. Currently only info levels 1 and 2 are supported.
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.
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 1, 2 and 5.
getdata <printername> <valuename;>
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.
getdataexGet
printer driver data with
keyname
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.
getdriverdir <arch>
Execute a GetPrinterDriverDirectory()
RPC to retrieve 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".
getdriverpackagepath
Get print driver package download directory
getprinter <printername>
Retrieve the current printer information. This command
corresponds to the GetPrinter() MS Platform SDK function.
openprinter <printername>
Execute an OpenPrinterEx() and ClosePrinter() RPC
against a given printer.
openprinter_ex <printername>
Open printer handle
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.
getprintprocdir
Get print processor directory
addformAdd form
setformSet form
getformGet form
deleteformDelete form
enumformsEnumerate form
setprinterSet printer comment
setprinterdataSet REG_SZ printer data
setprintername <printername> <newprintername>
Set printer name
rffpcnexRffpcnex test
printercmpPrinter comparison test
enumprocsEnumerate Print Processors
enumprocdatatypesEnumerate Print Processor Data Types
enummonitorsEnumerate Print Monitors
createprintericCreate Printer IC
playgdiscriptonprintericCreate Printer IC
getcoreprinterdriversGet CorePrinterDriver
enumpermachineconnectionsEnumerate Per Machine Connections
addpermachineconnectionAdd Per Machine Connection
delpermachineconnectionDelete Per Machine Connection
NETLOGON
logonctrl2Logon Control 2
getanydcnameGet trusted DC name
getdcnameGet trusted PDC name
dsr_getdcnameGet trusted DC name
dsr_getdcnameexGet trusted DC name
dsr_getdcnameex2Get trusted DC name
dsr_getsitenameGet sitename
dsr_getforesttrustinfoGet Forest Trust Info
logonctrlLogon Control
samlogonSam Logon
change_trust_pwChange Trust Account Password
gettrustridGet trust rid
dsr_enumtrustdomEnumerate trusted domains
dsenumdomtrustsEnumerate all trusted domains in an AD forest
deregisterdnsrecordsDeregister DNS records
netrenumtrusteddomainsEnumerate trusted domains
netrenumtrusteddomainsexEnumerate trusted domains
getdcsitecoverageGet the Site-Coverage from a DC
capabilitiesReturn Capabilities
logongetdomaininfoReturn LogonGetDomainInfo
FSRVP
fss_is_path_supCheck whether a share supports shadow-copy
fss_get_sup_versionGet supported FSRVP version from server
fss_create_exposeRequest shadow-copy creation and exposure
fss_deleteRequest shadow-copy share deletion
fss_has_shadow_copyCheck for an associated share shadow-copy
fss_get_mappingGet shadow-copy share mapping information
fss_recovery_completeFlag read-write snapshot as recovery complete,
CLUSAPI
clusapi_open_clusterOpen cluster
clusapi_get_cluster_nameGet cluster name
clusapi_get_cluster_versionGet cluster version
clusapi_get_quorum_resourceGet quorum resource
clusapi_create_enumCreate enum query
clusapi_create_enumexCreate enumex query
clusapi_open_resourceOpen cluster resource
clusapi_online_resourceSet cluster resource online
clusapi_offline_resourceSet cluster resource offline
clusapi_get_resource_stateGet cluster resource state
clusapi_get_cluster_version2Get cluster version2
clusapi_pause_nodePause cluster node
clusapi_resume_nodeResume cluster node
DRSUAPI
dscracknamesCrack Name
dsgetdcinfoGet Domain Controller Info
dsgetncchangesGet NC Changes
dswriteaccountspnWrite Account SPN
ECHO
echoaddoneAdd one to a number
echodataEcho data
sinkdataSink data
sourcedataSource data
EPMAPPER
epmmapMap a binding
epmlookupLookup bindings
EVENTLOG
eventlog_readlogRead Eventlog
eventlog_numrecordGet number of records
eventlog_oldestrecordGet oldest record
eventlog_reporteventReport event
eventlog_reporteventsourceReport event and source
eventlog_registerevsourceRegister event source
eventlog_backuplogBackup Eventlog File
eventlog_loginfoGet Eventlog Information
IRemoteWinspool
winspool_AsyncOpenPrinterOpen printer handle
winspool_AsyncCorePrinterDriverInstalledQuery Core Printer Driver Installed
NTSVCS
ntsvcs_getversionQuery NTSVCS version
ntsvcs_validatedevinstQuery NTSVCS device instance
ntsvcs_hwprofflagsQuery NTSVCS HW prof flags
ntsvcs_hwprofinfoQuery NTSVCS HW prof info
ntsvcs_getdevregpropQuery NTSVCS device registry property
ntsvcs_getdevlistsizeQuery NTSVCS device list size
ntsvcs_getdevlistQuery NTSVCS device list
MDSSVC
fetch_propertiesFetch connection properties
fetch_attributesFetch attributes for a CNID
WINREG
winreg_enumkeyEnumerate Keys
querymultiplevaluesQuery multiple values
querymultiplevalues2Query multiple values
WITNESS
GetInterfaceListList the interfaces to which witness client connections can be made
RegisterRegister for resource state change notifications of a NetName and IPAddress
UnRegisterUnregister for notifications from the server
AsyncNotifyRequest notification of registered resource changes from the server
RegisterExRegister for resource state change notifications of a NetName, ShareName and multiple IPAddresses
WKSSVC
wkssvc_wkstagetinfoQuery WKSSVC Workstation Information
wkssvc_getjoininformationQuery WKSSVC Join Information
wkssvc_messagebuffersendSend WKSSVC message
wkssvc_enumeratecomputernamesEnumerate WKSSVC computer names
wkssvc_enumerateusersEnumerate WKSSVC users
GENERAL OPTIONS
helpGet help on commands
?Get help on commands
debuglevelSet debug level
debugSet debug level
listList available commands on pipe
exitExit program
quitExit program
signForce RPC pipe connections to be signed
sealForce RPC pipe connections to be sealed
packetForce RPC pipe connections with packet authentication level
schannelForce RPC pipe connections to be sealed with 'schannel'. Force RPC pipe connections to be sealed with 'schannel'. Assumes valid machine account to this domain controller.
schannelsignForce RPC pipe connections to be signed (not sealed) with 'schannel'. Assumes valid machine account to this domain controller.
timeoutSet timeout (in milliseconds) for RPC operations
transportChoose ncacn transport for RPC operations
noneForce RPC pipe connections to have no special properties
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,
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 part of version &doc.version; 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. The conversion to DocBook XML 4.2 for Samba 3.0 was
done by Alexander Bokovoy.