Manpages – rpcclient

by

Name

rpcclient — Werkzeug für die Ausführung von clientseitigen MS-RPC-Funktionen.

 

 

Synopsis

 

rpcclient [-A AuthDatei] [-c <BefehlsString>] [-d DebugEbene] [-h] [-l LogVerz] [-N] [-s <smb KonfigDatei>] [-U Benutzername[%Passwort]] [-W Arbeitsgruppe] [-N] [-I ZielIP] {Server}

BESCHREIBUNG

Dieses Werkzeug ist Teil der Samba-Suite.

rpcclient ist ein Werkzeug, das zunächst dafür entwickelt wurde, MS-RPC-Funktionalität in Samba selbst zu testen. Es ist durch mehrere Entwicklungs- und Stabilitätsphasen gegangen. Viele Systemadministratoren haben nun Skripte drumherum geschrieben, um Windows NT-Clients von ihrer UNIX-Workstation aus zu verwalten.

 

OPTIONEN

 

Server
Der NetBIOS-Name des Servers, mit dem eine Verbindung hergestellt werden soll. Der Server kann ein beliebiger SMB/CIFS-Server sein. Der Name wird mit der Zeile name resolve order aus smb.conf aufgelöst.

-c|–command=’BefehlsString‘
Führt die mit Semikola getrennten Befehle aus (unten aufgelistet).

-I IP-Adresse
IP-Adresse ist die Adresse des Zielservers. Sie sollte in der Standardnotation „a.b.c.d“ angegeben werden.

Normalerweise würde der Client versuchen, einen benannten SMB-/CIFS-Server zu finden, indem er ihn über den NetBIOS-Namensauflösungesmechanismus sucht, der oben beim Parameter name
resolve order
beschrieben ist. Die Benutzung dieses Parameters zwingt den Client zu der Annahme, dass der Server auf dem Rechner mit der angegebenen IP-Adresse ist, und die
NetBIOS-Namenskomponente der Zielressource wird ignoriert.

Für diesen Parameter gibt es keinen Vorgabewert. Wenn er nicht angegeben wird, dann wird er vom Client automatisch wie oben beschrieben bestimmt.

-V
Gibt die Versionsnummer des Programms aus.

-s <Konfigurations-Datei>
Die angegebene Datei enthält die Konfigurationdetails, die der Server benötigt. Die Information in dieser Datei ist zum Teil Server-spezifisch, z.B. welche printcap-Datei benutzt werden
soll, enthält aber auch Beschreibungen aller Dienste, die der Server anbieten soll. Siehe smb.conf für weitere Informationen. Der Standardname der Konfigurationsdatei wird beim Kompilieren
bestimmt.
-d|–debug=Debug-Ebene
Debug-Ebene ist ein Integer von 0 bis 10. Falls dieser Parameter nicht angegeben wird, ist der Vorgabewert dafür Null.

Je höher der Wert ist, desto mehr Details über die Serveraktivität werden in den Log-Dateien abgespeichert. Auf der Ebene 0 werden nur kritische Fehler und ernstzunehmende Warnungen
geloggt. Ebene 1 ist eine vernünftige Ebene beim alltäglichen Betrieb – dabei wird eine kleine Informationsmenge über die ausgeführten Operationen erzeugt.

Die Ebenen höher als 1 erzeugen beachtliche Mengen von Logdaten, und sollten nur bei der Suche nach Problemen verwendet werden. Die Ebenen größer als 3 sind nur für Entwickler gedacht und
erzeugen RIESIGE Mengen an Logdaten, von denen die meisten extrem kryptisch sind.

Beachten Sie, dass durch die Angabe dieses Parameters an dieser Stelle der Parameter log level in der Datei smb.conf überschrieben wird.

-l|–logfile=logbasename
Dateiname für Log-/Debug-Dateien. Die Dateierweiterung „.client“ wird angefügt. Die Log-Datei wird vom Client niemals entfernt.

-N
Wenn angegeben unterdrückt dieser Parameter die normale Passwortabfrage eines Clients beim Benutzer. Das ist dann nützlich, wenn ein Dienst verwendet wird, der kein Passwort benötigt.

Falls kein Passwort auf der Kommandozeile und dieser Parameter nicht angegeben wird, verlangt der Client ein Passwort.

-k
Versucht eine Authentifikation mittels Kerberos. Nur sinnvoll in einer Active Directory-Umgebung.

-A|–authfile=Dateiname
Mit dieser Option können Sie eine Datei angeben, aus der der Benutzername und das Passwort für eine Verbindung gelesen werden sollen. Das Dateiformat ist:

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

Stellen Sie sicher, dass die Dateirechte den Zugriff durch unerwünschte Benutzer verhindern.

