技術解説とヒント
<<2008年5月の目次>>
●V5R4 でのスプール・ファイルの保管/リストア
●Windows ネットワーキング名の取得
●CL から AIX プログラムを実行する方法の概要
●専用権限を表示/処理するための CL コマンド


Windows ネットワーキング名の取得

Q:
CL プログラムでシステム名を取得する必要があります。この名前は Windows の「マイ ネットワーク」に表示される名前であることが必要です。RTVNETA を使用したところ、一部のシステムではうまくいきましたが、他のシステムでは失敗しました。何が間違っているのでしょうか?



A:
RTVNETA は、従来型の APPC/APPN ネットワーク上で使用されるコンピューター名を取得します。これは、Windows ネットワーキングで使用される名前と同じものではありません。システム管理者によっては、APPC/APPN ネットワーキングの場合と同様に Windows ネットワーキングにも同じ名前を使用することがあり、これらの名前がたまたま同じならばご質問のソリューションは機能しますが、それは単なる偶然に過ぎません。Windows ネットワーキングが使用する実際のシステム名は、NetServer ソフトウェア用の構成に保管されています。

この問題の解決策として、実際の Windows ネットワーキング名の代わりに IP アドレスを使用することがよくあります。この回避策は Windows の最近のバージョンでは有効ですが、古いバージョンではうまくいきません。しかも、システムは複数の IP アドレスを使用することがよくあるので、曖昧さが生じる可能性もあります。これよりも良い解決策は、NetServer 構成からシステム名を取得することです。この技法は、Windows のすべてのバージョンで使用できます。

残念ながら、システムにそのためのコマンドはありません。RTVNETA コマンドと同等な Windows ネットワーキングのコマンドは存在しません。そこで、そのコマンドを作成してみました。そのユーティリティーは SMBINFOR4 という名前のもので、QZLSLSTI API を呼び出してシステム名を取得する ILE RPG プログラムです。この RPG プログラムは、システム名およびドメイン・ネームまたはワークグループ名をパラメーターとして返すので、CL プログラムから簡単に呼び出すことができます。

例えば、System i 上で、IFS 内の共用ディレクトリー klemscot に、xldemo.xls という名前の Excel 文書があるとします。そのファイルを開くように指示するコマンドを PC に送信したい場合は、次の手順で行います。

  1. SMBINFOR4 ユーティリティーを呼び出して、Windows ネットワーキングのシステム名を取得します。
  2. 次のようなフォーマットのストリングを作成します。

    start excel \\my-system-name\klemscot\xldemo.xls

  3. STRPCCMD CL コマンドを使用して、前記のストリングを Windows PC に送信します。この PC 上では、ストリングが Windows コマンドとして実行されます。

この結果、ユーザーの PC 上で Excel が開き、スプレッドシートが表示されます。図 1 は、このプロセスを例示する CL プログラムを示しています。SMBINFOR4 ユーティリティーのソース・コードは、pentontech.com/IBMContent/Documents/article/53913_160_SmbInfo.zip でダウンロードできます。

 


↑このページのトップへ


TOPPAGE

BELLDATA, Inc. Copyright reserved.