Using Samba

Using Samba

Robert Eckstein, David Collier-Brown, Peter Kelly 共著
第一版 1999 年 11 月
1-56592-449-5, 注文番号: 4495
416 ページ, 34.95 ドル

ハードコピー版(英語)を購入する

目次


Previous: 6.6 ログオンスクリプト Chapter 7 Next: 7.2 Windows クライアント上のプリンタへの印刷
 

7. 印刷と名前解決

この章では二つのSambaに関するトピックを扱う: プリンタをSambaサーバで利用できるように設定する方法と SambaがWindows Internet Name Service(WINS)を利用するようにしたり、Samba自身をWINS サーバにしたりする方法である。Sambaにより、クライアントマシンがSamba サーバに接続されたプリンタにドキュメントを送信できるようになる。 また Samba は UNIX 上のドキュメントをWindows マシン上のプリンタに出力する際にも活用することができる。この章では、まずWindows、UNIXの両方で、プリンタをどのように設定するかに付いて説明する。

章の残り半分では、Microsoft による NetBIOS Name Server (NBNS)の実装である、Windows Internet Name Service を紹介する。Chapter 1, Learning the Sambaで述べたように、NBNS はブロードキャストに依存せずに、NetBIOS ネットワークにおける名前解決を可能にする。その代わり、個々のマシンは、どこに WINS サーバが存在しているかを知っている必要があり、 WINS サーバに対してネットワーク上の別のマシンのIP アドレスを問い合わせることになる。

7.1 Samba への印刷ジョブの送信

Samba サーバに接続されたプリンタは「ネットワークコンピュータ」中の共有一覧の中に表示される。プリンタがクライアントマシン上で設定されており、クライアントに適切なプリンタドライバがインストールされていれば、クライアントは労せずして印刷ジョブをSamba サーバに接続されたプリンタに送信することが可能である。 図 7.1 に Samba のプリンタが Windows クライアントの「ネットワークコンピュータ」上に表示されている様子を示す。

Samba 上のプリンタを管理するには、ネットワーク上で、どのように印刷が行なわれるかに付いての基本的なところを押えておくべきである。印刷ジョブをSambaサーバ上のプリンタに送信する際は、以下の4つのステップを経て行なわれる:

  1. プリンタ共有に接続し、認証を行なう

  2. 印刷対象のファイルをネットワーク経由でコピーする

  3. 接続をクローズする

  4. 印刷を行ない、ファイルのコピーを削除する

    図 7.1: 「ネットワークコンピュータ」上の Samba のプリンタ

    図 7.1

印刷ジョブがSamba サーバに到着すると、印刷データは一時的にプリンタ共有の path オプションで指定されたディレクトリに書き込まれる。次に Samba は UNIX の印刷コマンドを実行して、データをプリンタに送信する。ジョブは認証されたユーザが行なったものとして印刷される。共有の設定によっては、ゲストユーザが印刷を行なうこともあり得る。

7.1.1 印刷コマンド

ドキュメントを印刷するには Samba に対してファイルを印刷したり消去したりするのにどのようなコマンドを実行するかを指示する必要がある。Linux の場合、該当するコマンドは以下のようなものになる:

lpr -r -Pprinter file

これにより lpr はドキュメントをスプール領域、通常 /var/spool にコピーし、システムの設定ファイル(/etc/printcap)中のプリンタ名を確認し、記述されている設定を読み込み、どのようにデータを処理して、どの物理デバイスに送信するかを確認する。 -r オプションを設定したため、コマンドラインで指定したファイルは、印刷後に削除されることになる。 もちろん削除されるファイルはSamba サーバ上にコピーされていたものであり、クライアント上のオリジナルのファイルは無関係である。

Linux は バークレー(Berkeley) (BSD) 形式の印刷方式を利用する。しかし、印刷の方式は System V UNIX 寄りである。このため、印刷と削除が同じコマンドで指定されている:

lp -dprinter -s file; rm  file

System V では /etc/printcap ファイルは /usr/spool/lp 中に隠されている別の形式の設定ファイルに置き換わっており、ファイルを印刷後に削除するというオプションはない。削除は自分で行なう必要があるため、 rm コマンドを最後に実行するようにしている。

7.1.2 印刷時の変数

Samba は4つの変数を印刷関連の設定オプションで用いるために用意している。それらは 表 7.1 中に一覧されている。


