概要  
Windowsのファイル共有に使うSMB/CIFSプロトコルを使って,WindowsサーバーやSambaサーバーと接続する。ftpのようにファイル転送(送受信)や,サーバー上のディレクトリおよびファイルを操作できる。Windowsパソコンに対してメッセージを送信することも可能である。

 構文  

バッチ・モード:
smbclient {サービス名} [パスワード] [-b 送信バッファ・サイズ | --send-buffer=送信バッファ・サイズ] [-d デバッグ・レベル | --debuglevel=デバッグ・レベル] [-D ディレクトリ名 | --directory=ディレクトリ名] [-U ユーザー名[%パスワード] | --user=ユーザー名[%パスワード]] [-W NetBIOSドメイン名 | --workgroup=NetBIOSドメイン名] [-M NetBIOS名 | --message=NetBIOS名] [-A ファイル名 | --authenticate-file=ファイル名] [-N | --no-pass] [-l ログ・ファイル名 | --logfile=ログ・ファイル名 ] [-L NetBIOS名 | --list=NetBIOS名] [-t ターミナル・コード | --terminal=ターミナル・コード] [-I IPアドレス | --ip-address=IPアドレス] [-E | --stderr] [-c コマンド文字列 | --command=コマンド文字列] [-i NetBIOSスコープ | --scope=NetBIOSスコープ] [-O ソケット・オプション | --socket-options=ソケット・オプション] [-p ポート番号 | --port=ポート番号] [-R ネーミング・サービス | --name-resolve=ネーミング・サービス] [-s SMB設定ファイル名 | --configfile=SMB設定ファイル名] [-n NetBIOS名 | --netbiosname NetBIOS名] [-k | --kerberos] [-g | --grepable] [-S on|off|required | --signing=on|off|required] [-P | --machine-pass] [-TIXFqgbNa | --tar=IXFqgbNa]

または

smbclient {-V | --version}

または

smbclient {-h | --help}


 利用環境  
Red Hat Enterprise Linux 3 ○(samba-client 3.0.9-1.3E.12で確認)

 オプション 
