Manpages - rpcclient

28.03.2016

Name

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

 

 

Synopsis

 

rpcclient [-A AuthDatei] [-c ] [-d DebugEbene] [-h] [-l LogVerz] [-N] [-s ] [-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

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 =   password =   domain   =

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

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

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 []

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 _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)._deldriver_Lö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._enumdata_Zä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

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 <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 _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 _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

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

getprintprocdir

Holt das Verzeichnis des Druckprozessors.

openprinter

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

_setdriver _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.

comments powered by Disqus