表 7.1: 印刷時の変数

変数名

定義

%s

Samba サーバ上にある印刷されるファイルのフルパス名

%f

Samba サーバ上にある印刷されるファイルの(パス名を取り除いた)ファイル名自身

%p

利用する UNIX のプリンタ

%j

印刷ジョブの番号( lprm, lppause, lpresumeコマンドで利用する)

7.1.3 最低限の印刷の設定

簡単で実用的な印刷共有を設定してみよう。Linux システムを利用しており、 プリンタ設定ファイル中で lp という名前のプリンタが設定されているとした場合、以下を smb.conf ファイルに追加することで、ネットワークからプリンタへのアクセスが可能になる:

[printer1]
	printable = yes
	print command = /usr/bin/lpr -r  %s
	printer = lp
	printing = BSD
	read only = yes
	guest ok = yes

恐らく後で変更することになるが、現在の設定は、誰でもプリンタにデータを印刷することが可能な設定である。 ここで重要なのは print commandオプション中の %s 変数が Samba のコマンド実行時には印刷されるファイル名に変換されるということである。様々なUNIXマシンの仕様に対応するための print commandの変更は、通常 print commandオプションの右側をシステムが必要とするものに置き換えて、 printingオプションを変更するだけである。

System V UNIXのコマンドも見てみよう。幾つかの相違点があるため、System V UNIXのコマンドは以下のようになる:

print command = lp -d%p -s %s; rm %s

前述したように、 %p 変数はプリンタの名前に変換され、 %s 変数は印刷されるファイル名に変換される。更に System V アーキテクチャを利用するために、 printing オプションが変更になる:

printing = SYSV

共有レベルのセキュリティを用いている場合、Samba の guest accountには特に注意すること。典型的な設定では、 nobody はOSが印刷することを許可していない。その場合、 guest account オプションをプリンタ共有(もしくは共有全体)に対して、印刷するアカウントを指定するために設定する必要がある。Samba の作者が推奨するのは ftp アカウントである。このアカウントは通常信頼できないアカウントとして利用する為に、予め設定が行なわれていることが多い。設定は以下のコマンドで行なう:

guest account = ftp

印刷時によくある別の問題として、クライアントはSambaサーバに送信した印刷ジョブの状況を要求するかも知れないことがあげられる。Samba は現在印刷中のプリンタ共有に送信されるドキュメントも拒否しない。従って、Sambaには現在クライアントから印刷中のジョブだけでなく、現在プリンタ上で印刷を待っているジョブの状況も取得できる必要がある。Sambaには、クライアントから印刷ジョブを一時停止、再開をさせる能力や印刷キューのジョブを削除させる能力も必要である。Sambaにはこれらの各機能を提供するオプションがある。予想されるように、これらの機能は実際のUNIXコマンドの機能を利用している。オプションは以下の通りである:

  • lpq command

  • lprm command

  • lppause command

  • lpresume command

これらのオプションに付いての詳細は、以下で記述する。ただし、ほとんどの場合、 printing 設定オプションの値によってこれらの値を設定できるため、デフォルト値を変更する必要はないであろう。

以下は、プリンタ共有に関して知っておくべき重要な事項である:

  • Samba がプリンタ共有を識別できるようにするため、 printable = yes を( [printers]も含め)すべてのプリンタ共有に設定する必要がある。これを行なわないと、その共有に対しては印刷することが出来ず、ディスク共有として扱われる。

  • path 設定オプションをプリンタセクションに設定することで、プリンタに送信されたファイルはデフォルトの /tmpの代わりに、指定されたディレクトリにコピーされる。 UNIXによっては、 /tmp に割り当てられているディスク領域が比較的小さいため、多くの管理者が /var/spool や他のディレクトリを代わりに設定している。

  • プリンタ共有に対する read only オプションは無視される。

  • guest ok = yes オプションをプリンタ共有に設定し、Samba を共有レベルのセキュリティに設定すると、誰でも guest account のユーザとしてプリンタにデータを送信できるようになる。

Sambaマシンをプリンタサーバとすることで、LANの構成に非常に柔軟性がもたらされる。利用可能なプリンタを簡単に分類することで、部署のメンバーの一部の利用を制限したり、多数のプリンタを全員が利用可能にすることが可能である。また valid users オプションを共有の設定に追加することで、プリンタの利用を特定少数に制限することも可能である:

