Name

rpcclient — クライアント側の MS-RPC 関数を発行するツール

Synopsis

rpcclient [-A authfile] [-c <command string>] [-d debuglevel] [-h] [-l logdir] [-N] [-s <smb config file>] [-U username[%password]] [-W workgroup] [-N] [-I destinationIP] {server}

説明

このツールは samba(7) システムの一部である。

rpcclient は Samba の MS-RPC 機能をテストするために開発されたユーティリティであり、 開発と安定を何度か繰り返している。 多数のシステム管理者がこのツールを用いて UNIX ワークステーションから Windows NT クライアントを管理するスクリプトを作成している。

オプション

server

接続先のサーバーを NetBIOS 名で指定する。 サーバーは SMB/CIFS サーバーである必要がある。 この名前の解決には smb.conf(5 ) ファイルの name resolve order パラメーターが用いられる。

-c|--command='command string'

実行するコマンド (以下で記述) をセミコロンで区切って指定する。

-I IP-address

IP address は接続先の サーバーのアドレスを指定する。記述方法は、標準的な "a.b.c.d" のフォーマットで指定する。

通常、クライアントは上記の name resolve order パラメーターで指定された名前解決の機能を使用して NetBIOS 名を検索し、SMB/CIFS サーバーを特定する。 このパラメーターを使用することで、クライアントに対し強制的に 指定された IP Address にサーバーがあると認識させ、接続しようとしているリソースの NetBIOS 名を無視させることができる。

このパラメーターにデフォルトの値はない。 もしこの値が指定されていないのなら、上で述べたようにクライアントが 自動的に判別する。

-d|--debuglevel=level

level は0から10までの整数値である。 既定値の値は、パラメータが設定されていなければ0である。

この値を大きくするほど、サーバの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。

1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている

このパラメータの指定は、smb.conf ファイル中の、 log level パラメータの指定よりも優先する。

-V

プログラムのバージョン番号を表示する。

-s <configuration file>

サーバーが必要とする詳細な設定を含む設定ファイルを 指定する。このファイルには、サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。詳細は smb.conf を参照のこと。設定ファイルの名前の既定値は、コンパイル時 に決定される。

-l|--log-basename=logdirectory

ログ/デバッグファイルのファイル名。拡張子として ".progname" が追加される(例えば log.smbclient, log.smbd,など)。ログファイルはクライアントによって削除されることはない。

-N

このオプションを指定すると、クライアントはユーザーへの パスワード入力要求をしなくなる。パスワードが必要ないサービスにアクセスする ときに有用である。

コマンドラインにパスワードが指定されておらず、このオプションも指定 されていないと、クライアントはパスワードを要求する。

もしも、パスワードがコマンドライン上で指定され、このオプションも 定義されていた場合、コマンドライン上のパスワードは無視され、パスワードは 使われない。

-k

Kerberos による認証を試みる。アクティブディレクトリ環境でのみ有効である。

-A|--authentication-file=filename

このオプションは、指定したファイルから、接続に使用する ユーザー名とパスワードを読み込むために使用する。ファイルの形式は次の通り:

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

ファイルのパーミッションを確認し、ほかのユーザーから参照されない ように注意すること。

-U|--user=username[%password]

SMB のユーザー名、またはユーザー名とパスワードを指定する。

もしも %password を指定しないと、ユーザーにパスワードの入力を求める。 クライアントはまず初めにUSERLOGNAMEの順に 環境変数の存在を調べ、もしもどちらかが存在するならば、その文字列を大文字にする。 環境変数が存在しない場合、ユーザ名としてGUESTが用いられる。

このほかに、平文のユーザー名とパスワードを記述した認証ファイルを使用する オプションがある。このオプションは主にスクリプト向けに用意されており、認証情報を コマンドラインや環境変数に含めたくない場合に有用である。このオプションを利用する ときは、ファイルのパーミッションを確認し、ほかのユーザーから参照されないように 注意すること。詳細は-Aオプションを参照のこと。