サービス名操作対象とするサーバーと共有名を「\\サーバー名\共有名」の形で指定する。コマンド黒ライン(ターミナル)から実行する際には,バックスラッシュ(\)を二重に入力する必要があるので要注意。
パスワードサーバーや共有フォルダへ接続するためのパスワードを指定する。パスワードを指定せず,-Nオプションも設定しない場合は,プロンプトが表示されパスワード入力が要求される。
-b 送信バッファ・サイズ | --send-buffer=送信バッファ・サイズサーバーとのファイル送受信に使うバッファのサイズをバイト単位で指定する。このオプションを特に指定しなかった場合の既定値は65520バイトで,設定できる最小値は1200バイトである。
-d デバッグ・レベル | --debuglevel=デバッグ・レベルログ・ファイルに出力する情報を,「0」から「10」までの整数値で指定する。ログ・ファイルには,サーバーの動作に関する情報を出力する。通常指定するのは,「0」(致命的なエラーと重大な警告のみを記録する)か,「1」(致命的なエラーと重大な警告に加え稼働状況を記録する)のいずれかである。「3」より上のレベルは開発者向けのものだ。なお,このパラメータで指示した設定はsmb.confファイルの設定より優先される。
-D ディレクトリ名 | --directory=ディレクトリ名ファイル転送などの動作を開始する前に移動するディレクトリを指定する。-Tオプションを使ったTarによるバックアップなどの場合に使うと効果がある。
-U ユーザー名[%パスワード] | --user=ユーザー名[%パスワード]ユーザー名およびパスワードを指定する。パスワードを指定しない場合は,パスワードを入力するための「Password:」プロンプトが表示され入力が求められる。また,このオプションを指定しない場合は環境変数「USER」と「LOGNAME」を順番に調べて,その設定をユーザー名として指定する。環境変数もない場合はユーザー名としてGUESTを使う。
-W NetBIOSドメイン名 | --workgroup=NetBIOSドメイン名指定したユーザーの属するドメインを設定する。サーバーのNetBIOS名を指定すると,サーバーのローカル・ユーザーとしてログオンを試みる。このオプションで指定した内容はsmb.confファイル内で設定したデフォルト・ドメイン名よりも優先される。
-M NetBIOS名 | --message=NetBIOS名メッセージを送るコンピュータを指定する。指定した相手のコンピュータとの接続が確立してからメッセージを入力し,Control-Dを入力すると送信され相手にポップアップ・メッセージとして表示される。なお,送信できるメッセージは最大1600バイトで,それを超えるメッセージは自動的に切り捨てられる。
-A ファイル名 | --authenticate-file=ファイル名接続に使用するユーザー名とパスワードおよびユーザーの所属するNetBIOSドメイン名を,指定したファイルから読み込む。
-N | --no-passパスワードの入力要求を抑制する。
-l ファイル名 | --logfile=ファイル名ログ・ファイルおよびデバッグ・ファイルの名前を指定する。指定したファイル名には,拡張子として「.client」が付加される。
-L NetBIOS名 | --list=NetBIOS名指定したサーバー上で利用可能な共有名などのサービス一覧を列挙する。-Iオプションと併用することもできる。
-t ターミナル・コード | --terminal=ターミナル・コード接続先のリモート・サーバーが表示するファイル名の変換についてターミナル・コードを指定する。指定できるターミナル・こーどは,「CWsjis」,「CWeuc」,「CWjis7」,「CWjis8」,「CWjunet」,「CWhex」,「CWcap」など。なお,このオプションの動作については多少の問題がある可能性があるので指定時は要注意。
-I IPアドレス | --ip-address=IPアドレス接続先サーバ-をIPアドレスで指定する。通常は-Rオプションで指定したネーミング・サービスを使って,NetBIOS名を名前解決して得られたIPアドレスをあて先として接続する。
-E | --stderrコマンドのメッセージを既定の標準出力(tty)でなく,標準エラー出力(stderr)に対して出力する。
-c コマンド文字列 | --command=コマンド文字列標準入力で受け取るコマンドの代わりに,複数のコマンドをセミコロンで区切って指定できる。このオプションを設定することで,-N オプションも自動的に設定される。
-i NetBIOSスコープ | --scope=NetBIOSスコープNetBIOSスコープを設定する。通常の利用ではこのオプションを指定することはない。
-O ソケット・オプション | --socket-options=ソケット・オプションソケット・オプションを指定する。指定する値はsmb.confファイルのマニュアル中にあるsocket optionパラメータで確認できる。
-p ポート番号 | --port=ポート番号サーバーに接続するときのあて先ポート番号を,既定のTCP139番ポート以外に変更する場合に指定する。
-R ネーミング・サービス | --name-resolve=ネーミング・サービス接続先のサーバー名からあて先IPアドレスを名前解決するためのネーミング・サービスを指定する。複数を指定する場合はスペースで区切る。ネーミング・サービスとしては,lmhosts,hosts,wins,bcastから指定する。既定では,lmhosts,hosts,wins,bcastの順に検索する。特にこのオプションを指定しなかった場合は,smb.confファイルのname resolve orderで指定した内容が有効になる。
-s SMB設定ファイル名 | --configfile=SMB設定ファイル名サーバーの提供するサービスなどの関連情報を含んだ設定ファイルを指定する。
-n NetBIOS名 | --netbiosname NetBIOS名自分自身のNetBIOS名を指定する。このオプションで指定した内容はsmb.confファイルでの設定よりも優先する。
-k | --kerberosKerberosによる認証を試みる。Active Directory環境でのみ有効である。
-g | --grepable区切り可能な形で出力する。
-TIXFqgbNa | --tar=IXFqgbNa]tarによるバックアップを実行するオプション。ファイルのパスとして,「\」を区切りとするWindowsのパス名か,「/」を区切りとするUNIXパス名を指定できる。フラグとして指定できる内容は以下の通り。
c クライアント上にバックアップデータを格納する。tarファイル名,テープ・デバイス,もしくは標準出力を意味する「-」のいずれかを指定する。xフラグとは排他的な関係にある。
x ローカルのtarファイルを共有上に展開する。-Dオプションが指定されない場合,共有の最上位フォルダから展開される。tarファイル名,テープ・デバイス,もしくは標準入力を意味する「-」のいずれかを指定する。cフラグとは排他的な関係にある。
I 処理の対象とするファイルとディレクトリを指定する。このフラグはファイル名が指定された場合に自動的に有効となる。
X 処理の対象から指定されたファイルとディレクトリを除外する。
F テープの最後でスクリプトを実行する。
q 処理の状態を示すメッセージ出力を抑止(quiet)する。
g 増分バックアップのために用いるフラグ。アーカイブ・ビットが有効なファイルのみをバックアップする。cフラグと一緒に利用する。
b ブロック・サイズを指定する。
N このフラグの後に指定したファイルより新しい日付のファイルだけがバックアップされる。cフラグとともに利用する。
a ファイルがバックアップされた時点でアーカイブ・ビットをクリアする。gおよびcフラグとともに用いる。
n dry_runモードで実行され,実際の処理は行われない。
-V | --versionバージョン情報を表示する。
-h | --help使用方法を表示する。

 対話型モードでの利用 