[deskjet]
	printable = yes
	path = /var/spool/samba/print
	valid users = gail sam

前の章で記述したその他の共有へのアクセス制御オプションに付いても、同様にプリンタ共有に対して適用することが可能である。プリンタをSamba 経由でアクセスできるようにすることで、幾つかのサーバで提供しているプリンタサービスを負荷分散やメンテナンスのような作業にUNIX コマンドを用いることで簡単にdelegate委任させることが可能である。

7.1.4 The [printers] 共有

Chapter 4 ディスク共有 において、 [printers] については、自動的に印刷サービスを作成する共有として簡単に紹介した。これがどのように動作するかに付いて解説しよう。 [printers] という名前の共有を設定ファイル中に作成すると、Samba は自動的にプリンタ構成ファイルを読み込み、自動的にファイル中に存在する各プリンタ毎にプリンタ共有を作成する。例えば、Samba サーバのプリンタ構成ファイルに lp, pcl, ps というプリンタが設定されていた場合、Samba は3つのプリンタ名の付いた印刷共有を、各々 [printers] 共有に設定されたオプションで作成する。

クライアントが要求した共有が smb.conf ファイル中に作成されていなかった場合に Samba は以下の規則に従うことを思い出して欲しい:

  • 共有名がシステムのパスワードファイルに存在するユーザ名と合致し、 [homes] 共有が存在する場合、ユーザ名の付いた新しい共有が作成され、 [homes] 及び [global] セクションで定義された値で初期化される。

  • 一方、システムのプリンタ構成ファイル中に存在するプリンタ名と合致し、 [printers] 共有が存在する場合、プリンタ名の付いた新しい共有が作成され、 [printers] セクションで定義された値で初期化される( [global] セクションの変数の内容は適用されない)。

  • どちらにも合致しなかった場合、Samba は default service 共有を探す。定義されていなかった場合は、エラーが返却される。

これに関して重要な点が一つある: ユーザ名と同じ名前のプリンタを作成しないように注意することである。さもないと、接続しようとしたプリンタ共有の代わりに、ディスク共有に接続することになってしまう。

以下に Linux (BSD) システムにおける [printers] 共有のサンプルを示す。これらのオプションの幾つかは、既にデフォルトで設定されているが、実例を示す目的で、以下に記述した:

[global] 
	printing = BSD
	print command = /usr/bin/lpr -P%p -r %s 
	printcap file = /etc/printcap 
	min print space = 2000

[printers] 
	path = /usr/spool/public 
	printable = true  
	guest ok = true 
	guest account = pcguest 

ここでは、Samba のグローバルオプションで、印刷タイプ(BSD)、データをプリンタに送信し、一時ファイルを削除する印刷コマンド、デフォルトのプリンタ構成ファイル、印刷時に必要な最低限のディスクの空き領域を2MBにすることを設定している。

その上で、各システムのプリンタ用に、 [printers] 共有を作成してある。一時的にスプールを行なうディレクトリは、 path オプションで /usr/spool/public に指定した。各共有は印刷可能(printable)に設定されている - これは [printers] セクションであっても必要である。二つの guestオプションは、Samba が共有レベルのセキュリティを用いていると便利であり、プリンタへのゲストアクセスを可能とし、Samba が印刷コマンドを実行する際に用いるゲストユーザを指定している。

7.1.5 テスト印刷

ここでは、どのようにしてSamba サーバ上からテスト印刷を行なうかに付いて述べる。ゲストアカウントを印刷に用いた複雑なケースを考えてみよう。まず、Samba の testparm コマンドをChapter 2, Unix システムへの Samba のインストールで行なったようにして、設定ファイルにプリンタ共有を含む環境で実行する。これにより、設定ファイルに文法的なミスがあるかどうかをチェックする。以下は、前述した設定例で path 設定オプションを設定せずにおいた場合の出力結果である:

# testparm 
Load smb config files from /usr/local/samba/lib/smb.conf 
Processing configuration file "/usr/local/samba/lib/smb.conf" 
Processing section "[global]" 
Processing section "[homes]" 
Processing section "[data]" 
Processing section "[printers]" 
No path in service printers - using /tmp 
Loaded services file OK. 
Press enter to see a dump of your service definitions
Global parameters: 
	load printers: Yes 
	printcap name: /etc/printcap