パスワードをスクリプトに含める場合は注意すること。多くのシステムでは、実行 中のプロセスのコマンドラインはpsコマンドで参照することが できてしまう。安全のため、必ず、rpcclientを使用して、 パスワード入力を要求し、直接入力するようにしておくこと。

-n <primary NetBIOS name>

Samba 自身の NetBIOS 名を指定する。このオプションは、 smb.conf中の、netbios name パラメータの設定に相当する。コマンドラインの指定は、 smb.conf 内の設定よりも優先される。

-i <scope>

nmblookupが、通信用のNetBIOS名 を生成する時に使うNetBIOS スコープを指定する。NetBIOS スコープの詳細な 利用方法については、 RFC 1001 と RFC 1002 を参照のこと。NetBIOSスコープ はごく稀にしか利用されない。NetBIOS システム 全体を運営している管理者が、そのシステム内の相手と通信する場合にのみ、 このパラメータを設定する。

-W|--workgroup=domain

ユーザー名の SMB ドメインを指定する。このオプションは、 smb.conf 内のデフォルトのドメイン設定よりも優先される。ドメイン名として サーバーの NetBIOS 名を指定すると、クライアントは (ドメインの SAM では なく) サーバーのローカル SAM を使用してログオンを試みる。

-O socket options

クライアントのソケットに設定する TCP のソケットオプ ション。有効なオプションの一覧については、smb.conf マニュアルページ 中の socket options パラメータを参照のこと。

-h|--help

コマンドラインオプションの要約を表示する。

コマンド

LSARPC

lsaquery

info policy を問い合わせる。

lookupsids

リストされた SID からユーザー名を解決する。

lookupnames

リストされたユーザー名から SID を解決する。

enumtrusts

信頼するドメインの一覧を表示する。

enumprivs

ユーザー権利の一覧を表示する。

getdispname

ユーザー権利の名前を取得する。

lsaenumsid

LSA の SID の一覧を表示する。

lsaenumprivsaccount

指定した SID の持つユーザー権利を一覧表示する。

lsaenumacctrights

指定されたユーザー権利を持つ SID を一覧表示する。

lsaenumacctwithright

指定されたユーザー権利を持つアカウントを一覧表示する。

lsaaddacctrights

アカウントにユーザー権利を追加する。

lsaremoveacctrights

アカウントからユーザー権利を取り除く。

lsalookupprivvalue

ユーザー権利の名前から値を取得する。

lsaquerysecobj

LSA セキュリティオブジェクトを問い合わせる。

LSARPC-DS

dsroledominfo

プライマリドメインの情報を取得する。

DFS

dfsexist

DFS をサポートしているか問い合わせる。

dfsadd

DFS の共有を追加する。

dfsremove

DFS の共有を削除する。

dfsgetinfo

DFS の共有の情報を問い合わせる。

dfsenum

DFS の共有の一覧を表示する。

REG

shutdown

遠隔操作でシャットダウンさせる。

abortshutdown

シャットダウンを中止させる。

SRVSVC

srvinfo

サーバー情報を問い合わせる。

netshareenum

共有を一覧表示する。

netfileenum

開いているファイルを一覧表示する。

netremotetod

リモートサーバーの時間を取得する。

SAMR

queryuser

ユーザー情報を問い合わせる。

querygroup

グループ情報を問い合わせる。

queryusergroups

ユーザーが所属するグループを問い合わせる。

querygroupmem

グループに所属するメンバーを問い合わせる。

queryaliasmem

エイリアスに所属するメンバーを問い合わせる。

querydispinfo

ユーザー情報の一覧を表示する。

querydominfo

ドメイン情報を問い合わせる。

enumdomusers

ドメインユーザーを一覧表示する。

enumdomgroups

ドメイングループを一覧表示する。

enumalsgroups

エイリアスグループ(ローカルグループ)を一覧表示する。

createdomuser

ドメインユーザーを作成する。

samlookupnames

名前を検索する。

samlookuprids

rid を検索する。

deletedomuser

ドメインユーザーを削除する。

samquerysecobj

SAMR セキュリティオブジェクトを問い合わせる。

getdompwinfo

ドメインパスワード情報を取得する

lookupdomain

ドメイン情報を検索する