smbclientは対話型で操作を実行することもできる。smbclientコマンドでの接続に成功すると「smb:\>」のようなプロンプトが表示されるので,あとはftpと同じようにユーザーから入力されたコマンドを対話形式で実行する。なお,コマンドとそのパラメータはスペースで区切って入力する。

?[コマンド名]指定したコマンドに関する説明を表示する。コマンド名を指定しない場合は利用可能なコマンド一覧が表示される。
![シェル・コマンド]ローカルでシェルを起動して指定したコマンドを実行する。コマンドを特に指定しない場合,ローカルのシェルが起動する。
archive アーカイブ・レベルアーカイブ・レベルを「0」~「3」の整数値で設定する。既定の設定は「0」でアーカイブ・フラグを無視する。「1」に設定した場合,mgetで取得する際にアーカイブ・フラグの有効なファイルのみを対象とする。2 の場合は,アーカイブ・フラグの有効なファイルを取得してフラグをリセットする。3 の場合は全てのファイルを取得して,フラグをリセットする。アーカイブ・レベルを指定しない場合,現在のレベルが表示される。
blocksize ブロック・サイズtarコマンドで書き出されるファイルのブロック・サイズを指定する。
cancel ジョブ番号指定したジョブ番号の印刷をキャンセルする。
case_sensitive大文字と小文字の区別をするかしないかをトグルで変更する。
cd [ディレクトリ名]リモート・コンピュータでの作業ディレクトリを指定した名前のディレクトリに変更する。ディレクトリ名を指定しないと,現在のディレクトリ名が表示される。
chmod ファイル名 パーミッション指定したファイルのパーミッションを,UNIX標準の8進数形式で指定して変更する。サーバーがサポートしていなければ失敗する。
chown ファイル名 ユーザーIDまたはグループIDファイルの所有者を指定されたユーザーIDもしくはグループIDに変更する。サーバーがサポートしていなければ失敗する。
del マスク現在のサーバー側作業ディレクトリ上で,マスクに一致するすべてのファイルを削除する。
dir マスク現在のサーバー側作業ディレクトリ上で,マスクに一致するファイルとディレクトリの一覧を表示する。
duディレクトリの使用サイズと利用可能な容量を表示する。
exitサーバーとの接続を終了して,smbclientを終了する。
get ファイル名 [ローカル・ファイル名]指定した名前のファイルをサーバーからローカルにコピーする。ローカル・ファイル名を指定すると,クライアントでのファイル名はその名前となる。
hardlink リンク元 リンク先リンク元からリンク先へのハードリンクを生成する。このコマンドは通常は利用することはない。
help「?」コマンドと同様に指定したコマンドに関する説明を表示する。
historyこれまでに実行したコマンドの履歴を表示する。
lcd [ディレクトリ名]ローカルマシンの作業ディレクトリを指定した名前のディレクトリに変更する。ディレクトリ名を指定しないと,現在のディレクトリ名が表示される。
link リンク元 リンク先リンク元からリンク先へのハードリンクを作成するようサーバーに要求する。リンク元がすでに存在していてはいけない。また,サーバーがサポートしていなければ失敗する。
lowercasegetやmgetでコピーされるローカルのファイル名を小文字に変換するかどうか,トグルで変更する。
ls「dir」コマンドと同様に,現在のサーバー側作業ディレクトリ上にあるファイルとディレクトリの一覧を表示する。
mask マスクmgetおよびmputコマンドでの再帰的な操作において用いられるマスクを設定する。mgetやmputで指定するマスクと組み合わされる。既定では「*」となっている。maskコマンドで設定した値は,再度maskで変更するまで変わらないので注意。
md ディレクトリ名mkdirコマンドと同様に指定した名前のディレクトリをサーバー上に作成する。
mget マスクマスクに一致するリモート・ファイルをローカルにコピーする。再帰モードがONになっているかどうかで動作が異なるので注意が必要。
mkdir ディレクトリ名指定した名前のディレクトリをサーバー上に作成する。
more リモート・ファイル名リモート・ファイルの内容をmoreコマンドで表示する。
mput マスクマスクに一致するローカルのファイルを,サーバーの作業ディレクトリ上にコピーする。再帰モードがONになっているかどうかで動作が異なるので注意が必要。
newer ファイル名指定したローカル・ファイルより新しい日付のファイルだけをmgetでのコピー対象とする。
open ファイル名指定したリモート・ファイルをオープンする。通常は利用しない。
print ファイル名指定したローカル・ファイルを,サーバーから印刷する。
printmode graphics | text印刷モードを,バイナリ・データ(graphics)またはテキスト(text)用に設定する。設定後に実行されるprintコマンドで,指定した印刷モードが利用される。
promptmgetとmputにおいて,ファイル名の確認するプロンプト表示を行うかどうか,トグルで切り替える。OFFの場合はmgetやmputのマスクで指定されたすべてのファイルが転送の対象となる。
put ローカル・ファイル名 [リモート・ファイル名]指定した名前のファイルをローカルからサーバーにコピーする。リモート・ファイル名を指定していると,サーバー上でのファイル名がその名前となる。
pwdサーバー上における現在の作業ディレクトリを表示する。
qexitコマンドと同様に,サーバーとの接続を終了してsmbclientを終了する。
queue印刷のキューを表示して,印刷ジョブのIDや名前とサイズおよび状態を確認できる。
quitexitコマンドと同様に,サーバーとの接続を終了してsmbclientを終了する。
rdrmdirコマンドと同様に,サーバー上にある指定された名前のディレクトリを削除する。
recursemgetとmputにおいて,ディレクトリを再帰的にたどるかどうかの動作をトグルで切り替える。ONの場合は対象となるディレクトリ内に存在するすべてのディレクトリを再帰的にたどり,マスクに一致するファイルを転送の対象とする。
rename 変更元ファイル名 変更後ファイル名サーバー上のファイル名を変更する。
rm マスクマスクに一致するすべてのファイルを,サーバー上の作業ディレクトリから削除する。
rmdir ディレクトリ名サーバー上にある指定された名前のディレクトリを削除する。
setmode ファイル名 <+/-|rsha>Windowsでのattrib コマンドと同じく,ファイルのパーミッションを設定する。
symlink リンク元 リンク先リンク元からリンク先へのシンボリック・リンクを作成するようサーバーに要求する。実行時点でリンク元が存在してはいけない。また,サーバーがサポートしていなければ失敗する。
tar [IXFqbgNa]-Tオプションと同様にtarによる処理を実行する。xで展開するときのオプションに標準入力「-」を使う際にはコマンドライン・オプションから利用する。
tarmode [full|inc|reset|noreset]tarのアーカイブ・フラグに関する動作を設定する。既定値は「full」でアーカイブの状態に関係なくすべてをバックアップ対象とする。「inc」(incremental:増分)を指定すると,アーカイブ・フラグが有効なファイルのみをtarでのバックアップ対象とする。「reset」を指定するとtarでバックアップしたファイルのアーカイブ・フラグをリセットし,「noreset」ではその反対の挙動となる。
vuid現在のVUIDを表示する。
logon別のユーザー名とパスワードを用いて再度ログオンする。

 使用例1:Windowsサーバーへファイルをコピーする(クリックで詳細表示)  
smbclient サービス名 -Aファイル名 -c “put ファイル名

 使用例2:Windowsパソコンにポップアップ・メッセージを送信する(クリックで詳細表示)  
smbclient -M NetBIOS名