Default service parameters: 
	guest account: ftp 
	min print space: 0 
	print command: lpr -r -P%p %s 
	lpq command: lpq -P%p 
	lprm command: lprm -P%p %j 
lppause command: 
	lpresume command: 
 Service parameters [printers]: 
	path: /tmp 	
	print ok: Yes 
	read only: true 
	public: true 

次に、 testprns printernameコマンドを実行してみる。これは単純なコマンドで、指定したプリンタが printcap ファイルで利用可能かどうかを確認する。 printcap ファイルが通常の場所にない場合、そのフルパス名を testprns コマンドの2番目の引数で指定する必要がある:

# testprns lp /etc/printcap
Looking for printer lp in printcap file /etc/printcap
Printer name lp is valid.

次に、ゲストユーザでログオンし、スプールディレクトリに行き、 testparm によってSambaが利用することを確認したのと同じコマンドを用いて、印刷が可能かどうかを確認する。前述したように、これで、デフォルトのゲストアカウントが印刷を行なうことが不可能で guest account を変更する必要があるかどうかが確認できる。

最後に smbclientコマンドを用いて、Samba サーバ経由で何かを印刷し、以下ようになることを確認する:

  • ジョブが(一瞬だが)path で指定されたSamba のスプールディレクトリに現れる。

  • ジョブが、印刷システムのスプールディレクトリに現れる。

  • ジョブがSambaが利用するスプールディレクトリから消失する。

smbclient で印刷できない場合、以下のようにデバッグ情報を収集して、 print command オプションを再設定する:

print command = /bin/cat %s >>/tmp/printlog; rm %s

または:

print command = echo "printed %s on %p" >>/tmp/printlog

Samba のプリンタに関するよくある問題は、コマンドをフルパス名で指定し忘れることである。単純にコマンド名で指定した場合、ゲストアカウントの PATH にコマンドのパスが含まれない為にうまく動かないことがある。別のよくある問題として、スプールディレクトリのアクセス権が適切でない場合があげられる。