SPOOLSS

adddriver <arch> <config> [<version>]

プリンタードライバー情報をサーバーに登録するために AddPrinterDriver() RPC の呼び出しを行なう。ドライバーファイルは getdriverdir コマンドが返却するディレクトリ中に予め存在している必要が ある。arch に設定できる値は getdriverdir コマンドで取得できる値と同じである。 config パラメーターでは以下の形式のファイルを 指定する。

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

空のフィールドには、"NULL" という文字列を指定しておくこと。

Samba は Print Monitor 機能をサポートする必要がない。 これは、この機能が双方向通信を利用するドライバーを使うローカルプリンターにしか関係しないためである。 このフィールドは必ず「NULL」にしておくこと。 遠隔の NT プリントサーバーにコマンドを発行する場合、 ドライバーの Print Monitor 機能をドライバーの追加前にインストールしていないと、 RPC に失敗する。

version パラメーターにより、プリンタードライバーのバージョン番号が指定される。 省略した場合、アーキテクチャに応じたバージョンが用いられる。 このオプションは Windows 2000 (バージョン 3)のプリンタードライバーのアップロードに用いることができる。

addprinter <printername> <sharename> <drivername> <port>

遠隔のサーバー上にプリンターを追加する。このプリンターは自動的に共有される。 このコマンドを実行する前に、プリンタードライバーをサーバー上にインストール して (adddriver を参照のこと)、port を有効なポート名にしておく (enumports を参照) 必要があることに注意。

deldriver

指定されたプリンタードライバーについて、すべてのアーキテクチャ用のものを削除する。これは、 ドライバーのファイル自体をサーバーから削除するわけではなく、 サーバーのドライバーのリストからエントリだけを削除するものである。

deldriverex <driver> [architecture] [version]

指定されたプリンタードライバーについて、ドライバーファイルも含めて削除する。 削除対象のバージョンやアーキテクチャを指定することも可能である。 アーキテクチャが指定されなかった場合、すべてのドライバーファイルが削除される。

enumdata

サーバー上に格納されているプリンターの設定情報を一覧表示する。Windows NT クライアントの場合、 これらの情報はレジストリに格納されているが、Samba サーバーの場合、 プリンター用の TDB ファイル中に格納されている。このコマンドは、 Microsoft Platform SDK 中にある GetPrinterData() 関数に相当する。 (このコマンドは現在実装されていない)

enumdataex

キーに基づいたプリンターの情報を表示する。

enumjobs <printer>

指定されたプリンターのジョブおよびその状況を表示する。 このコマンドは、Microsoft Platform SDK 中の EnumJobs() 関数に相当する。

enumkey

プリンターキーを 一覧表示する。

enumports [level]

指定された info level でEnumPorts() 関数を呼び出す。現在、info level 1 と 2 のみがサポートされている。

enumdrivers [level]

EnumPrinterDrivers() を実行する。これは全てのアーキテクチャ用の インストールされたドライバーの一覧を表示する。フラグとオプションの 詳細については、Microsoft Platform SDK のドキュメントを参照のこと。 現在、info level 1, 2, 3 のみがサポートされている。

enumprinters [level]

EnumPrinters() を実行する。これは共有されている インストール済プリンターの一覧を表示する。フラグとオプションの詳細に ついては、Microsoft Platform SDK のドキュメントを参照のこと。 現在、info level 1, 2, 5 のみがサポートされている。

getdata <printername> <valuename;>

指定されたプリンターの設定情報を取得する。 詳細な情報に付いては、enumdata コマンドを参照のこと。 このコマンドは Microsoft Platform SDK 中の GetPrinterData() に相当するものである。

getdataex

キー名に基づいた プリンタードライバーのデータを取得する。

getdriver <printername>

指定されたプリンターのプリンタードライバーの情報 (ドライバーファイル、 設定ファイル、関連するファイルなど) を取得する。このコマンドは Microsoft Platform SDK 中の GetPrinterDriver() に相当するものである。 現在、info level 1, 2, 3 のみがサポートされている。

getdriverdir <arch>

