|
|||||||||
|
|
|
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 に送信したい場合は、次の手順で行います。
この結果、ユーザーの PC 上で Excel が開き、スプレッドシートが表示されます。図 1 は、このプロセスを例示する CL プログラムを示しています。SMBINFOR4 ユーティリティーのソース・コードは、pentontech.com/IBMContent/Documents/article/53913_160_SmbInfo.zip でダウンロードできます。 |
| ↑このページのトップへ |
BELLDATA, Inc. Copyright reserved. |