他にもSamba のドキュメント(Printing.txt)にはプリンタのデバッグに関する情報が存在する。また UNIX の印刷システムに付いての詳細は AEleen Frisch が執筆した Essential Systems Administration (O'Reilly 出版) 中で記述されている。

7.1.6 Windows クライアントの設定とテスト

ここまでで Samba 側のプリンタの準備は整ったため、Windows クライアントの設定に移る。「ネットワークコンピュータ」上のSambaサーバを確認すると、各プリンタが利用可能になっている筈である。 図 7.1の例では、 lpという名前のプリンタが表示されている。

次に、Windows クライアントがプリンタを認識していることを確認する。プリンタのアイコンをダブルクリックする。まだインストールされていないプリンタを選択した場合、Windows は設定を行なうかどうかを聞いて来る。"Yes," を選択すると、プリンタの追加ウィザードが開始される。

ウィザードが最初に聞いて来ることは、DOS から印刷を行なうかどうかである。必要がないものとして、ここでは「いいえ」 を選択して「次へ」をクリックすると、製造元とモデルを選択する 図 7.2のようなウィンドウが現れる。

図 7.2: 「ネットワークコンピュータ」上のプリンタ

Figure 7.2

このダイアログボックスでは、想定し得る限りほとんどすべての製造元とモデルに関する膨大なリストが表示される。もしリスト中にプリンタがない場合で、プリンタが PostScript プリンタであることが分かっている場合は、製造元として Apple を選択し、モデルとして Apple LaserWriter を選択する。これで PostScript プリンタとしての基本的な設定が行なわれる。これは恐らくもっとも確実な方法である。既に Postscript プリンタが接続されている場合、既に存在するドライバを置き換えるか、再利用するかの問い合わせがある。新しい方で置き換えないように注意しないと、別のプリンタに不具合が発生する可能性がある。その為、正しく動作している方のプリンタドライバをそのまま用いることを推奨する。

これが終ると次に、ウィザードはプリンタ名を聞いてくる。 図 7.3に一例を示す。ここでは2台目のLaserwriterが選択されている。ここで名前をApple Laserwriter (Copy 2) から "ps on Samba server" に変更することで、印刷物がどこに出力されるかを知ることが出来るようになる。実際のところ、プリンタには好みの名前を付けることが出来る。

図 7.3: プリンタの製造元とモデル

図 7.3

最後に、プリンタの追加ウィザードはテストページを印刷するかどうかを聞いてくる。「はい」をクリックすると、 図 7.4のようなダイアログが現れる筈である。

図 7.4: Printing successfully completed

Figure 7.4

テスト印刷が成功しなかった場合に 図 7.4で「いいえ」のボタンを押すと、プリンタの追加ウィザードはクライアント側の設定に関する問題解決のための手順を順を追って表示する。テスト印刷が動作した場合は、リモートプリンタが File and Print メニュー経由で PC 上のすべてのアプリケーションから利用可能になったことになる。

7.1.7 プリンタドライバの自動設定

前述したセクションで、Windows 上でプリンタドライバを手作業で設定する方法に付いて記述した。しかし、システム管理者としては、ユーザがこうした作業を間違えずに行なうことを前提にすることは不可能である。幸いなことにSambaがプリンタ毎に指定したプリンタドライバを自動的にセットアップするように設定することが可能である。

Sambaでは、クライアントが最初に接続した時にプリンタドライバを自動的にセットアップするためのオプションとして、 printer driver, printer driver file, printer driver locationの3つが提供されている。このセクションでは、上で説明したプリンタの追加ウィザードをユーザが利用する際にプリンタの製造元ダイアログボックスをスキップさせるには、これらのオプションをどのように使っていくかについて説明する。

これについての詳細は Samba配布パッケージ中のドキュメントに含まれている PRINTER_DRIVER.TXTファイルを参照のこと。

設定には大きく4つの段階がある:

  1. Windowsクライアント上にプリンタドライバをインストールする(プリンタが実際に接続されている必要はない)。

  2. Windows マシン上の情報から、プリンタ定義ファイルを作成する。

  3. ドライバファイルが置かれる PRINTER$ 共有を作成する。

  4. Samba の設定ファイルを適切に修正する。

各段階について、細かく解説していこう。

7.1.7.1 Windows クライアントへのドライバのインストール

この段階では、Windows 95/98を利用する。適切なプリンタのドライバをロードできるマシンであれば、どのクライアントを利用してもよい。実際のところ、プリンタがマシンに接続されている必要すらない。ここで注意すべきことは、適切なドライバファイルをWindowsディレクトリにインストールすることである。まず「マイコンピュータ」の「プリンタ」に行き、 図 7.5のように「プリンタの追加」アイコンをダブルクリックする。

図 7.5: 「プリンタ」ウインドウ

Figure 7.5

そのまま進んでいくと、プリンタの追加ウィザードがプリンタの製造元とモデルを問い合わせるダイアログボックスが現れる。もしMS-DOS から印刷するかどうかを尋ねられたら、「いいえ」を選択する。Windows は適切なドライバをCD-ROMからロードし、テストページを印刷するかどうかを聞いてくるので、再度「いいえ」を選択して、プリンタの追加ウィザードのダイアログボックスを閉じる。

7.1.7.2 プリンタ定義ファイルの作成

/usr/local/samba/bin ディレクトリ中の make_ printerdef スクリプトによって、プリンタ定義ファイルを作成することができる。このスクリプトを利用するためには、Windows クライアントから以下の4つのファイルをコピーしておく必要がある:[1]

[1] 古い Windows 95 クライアントでは、最初の2つのファイルしかない場合がある。

C:\WINDOWS\INF\MSPRINT.INF
C:\WINDOWS\INF\MSPRINT2.INF
C:\WINDOWS\INF\MSPRINT3.INF
C:\WINDOWS\INF\MSPRINT4.INF

これら4つのファイルを入手したら、適切なプリンタドライバと.INF ファイルを利用して、プリンタ定義ファイルを作成することが可能になる。プリンタドライバ名が A-K から始まっている場合は、 MSPRINT.INF ファイルか MSPRINT3.INF ファイルのどちらかを用いる。L-Z からはじまる場合は、 MSPRINT2.INF ファイルか MSPRINT4.INF ファイルになる。ドライバがどのファイルに含まれているかを検索するには、 grepを用いるとよいかも知れない。以下の例では、プリンタは MSPRINT3.INF ファイルにあるときに、HP DeskJet 560C printer 用のプリンタ定義ファイルを作成した場合である:

$grep "HP DeskJet 560C Printer" MSPRINT.INF MSPRINT3.INF
MSPRINT3.INF: "HP DeskJet 560C Printer"=DESKJETC.DRV,HP_DeskJet_ ...

$make_printerdef MSPRINT3.INF "HP DeskJet 560C Printer" >printers.def
FOUND:DESKJETC.DRV
End of section found
CopyFiles: DESKJETC,COLOR_DESKJETC
Datasection: (null)
Datafile: DESKJETC.DRV
Driverfile: DESKJETC.DRV
Helpfile: HPVDJC.HLP
LanguageMonitor: (null)

Copy the following files to your printer$ share location:
DESKJETC.DRV
HPVCM.HPM
HPVIOL.DLL
HPVMON.DLL
HPVRES.DLL
HPCOLOR.DLL
HPVUI.DLL
HPVDJCC.HLP
color\HPDESK.ICM

スクリプトがコピーするように指示していることに注意すること。これらのファイルは次の段階で必要になる。

7.1.7.3 PRINTER$ 共有の作成

このステップは比較的簡単である。Samba サーバ上の空のディレクトリを指す [PRINTER$] という共有を smb.conf 中に作成する。次に、 make_ printerdef スクリプトで要求されたファイルを [PRINTER$] 共有の path 設定オプションで指定された位置にコピーする。以下、設定ファイル中の記述例を示す:

[PRINTER$]
	path = /usr/local/samba/print
	read only = yes
	browsable = no
	guest ok = yes

make_ printerdef スクリプトが必要とするファイルは、通常 C:\WINDOWS\SYSTEM ディレクトリに存在する, なおファイルがどこにあるかを見付けるためには、以下のようにコマンドを実行するとよい:

cd C:\WINDOWS
dir filename /s

今回の例では、各ファイルは、Samba サーバ上の /usr/local/samba/print ディレクトリにコピーされる必要がある。更に共有上に作成した printers.def ファイルも同様にコピーする。ここまで終れば準備はほとんど完了したといってよいだろう。

7.1.7.4 Samba 設定ファイルの変更

最後に、Samba に設定ファイルを修正して、以下の3つのオプションを追加する:

  • printer driver

  • printer driver file

  • printer driver location

printer driver file printers.def ファイルを指定するグローバルオプションであり、 [global] セクション中に設定する。その他のオプションに付いては、ドライバの自動設定を行ないたいプリンタ共有に設定を行なう必要がある。 printer driver の値は Windows システムのプリンタ追加ウィザードが表示したものと合致している必要がある。 printer driver location の値は、UNIX のパス名ではなく、PRINTER$ 共有のパス名(monyo 訳注: UNC 名)になる。最終的に以下のような設定が行なわれる:

[global]
	printer driver file = /usr/local/samba/print/printers.def
[hpdeskjet]
	path = /var/spool/samba/printers
	printable = yes

	printer driver = HP DeskJet 560C Printer
	printer driver location = \\%L\PRINTER$

これでテストする準備が整った。ここで最初の段階で「マイコンピュータ」の「プリンタ」ウインドウでプリンタのリストから選択して"設定"したWindows 側のプリンタを削除する。Sambaが不要なファイルを削除するかどうかを聞いてきたら、削除する。これらのファイルは既にSamba サーバ上に存在するため、いずれにしてもすぐに置き換えられることになる。

7.1.7.5 設定のテスト

Samba のデーモンを再起動して、「ネットワークコンピュータ」からマシン名の下にある [hpdeskjet] 共有を見付ける。見付けたらアイコンをクリックすることでプリンタの設定が開始され、 図 7.6のようなダイアログが表示される。

これは先程プリンタを設定するときのものとは異なっており、ダイアログは"既にインストールしてある" - 言い替えればSamba によって提供されているドライバを受け入れるかどうかだけを聞いている。現在のドライバを利用することにし、「次へ」ボタンを押す。この場合、プリンタ名の指定とテストページの印刷とを行なうことが可能である。うまく動作すれば、設定は完了している筈である。この手順を各Windowsクライアントで繰り返し行なえばよい。

図 7.6: プリンタドライバの自動設定

図 7.6

Previous: 6.6 ログオンスクリプト 目次 Next: 7.2 Windows クライアント上のプリンタへの印刷
6.6 ログオンスクリプト 書籍索引 7.2 Windows クライアント上のプリンタへの印刷

O'Reilly Home | O'Reilly Bookstores | How to Order | O'Reilly Contacts
International | About O'Reilly | Affiliated Companies

© 1999, O'Reilly & Associates, Inc.