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ファイル中の、 パラメータの 指定よりも優先する。

-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中の、 パラメータの設定に相当する。コマンドラインの指定は、 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

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

コマンド

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 テストを実行する。