-U|–user=Benutzername[%Passwort]
Setzt den SMB-Benutzernamen oder Benutzernamen und Passwort.

Falls %Passwort nicht angegeben wird, wird der Benutzer danach gefragt. Der Client überprüft zunächst die Umgebungsvariable USER, dann LOGNAME und wenn eine davon existiert, wird sie in
Großbuchstaben umgewandelt. Werden diese Umgebungsvariablen nichtgefunden, wird der Benutzername GUEST verwendet.

Eine dritte Option besteht darin, eine Credentials-Datei zu verwenden, mit den Benutzernamen und Passwörtern in Klartext. Diese Option ist ist vor allem für Skripte gedacht, wenn der
Administrator die Credentials nicht auf der Kommandozeile oder über Umgebungsvariablen übergeben möchte. Bei dieser Methode sollten Sie sicherstellen, dass die Zugriffsrechte an der Datei
unerwünschte Benutzer ausschließen. Siehe -A für weitere Details.

Seien Sie achtsam, wenn Sie Passwörter in Skripten verwenden. Auf vielen Systemen kann man außerdem die Kommandozeile eines laufenden Prozesses mit dem Befehl ps sehen. Um
sicherzugehen sollten rpcclient immer erlauben, ein Passwort zu verlangen und es dann direkt eingeben.

-n <NetBIOS-Hauptname>
Mit dieser Option können Sie den NetBIOS-Namen überschreiben, den Samba für sich selbst benutzt. Das ist identisch damit, dass Sie den Parameter netbios name in der Datei smb.conf setzen.
Allerdings hat eine Einstellung auf der Kommandozeile Vorrang vor Einstellungen in smb.conf.
-i <Scope>
Dies gibt einen NetBIOS-Scope an, mit dem nmblookup beim Generieren von NetBIOS-Namen kommuniziert. Für Details zur Verwendung von NetBIOS-Scopes siehe rfc1001.txt und
rfc1002.txt. NetBIOS-Scopes werden sehr selten benutzt. Setzen Sie diesen Parameter nur dann, wenn Sie als Systemadministrator für alle NetBIOS-Systeme zuständig sind, mit denen Sie kommunizieren.
-W|–workgroup=Domäne
Setzt die SMB-Domäne des Benutzernamens. Dies überschreibt die vorgegebene Domäne, die in smb.conf definiert wird. Wenn die definierte Domäne identisch ist mit dem NetBIOS-Namen des
Servers, meldet sich der Client unter Verwendung des lokalen SAMs des Servers an (statt des Domänen-SAMs).
-O Socket-Optionen
TCP-Socket-Optionen, die beim Client-Socket eingestellt werden können. Siehe Parameter socket options in der manpage smb.conf, um eine Liste der gültigen Optionen zu sehen.

-h|–help
Gibt eine Zusammenfassung der Kommandozeilenoptionen aus.

 

BEFEHLE

LSARPC

lsaquery
Fragt Info-Policy ab.

lookupsids
Löst eine Liste von SIDs in Benutzernamen auf.

lookupnames
Löst eine Liste von Benutzernamen in SIDs auf.

enumtrusts
Zählt Domänen auf, denen vertraut wird.

enumprivs
Zählt Privilegien auf.

getdispname
Holt Privilegienname.

lsaenumsid
Zählt LSA-SIDS auf.

lsaenumprivsaccount
Zählt die Privilegien einer SID auf.

lsaenumacctrights
Zählt die Rechte einer SID auf.

lsaenumacctwithright
Zählt Konten mit einem Recht auf.

lsaaddacctrights
Fügt Rechte zu einem Konto hinzu.

lsaremoveacctrights
Entfernt Rechte aus einem Konto.

lsalookupprivvalue
Holt einen Privilegienwert zu seinem Namen.

lsaquerysecobj
Fragt LSA-Sicherheitsobjekt ab.

 

LSARPC-DS

dsroledominfo
Holt Domänenhauptinformation.

DFS

dfsexist
Fragt DFS-Unterstützung ab.

dfsadd
Fügt eine DFS-Freigabe hinzu.

dfsremove
Entfernt eine DFS-Freigabe.

dfsgetinfo
Fragt DFS-Freigabeinfo ab.

dfsenum
Zählt DFS-Freigaben auf.

 

REG

shutdown
Entferntes Herunterfahren.

abortshutdown
Abbruch des Herunterfahrens.

 

SRVSVC

srvinfo
Server-Abfrageinformation.

netshareenum
Zählt Freigaben auf.

netfileenum
Zählt geöffnete Dateien auf.

netremotetod
Holt entfernte Tageszeit.

 

SAMR

queryuser
Fragt Benutzerinformation ab.

querygroup
Fragt Gruppeninformation ab.