GetPrinterDriverDirectory() RPC を発行して、SMB 共有名と指定された アーキテクチャ用のプリンタードライバーの格納されているサブディレクトリを 取得する。arch に指定できる値は、 "Windows 4.0" (for Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows Alpha_AXP", "Windows NT R4000" である。

getprinter <printername>

現在のプリンター情報を取得する。このコマンドは Microsoft Platform SDK の GetPrinter() に相当する。

getprintprocdir

print processor ディレクトリを取得する。

openprinter <printername>

指定したプリンターに対して、OpenPrinterEx() と ClosePrinter() RPC を実行する。

setdriver <printername> <drivername>

SetPrinter() コマンドを実行して、既にインストール されているプリンター用のプリンタードライバーを更新する。 更新されるプリンタードライバーは、プリントサーバー上に適切にインストール されている必要がある。

インストールされているプリンターやドライバーの一覧を取得する方法に ついては enumprintersenumdrivers コマンドも参照のこと。

addform

フォームを追加する。

setform

フォームを設定する。

getform

フォームを取得する。

deleteform

フォームを削除する。

enumforms

フォームを 一覧表示する。

setprinter

プリンターのコメントを 設定する。

setprinterdata

REG_SZ プリンターデータを設定する。

setprintername <printername> <newprintername>

プリンター名を設定する。

rffpcnex

Rffpcnex テストを実行する。

NETLOGON

logonctrl2

Logon Control 2 に変更する。

logonctrl

Logon Control に変更する。

samsync

Sam Synchronisation をはかり、結果を表示する。

samdeltas

Sam Delta Synchronisation をはかり、結果を表示する。

samlogon

ドメインユーザーでログオンする。

共通コマンド

debuglevel

現在の debug level を設定する。これはログ情報の書き込みに影響する。

help (?)

コマンド一覧の表示と、 幾つかのコマンドに付いての詳細な説明を表示する。

quit (exit)

rpcclient を終了させる。

バグ

rpcclient は開発者のテストツールとしての利用を 念頭に置いているため、あまり動作が安定していない部分 (コマンドラインの解析など) もある。無効なパラメーターを解析しようとすると、 失敗してコアダンプするのは既知の不具合である。

Luke Leighton のオリジナルの rpcclient マニュアルページより:

警告! SMB 上の MSRPC コードは ネットワークトレースを行なうことで開発されている。オリジナルの開発者 (Microsoft) からは、SMB 上で MSRPC がどのように動作するか、 個々の MSRPC サービスがどのように動作するかについての情報は提供されていない。 これらのサービスに関する Microsoft の実装も、場所によってはかなり風変わりで あることが明らかになっている。

同様に Samba への実装も場あたり的な面がある。 多くのサービスの実装が解明されるにつれて、smbd (8)rpcclient(1) は、幾つかのコマンドやサービスにおいてバージョン間の互換性が なくなることもありうる。なお、開発者達は発見した問題を Microsoft に対してレポートしており、報告された問題はサービスパックで修正されているが、 その結果互換性が損なわれることがあるかもしれない。

バージョン

このマニュアルページは Samba バージョン 3 用である。

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作成された。現在 Samba は Samba Team によって、 Linux カーネルの開発と同様のオープンソースプロジェクトとして開発が 行なわれている。

オリジナルの rpcclient マニュアルページは Matthew Geddes と Luke Keneth Casson Leighton によって作成され、 Gerald Carter によって書き直された。 Samba 2.2 における DocBook 形式への変換は、Gerald Carter によって行なわれた。Samba 3.0 における DocBook XML 4.2 形式への変換は Alexander Bokovoy によって行われた。

日本語訳

このマニュアルページは Samba 3.0.23 - 3.5.20 対応のものである。

このドキュメントの Samba 3.0.0 対応の翻訳は

  • 高橋 基信 (monyo@samba.gr.jp)

  • はせがわ ようすけ

  • 山田 史朗 (shiro@miraclelinux.com)

によって行なわれた。

Samba 3.0.23 - 3.5.20 対応の翻訳は、たかはしもとのぶ (monyo@samba.gr.jp) によって行なわれた。