queryusergroups
Fragt Benutzergruppen ab.

querygroupmem
Fragt Gruppenzugehörigkeit ab.

queryaliasmem
Fragt Alias-Zugehörigkeit ab.

querydispinfo
Fragt Display-Information ab.

querydominfo
Fragt Domäneninformation ab.

enumdomusers
Zählt Domänenbenutzer auf.

enumdomgroups
Zählt Domänengruppen auf.

enumalsgroups
Zählt Alias-Gruppen auf.

createdomuser
Erstellt Domänenbenutzer.

samlookupnames
Sucht Namen.

samlookuprids
Sucht rids.

deletedomuser
Löscht Domänenbenutzer.

samquerysecobj
Fragt SAMR-Sicherheitsobjekt ab.

getdompwinfo
Holt Info zum Domänenpasswort.

lookupdomain
Sucht Domäne.

 

SPOOLSS

adddriver <Arch> <Konfig> [<Version>]
Führt einen RPC-Aufruf von AddPrinterDriver() aus, um den Druckertreiber auf dem Server zu installieren. Beachten Sie, dass die Treiberdateien in dem Verzeichnis, das von
getdriverdir zurückgegeben wird, schon existieren sollten. Mögliche Werte für Arch sind die gleichen wie beim Befehl getdriverdir. Der Parameter
Konfig ist wie folgt definiert:

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

Alle leeren Felder sollten als String „NULL“ eingegeben werden.

Samba braucht das Konzept von Druckmonitoren nicht zu unterstützen, da diese nur auf lokalen Druckern anwendbar sind, deren Treiber auf einer bidirektionalen Verbindung kommunizieren
können. Dieses Feld sollte „NULL“ sein. Auf einem entfernten NT-Druckserver muss der Druckmonitor für einen Treiber schon vor dem Treiber selbst installiert sein, sonst versagt der
RPC-Aufruf.

Mit dem Parameter Version können Sie die Versionsnummer des Druckertreibers angeben. Wenn er weggelassen wird, wird die vorgegebene Treiberversion für die angegebene Architektur
benutzt. Mit dieser Option können Druckertreiber von Windows 2000 (Version 3) hochgeladen werden.

addprinter <Druckername> <Freigabename> <Treibername> <Port>Fügt einen Drucker auf dem entfernten Server hinzu. Dieser Drucker wird automatisch freigegeben. Seien Sie sich im Klaren darüber, dass der Druckertreiber auf dem Server schon installiert
sein muss (siehe adddriver) und Port ein gültiger Portname sein muss (siehe enumports).deldriverLöscht den angegebenen Druckertreiber für alle Architekturen. Dabei werden nicht die eigentlichen Treiberdateien vom Server gelöscht, sondern nur der Eintrag aus der Treiberliste des
Servers.enumdataZählt alle auf dem Server gespeicherten Druckereinstellungsdaten auf. Auf Windows NT-Clients werden diese Werte in der Registry gespeichert, während Samba-Server sie in den Drucker-TDB
speichern. Dieser Befehl entspricht der Funktion GetPrinterData() des SDK auf der MS-Plattform (* Dieser Befehl ist im Moment nicht implementiert).enumdataex

Zählt Druckerdaten zu einem Schlüssel auf.

enumjobs <printer>

Listet die Aufträge und den aktuellen Status eines gegebenen Druckers auf. Dieser Befehl entspricht der Funktion EnumJobs() des SDK auf der MS-Plattform.

enumkey

Zählt die Druckerschlüssel auf.

enumports [Ebene]

Führt einen Aufruf von EnumPorts() mit der angegebenen Informationsebene aus. Momentan werden nur die Ebenen 1 und 2 unterstützt.

enumdrivers [Ebene]Führt einen Aufruf von EnumPrinterDrivers() aus. Dadurch werden die verschiedenen installierten Druckertreiber für alle Architekturen aufgelistet. Lesen Sie die SDK-Dokumentation zur
MS-Plattform für weitere Details zu den verschiedenen Flags und Aufrufoptionen. Momentan werden die Informationsebenen 1, 2 und 3 unterstützt.enumprinters [Ebene]Führt einen Aufruf von EnumPrinters() aus. Dadurch werden die verschiedenen installierten Freigabedrucker aufgelistet. Lesen Sie die SDK-Dokumentation zur MS-Plattform für weitere Details
zu den verschiedenen Flags und Aufrufoptionen. Momentan werden die Informationsebenen 1, 2 und 5 unterstützt.getdata <Druckername> <Wertname;>Erhalte die Daten für die angegebene Druckereinstellung. Siehe den Befehl enumdata für weitere Informationen. Dieser Befehl entspricht der Funktion GetPrinterData() des SDK
auf der MS-Plattform.getdataex

Holt Druckertreiberdaten mit Schlüsselname.

getdriver <Druckername>Holt die Druckertreiberinformation (z.B. Treiberdatei, Konfigurationsdatei, abhängige Dateien etc. …) zum angegebenen Drucker. Dieser Befehl entspricht der Funktion GetPrinterDriver() des
SDK auf der MS-Plattform. Momentan werden die Informationsebenen 1, 2 und 3 unterstützt.getdriverdir <Arch>Führt den RPC-Aufruf GetPrinterDriverDirectory() aus, um den SMB-Freigabenamen und das -Unterverzeichnis zu holen, in dem Druckertreiberdateien für die angegebene Architektur gespeichert
werden. Mögliche Werte für Arch sind „Windows 4.0“ (für Windows 95/98), „Windows NT x86“, „Windows NT PowerPC“, „Windows Alpha_AXP“ und „Windows NT R4000“.getprinter <Druckername>

Holt die aktuelle Druckerinformation. Dieser Befehl entspricht der Funktion GetPrinter() des SDK auf der MS-Plattform.

getprintprocdir

Holt das Verzeichnis des Druckprozessors.

openprinter <Druckername>

Führt die RPC-Aufrufe OpenPrinterEx() und ClosePrinter() auf dem angegebenen Drucker aus.

setdriver <Druckername> <Treibername>Führt den Befehl SetPrinter() aus, um den Druckertreiber zu aktualisieren, der mit einem installierten Drucker verbunden ist. Der Druckertreiber muss auf dem Druckerserver bereits korrekt
installiert sein.Siehe auch die Befehle enumprinters und enumdrivers, um eine Liste von installierten Druckern und Treibern zu erhalten.addform

Fügt Form hinzu.

setform

Setzt Form.

getform

Holt Form.

deleteform

Löscht Form.

enumforms

Zählt Form auf.

setprinter

Setzt Druckerkommentar.

setprinterdata

Setzt REG_SZ-Druckerdaten.

rffpcnex

Rffpcnex-Test

 

NETLOGON

logonctrl2
Logon Control 2

logonctrl
Logon Control

samsync
SAM-Synchronisation

samdeltas
Abfrage von SAM-Deltas

samlogon
SAM-Logon

 

ALLGEMEINE BEFEHLE

debuglevel
Setzt die aktuelle Debugebene zum Loggen von Information.

help (?)
Gibt eine Liste aller bekannten Befehle aus bzw. eine erweiterte Hilfe zu einem bestimmten Befehl.

quit (exit)
Beendet rpcclient.

 

FEHLER

rpcclient ist als Testwerkzeug für Entwickler entworfen worden und ist in manchen Bereichen evtl. nicht allzu robust, z.B. beim Parsen der Kommandozeile. Es ist bekannt, dass
es bei Fehlern einen Core-Dump generiert, wenn ungültige Parameter an den Interpreter übergeben werden.

Dies ist ein Auszug von Luke Leightons urspünglicher Manpage zu rpcclient:

WARNUNG! Der MSRPC-via-SMB-Code wurde ausgehend von der Untersuchung von Netzwerk-Traces entwickelt. Vom ursprünglichen Hersteller (Microsoft) ist keine Dokumentation darüber
vorhanden, wie MSRPC via SMB funktioniert oder wie die individuellen MSRPC-Dienste funktionieren. Es konnte gezeigt werden (und wurde berichtet), dass Microsofts Implementation dieser Dienste
an einigen Stellen ein wenig … verrückt ist.

Die Entwicklung von Sambas Implementation ist ebenfalls ein wenig grob, und mit wachsender Anzahl verstandener Dienste kann sie sogar zu Versionen von smbd(8) und rpcclient führen, die bei
manchen Befehlen oder Diensten inkompatibel sind. Außerdem schicken Entwickler Fehlerberichte an Microsoft und die gefundenen bzw. berichteten Probleme werden in Service-Packs repariert, die
auch zu Inkompatibilitäten führen können.

 

VERSION

Diese Manpage ist korrekt für die Version 3.0 der Samba-Suite.

 

AUTOR

Die originale Samba-Software und die zugehörigen Werkzeuge wurden von Andrew Tridgell geschrieben. Samba wird nun vom Samba-Team als ein Open-Source-Projekt entwickelt, ähnlich wie der
Linux-Kernel.

Die ursprüngliche rpcclient-Manpage wurde von Matthew Geddes und Luke Kenneth Casson Leighton geschrieben und von Gerald Carter überarbeitet. Die Umwandlung ins DocBook-Format wurde von Gerald
Carter für Samba 2.2 durchgeführt. Die Umwandlung in DocBook für XML 4.2 wurde von Alexander Bokovoy für Samba 3.0 durchgeführt.