コマンドライン管理ユーティリティ (vpncmd)

    目次
    1. 1. vpncmd とは
      1. 1.1. vpncmd について
      2. 1.2. 各種システム用の vpncmd
      3. 1.3. vpncmd の起動環境
    2. 2. vpncmd の管理モード
    3. 3. コマンドの入力規則
      1. 3.1. 入力プロンプト
      2. 3.2. VPN Server を管理するモード
      3. 3.3. 仮想 HUB を管理するモード
      4. 3.4. VPN Client を管理するモード
      5. 3.5. VPN Tools モード
      6. 3.6. vpncmd の終了
      7. 3.7. 使用できるコマンド一覧の取得
      8. 3.8. コマンドの入力
      9. 3.9. 省略した引数がある場合
      10. 3.10. コマンド名の命名規則
      11. 3.11. コマンド名の自動補完機能 (前方一致による指定)
      12. 3.12. コマンド名の自動補完機能 (省略形による指定)
      13. 3.13. パラメータ名の自動補完機能
      14. 3.14. 表示される文字列入力プロンプトまたはパスワード入力プロンプトをキャンセル方法
    4. 4. コマンドヘルプの表示
      1. 4.1. コマンドヘルプとは
      2. 4.2. 特定のコマンドに関するオンラインヘルプを表示するには
      3. 4.3. 使用できるコマンド名の一覧を表示するには
    5. 5. vpncmd コマンド起動時のコマンドラインパラメータ
    6. 6. バッチ処理モード
      1. 6.1. 管理の自動化とバッチ処理の必要性
      2. 6.2. 単体のコマンドを vpncmd に指定して呼び出す方法
      3. 6.3. 複数のコマンドを vpncmd に指定して呼び出す方法
    7. 7. ログの保存
    8. 8. vpncmd プロセスの戻り値
    9. 9. 文字コード
      1. 9.1. Windows 版における文字コード
      2. 9.2. UNIX 版における文字コード
    10. 10. Windows での vpncmd の呼び出し
    11. 11. vpncmd のみのインストール

    PacketiX VPN には vpncmd というコマンドライン管理ユーティリティソフトウェアが付属しています。vpncmd を使用すると、PacketiX VPN サーバー管理マネージャや PacketiX VPN クライアント接続マネージャなどの Windows 用 GUI ソフトウェアで行うような管理操作をコマンドラインから行うことができます。

     

    vpncmd とは

    vpncmd について

    vpncmd の正式名称は「PacketiX VPN コマンドライン管理ユーティリティ」です。vpncmd はウインドウ表示などの GUI 処理を一切行わない、コマンドライン上でのみ動作するソフトウェアで、Windows / Linux / FreeBSD / Solaris / Mac OS X などのような PacketiX VPN に対応しているすべてのオペレーティングシステム上で使用することができます。

    各種システム用の vpncmd

    vpncmd は各 PacketiX VPN のパッケージファイルに付属しています。

    Windows 版 VPN Server / VPN Client / VPN Bridge をインストールすると、スタートメニューに [PacketiX VPN コマンドライン管理ユーティリティ (vpncmd)] が登録されます。Windows 上で一度 vpncmd を起動すると、次回からはコマンドプロンプトなどから "vpncmd" と入力するだけで vpncmd を起動することができます。

    その他の UNIX 系オペレーティングシステム用の VPN Server / VPN Client / VPN Bridge にも vpncmd が付属しており、インストール時に自動的に生成され vpnserver、vpnclient または vpnbridge の各実行可能ファイルと同一のディレクトに設置されます。

    なお、どの PacketiX VPN ソフトウェアのどのオペレーティングシステム対応版に付属している vpncmd もすべて同一の機能を持ち、同等の動作をするコマンドラインインターフェイスプログラムです。したがって、vpncmd さえあれば Windows 以外のオペレーティングシステムからでも VPN Server / VPN Client / VPN Bridge を管理することができます。

    vpncmd の起動環境

    vpncmd は画面に複数の行を使用する出力結果を表示する場合があります。そのため、vpncmd を使用する場合はスクロール機能が付いたターミナルエミュレータや SSH クライアントソフトウェアを使用してください。また、vpncmd のオプションとして出力ファイル名を指定することにより、出力結果をテキストファイルに書き出すこともできます。詳しくは 「6.2.3 vpncmd コマンド起動時のコマンドラインパラメータ」 および 「6.2.5 ログの保存」 をお読みください。

     

     

    vpncmd の管理モード

    vpncmd は次の 3 種類のモードのうちいずれかで動作します。

    1. VPN Server または VPN Bridge の管理モード
      同一またはリモートのコンピュータ上で動作する PacketiX VPN Server または PacketiX VPN Bridge に管理接続して管理するためのモードです。
    2. VPN Client の管理モード
      同一またはリモートのコンピュータ上で動作する PacketiX VPN Client に接続して制御するためのモードです。
    3. VPN Tools コマンドの使用 (証明書作成や通信速度測定) モード
      VPN Server や VPN Client などのサービスに接続せずに、vpncmd を動作させているコンピュータ上だけでテスト用コマンドや証明書作成コマンドのみを使用する際に選択できるモードです。

    vpncmd を起動すると、これらの管理モードのうちどれを使用するかを選択するメッセージが表示されます。ここで 1 から 3 の中から 1 つを選択すると、その管理モードでの動作を開始します。なお、管理モードを vpncmd を起動する際のコマンドライン引数として指定することもできます。

    vpncmd コマンド - PacketiX VPN コマンドライン管理ユーティリティ
    PacketiX VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
    Version 2.10 Build 5070
    Compiled Tue Dec  6 14:18:20 2005 by yagi at ILC308
    Copyright (C) 2004-2006 SoftEther Corporation. All Rights Reserved.
    vpncmd プログラムを使って以下のことができます。
    
    1. VPN Server または VPN Bridge の管理
    2. VPN Client の管理
    3. VPN Tools コマンドの使用 (証明書作成や通信速度測定)
    1 - 3 を選択:

     

    コマンドの入力規則

    入力プロンプト

    vpncmd がコマンド入力を受け付ける状態になっている場合は、画面上に ">" という文字が表示され、新しいコマンドをキーボードから入力することができます。

    このプロンプトの状態には 4 種類あり、現在 vpncmd がどのモードで動作しているかを知ることができます。

    VPN Server を管理するモード

    VPN Server に対して管理接続した直後の状態では、VPN Server 全体を管理するモードになっています。このときのプロンプトは下記のようになります。

    VPN Server>

    このモードでは、接続先の VPN Server 全体を管理するコマンドのみを呼び出すことができます。たとえば ServerStatusGet コマンドや HubCreate コマンドなどです。使用できるコマンドの数は、約 60 個あります。

    また、この状態で Hub コマンドを使用して管理したい仮想 HUB を選択すると、仮想 HUB を管理するモードに移行します。

    VPN Server>Hub Default
    Hub コマンド - 管理する仮想 HUB の選択
    仮想 HUB "DEFAULT" を選択しました。
    コマンドは正常に終了しました。
    
    VPN Server/DEFAULT>

    仮想 HUB を管理するモード

    仮想 HUB を管理するモードでは、Hub コマンドによって選択された仮想 HUB を選択している状態であり、このときのプロンプトは下記のようになります。

    VPN Server/仮想 HUB 名>

    また VPN Server に対して「仮想 HUB 管理モード」で接続した場合は、自動的にこのモードでプロンプトが開始されます。

    この状態では仮想 HUB を管理するためのコマンドも呼び出すことが可能になります。たとえば Online コマンドや SetMaxSession コマンドなどです。また「VPN Server を管理するモード」で使用することができる VPN Server 全体に対する管理コマンドも引き続き呼び出すことができます。使用できるコマンドの数は、約 170 個あります。

    なお、仮想 HUB を管理するモードから VPN Server を管理するモードに戻るには、Hub コマンドをコマンドライン引数を付けずに呼び出してください。

    VPN Server/DEFAULT>Hub
    Hub コマンド - 管理する仮想 HUB の選択
    仮想 HUB の選択を解除しました。
    コマンドは正常に終了しました。
    
    VPN Server>

    VPN Bridge を管理する場合も VPN Server を管理する場合とほぼ同様に上記の操作方法で管理を行うことができます。なお、VPN Bridge では仮想 HUB は "BRIDGE" という名前のものが 1 つだけ存在しますので、常に "BRIDGE" 仮想 HUB を管理することになります。

    VPN Client を管理するモード

    VPN Client に対して管理接続した場合は、次のようなプロンプトが表示されます。

    VPN Client>

    ここでは VPN Client を制御するためのコマンドを実行することができます。使用できるコマンドの数は、約 65 個あります。

    VPN Tools モード

    VPN Tools モードで vpncmd を起動した場合は、VPN Server や VPN Client などに接続せずに、vpncmd を実行したコンピュータでのみローカル実行することができるコマンドのみを起動することができます。VPN Tools モードで使用することができるコマンドは下記の 5 個のみです。

    • About コマンド
    • MakeCert コマンド
    • TrafficClient コマンド
    • TrafficServer コマンド
    • Check コマンド

    なお、上記の 5 個のコマンドは VPN Tools モード以外のモードからも実行することができるようになっています。

    VPN Tools モードで動作している場合は、次のようなプロンプトが表示されます。

    VPN Tools>

    vpncmd の終了

    vpncmd を終了するには、exit と入力します。

    使用できるコマンド一覧の取得

    現在のモードで使用することができるコマンド一覧を取得するには、Help または ? と入力します。

    VPN Tools>?
    下記の 5 個のコマンドが使用できます:
     About         - バージョン情報の表示
     Check         - PacketiX VPN の動作が可能かどうかチェックする
     MakeCert      - 新しい X.509 証明書と秘密鍵の作成
     TrafficClient - 通信スループット測定ツールクライアントの実行
     TrafficServer - 通信スループット測定ツールサーバーの実行
    
    それぞれのコマンドの使用方法については、"コマンド名 /?" と入力するとヘルプが表示
    されます。
    コマンドは正常に終了しました。

    コマンドの入力

    vpncmd のプロンプトに対してコマンドを入力する場合は、下記のように入力します。

    >コマンド名 引数 /パラメータ名:引数 /パラメータ名:引数 ...
    • コマンド名
      コマンド名は、呼び出したいコマンドの名前です。コマンド名は大文字・小文字を区別しません。またコマンド名が長くてタイプしにくい場合は、一部のみを入力することで後述する機能によって自動補完することができます。
    • 引数 (パラメータ)
      コマンドには引数を指定することができる場合があります。引数には 2 種類あります。名前無し引数と名前付き引数です。
      名前無し引数を指定する場合は、その引数の内容を単純に文字列として記述します。
      名前付き引数を指定する場合は、"/引数名:" のように、スラッシュの後に引数名を指定し、その後に : (コロン) を指定してその引数の内容を指定します。なお、スラッシュの代わりにハイフン (-) を使用することもできます。また、引数名が長い場合は後述する機能によって自動補完することができます。引数名は大文字・小文字を区別しません。
      引数は複数指定できる場合があります。そのような場合は、スペースで区切って指定します。また、引数の中にスペースを含む文字がある場合は引数の内容を " " で囲んで指定します。

    たとえば、BridgeCreate コマンドの入力規則は次のようになっています。

    BridgeCreate [hubname] [/DEVICE:device_name] [/TAP:yes|no]

    この BridgeCreate コマンドに対して、名前無し引数である [hubname] に TEST を、DEVICE 引数に "Intel(R) PRO/1000 MT Desktop Adapter" を、/TAP に no を指定する場合は次のように呼び出します。

    >BridgeCreate TEST /DEVICE:"Intel(R) PRO/1000 MT Desktop Adapter" /TAP:no

    なお、各引数の順序は変わっても問題ありません。たとえば、

    >BridgeCreate /DEVICE:"Intel(R) PRO/1000 MT Desktop Adapter" /TAP:no TEST

    と入力しても同等の動作を行います。

    省略した引数がある場合

    vpncmd ではほぼすべての引数を省略することができます。引数を省略してもエラーにはならず、画面上に省略したパラメータの内容を入力するように促す親切なプロンプトが表示されます。たとえば、前出の BridgeCreate コマンドに引数を付けずに起動すると、次のようにプロンプトが表示され、ユーザーはそのプロンプトに対して下記の赤い部分のように必要項目を指定することになります。

    VPN Server>BridgeCreate
    BridgeCreate コマンド - ローカルブリッジ接続の作成
    ブリッジする仮想 HUB 名: TEST
    
    ブリッジ先のデバイス名: Intel(R) PRO/1000 MT Desktop Adapter

    なお、上記の例では /TAP 引数は指定していませんが、/TAP 引数の内容を問い合わせるプロンプトは表示されませんでした。このように、一部の引数は普段はほとんど指定する必要がないため、単に引数を付けずにコマンドだけを実行した場合に表示されるプロンプトで内容を問われずに、デフォルト値が使用されるものもあります。このような動作については、コマンドヘルプに記載されています。

    コマンド名の命名規則

    vpncmd では合計 200 個を超える大量のコマンドを使用するこができます。これらのコマンドすべてを覚えるのは困難であるため、vpncmd ではコマンドの命名規則をわかりやすくし、たとえば通常の UNIX のコマンドのように習得するのに時間がかかるようなことは避け、実行したい操作の対象物がわかっていればそれを指定するだけでその操作を行うことができるコマンド一覧を表示することができます。

    原則として、vpncmd の各コマンドの名称は、『操作の対象物の名称の後に操作の名前が来る』というような命名規則で制定されています (一部例外があります)。

    たとえば、「サーバーの情報を取得する」というコマンドは ServerInfoGet という名前です。また、ユーザーを作成するコマンドは UserCreate、作成済みユーザーに関する情報を取得するコマンドは UserGet、ユーザーを削除するコマンドは UserDelete、ユーザーのリストを表示するコマンドは UserList といった具合に、操作対象のオブジェクトの種類や名称が先頭に、動詞が末尾に来るというような命名体系を持っています。

    このため、たとえば「ユーザーを削除するコマンドを忘れてしまったので、ユーザー操作に関するコマンド一覧を取得したい」と思った場合は下記のように入力するだけでユーザー操作に関するコマンド一覧とその簡易説明が表示されます。

    VPN Server>user?
    "user": コマンドが曖昧です。
    指定されたコマンド名は、次の複数のコマンドに一致します:
     UserAnonymousSet - ユーザーの認証方法を匿名認証に設定
     UserCertGet      - 固有証明書認証のユーザーの登録されている証明書の取得
     UserCertSet      - ユーザーの認証方法を固有証明書認証に設定し証明書を設定
     UserCreate       - ユーザーの作成
     UserDelete       - ユーザーの削除
     UserExpiresSet   - ユーザーの有効期限の設定
     UserGet          - ユーザー情報の取得
     UserList         - ユーザー一覧の取得
     UserNTLMSet      - ユーザーの認証方法を NT ドメイン認証に設定
     UserPasswordSet  - ユーザーの認証方法をパスワード認証に設定しパスワードを設定
    
     UserPolicyRemove - ユーザーのセキュリティポリシーの削除
     UserPolicySet    - ユーザーのセキュリティポリシーの設定
     UserRadiusSet    - ユーザーの認証方法を Radius 認証に設定
     UserSet          - ユーザー情報の変更
     UserSignedSet    - ユーザーの認証方法を署名済み証明書認証に設定
    より厳密にコマンド名を指定し直してください。

    コマンド名の自動補完機能 (前方一致による指定)

    vpncmd では多くのコマンドがあります。中にはコマンド名が長く、入力するのが面倒なものも多くあります。そのような場合はコマンドの自動補完機能を用いてコマンドの一部のみを入力することでそのコマンドを呼び出すことができます。

    たとえば、ServerPasswordSet コマンドを入力するのが面倒な場合は、先頭からコマンドを入力していき、その状態で使用可能なコマンド一覧を入力された文字列によって前方一致し探索した結果、呼び出しべきコマンドが 1 つに定まる場合にそのコマンド名が内部で補完され自動的に実行されます。ServerPasswordSet コマンドの場合は、先頭の 6 文字である "ServerP" の時点で他に重複するコマンドが無くなりますので、serverp と入力することで実行できます。

    VPN Server>serverp
    ServerPasswordSet コマンド - VPN Server の管理者パスワードの設定
    パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。
    
    パスワード: ********
    確認入力  : ********
    
    コマンドは正常に終了しました。

    もし、前方一致探索の結果ユーザーが入力したコマンド名と一致するコマンドが 2 個以上存在し、実行すべきコマンドが 1 つに定まらない場合は、「コマンドが曖昧です。指定されたコマンド名は、次の複数のコマンドに一致します: より厳密にコマンド名を指定し直してください。」というメッセージと共に、ユーザーが入力した文字列と一致する可能性があるコマンド一覧と簡易ヘルプが表示されます。

    VPN Server>server
    "server": コマンドが曖昧です。
    指定されたコマンド名は、次の複数のコマンドに一致します:
     ServerCertGet     - VPN Server の SSL 証明書の取得
     ServerCertSet     - VPN Server の SSL 証明書と秘密鍵の設定
     ServerCipherGet   - VPN 通信で使用される暗号化アルゴリズムの取得
     ServerCipherSet   - VPN 通信で使用される暗号化アルゴリズムの設定
     ServerInfoGet     - サーバー情報の取得
     ServerKeyGet      - VPN Server の SSL 証明書の秘密鍵の取得
     ServerPasswordSet - VPN Server の管理者パスワードの設定
     ServerStatusGet   - サーバーの現在の状態の取得
    より厳密にコマンド名を指定し直してください。

    このような場合は、さらに数文字を追加で入力して実行すべきコマンドが一意に決定されるところまで指定し直してください。

    コマンド名の自動補完機能 (省略形による指定)

    上記の前方一致探索方法によるコマンドの自動補完は便利ですが、コマンド名が長く、先頭部分の文字列として共通するものが多くあるような場合は、結局多くの文字数をタイプしなければならず不便です。このような場合は、もう一つの補完機能として省略形の指定という方法を用いることでタイプ量を減らすことができます。

    たとえば、下記のような 3 つのコマンドが存在するとします。

    • RouterIfList [name]
    • RouterIfAdd [name] [/HUB:hub] [/IP:ip/mask]
    • RouterIfDel [name] [/HUB:hub]

    上記の例のような 3 つのコマンドはすべて "RouterIf" という文字列で始まっているため、前方一致による指定を行う場合でも必ず "routerif" という 8 文字は指定しなければなりません。

    そこで「省略形による指定」を行うと、それぞれ下記のようなコマンド名に省略することができます。

    コマンド名 省略系の例
    RouterIfList RIL
    RouterIfAdd RIA
    RouterIfDel RID

    上記の例を見ても明らかなように、vpncmd ではコマンド名が大文字と小文字で構成されているような場合 (大半のコマンド) では、そのコマンドの大文字部分のみを並べて指定するだけで、実行すべきコマンドを特定することができます (省略形を入力する際は小文字でも差し支えありません)。

    他にも、長いコマンドは下記の例のように省略することができます。

    コマンド名 省略系の例
    LogPacketSaveType lpst
    RadiusServerSet rss
    SetMaxSession sms
    ClusterMemberInfoGet cmig
    ServerStatusGet ssg

    さらに、各コマンドの大文字部分だけを抜き出した省略形に対しても前方一致探索によって一意に実行べきコマンドが定まる場合は、省略形のうち前方の数文字を入力するだけでもコマンドを認識させることができます。たとえば上記の LogPacketSaveType コマンドの省略形である lpst の前方数文字だけを入力して lpslp などと入力しても構いません。

    これらの手法を用いることによって、vpncmd のユーザーはコマンド実行時にタイプすべき文字数を大幅に削減することができるとともに、何度か同一のコマンドを実行する際にそのコマンドの省略形を覚えることができ、少ないタイプ量で高速なコマンド入力を学習することができます。

    パラメータ名の自動補完機能

    コマンド名と同様に、コマンドを呼び出す際に入力するパラメータ名 (引数名) についても、前方一致が成功するような形で省略形を指定することができます。たとえば SecureNatHostSet コマンドで指定できるパラメータは下記のように制定されています。

    NatSet [/MTU:mtu] [/TCPTIMEOUT:tcp_timeout] [/UDPTIMEOUT:udp_timeout] [/LOG:yes|no]

    このコマンドでは /MTU/TCPTIMEOUT/UDPTIMEOUT および /LOG の 3 つの引数を指定することができますが、それぞれの引数名としてその引数名の先頭から数文字を指定することによって前方一致探索の結果ユーザーが指している引数を 1 つに定めることができるように、先頭からの数文字を指定して引数付き呼び出しを行うことができます。したがって上記の例では 4 つのパラメータは下記のように名前を省略して指定できます。

    引数名 省略系の例
    /MTU /M
    /TCPTIMEOUT /T
    /UDPTIMEOUT /U
    /LOG /L

    表示される文字列入力プロンプトまたはパスワード入力プロンプトをキャンセル方法

    各コマンドではすべてのパラメータを引数一覧として指定することができますが、必要な引数の指定を省略した場合はその都度画面上にその項目を指定するための入力プロンプトが表示されます。また、その項目がパスワードなどの画面に表示しないほうが良い文字列の場合は、プロンプトでユーザーが入力した文字はアスタリスク (*) でマスクされて表示されます。

    これらのプロンプトでの入力をキャンセルして、コマンドの実行そのものを取りやめる場合は、Ctrl + D キーを押してください。

    VPN Server>sps
    ServerPasswordSet コマンド - VPN Server の管理者パスワードの設定
    パスワードを入力してください。キャンセルするには Ctrl+D キーを押してください。
    
    パスワード: ***
    確認入力  : ^D
    
    VPN Server>

    上記の例では、パスワードプロンプト上で Ctrl + D を押したことによって、そのコマンドの実行をキャンセルしてコマンドプロンプトに戻っています。

     

     

    コマンドヘルプの表示

    コマンドヘルプとは

    vpncmd には大量のコマンドが実装されています。すべてのコマンドに関するリファレンスは本マニュアルに含まれていますが、vpncmd を使用する際にコマンド名やコマンドに対して指定する必要のある引数一覧およびコマンドの動作内容について忘れてしまった場合に本マニュアルを用意しなくてもすぐにコマンドに関する詳細を知ることができるようにするため、vpncmd にはすべてのコマンドに関するオンラインヘルプが搭載されています。

    特定のコマンドに関するオンラインヘルプを表示するには

    すでにコマンド名がわかっている場合、そのコマンドに関するオンラインヘルプは次のいずれかの方法にて表示することができます。

    • コマンド名 --help
    • コマンド名 -help
    • コマンド名 /help
    • コマンド名 -?
    • コマンド名 /?
    • コマンド名?
    • man コマンド名
    • ?コマンド名

    上記のいずれの方法でも表示されるコマンド名は同一ですので、--help 形式や /? 形式など、普段使い慣れた形式を使用してコマンドヘルプを表示してください。

    たとえば BridgeCreate コマンドのヘルプを表示した例は下記のとおりです。

    VPN Server>BridgeCreate?
    BridgeCreate コマンド - ローカルブリッジ接続の作成
    コマンド "BridgeCreate" のヘルプ
    
    [目的]
      ローカルブリッジ接続の作成
    [説明]
      新しいローカルブリッジ接続を VPN Server 上に作成します。
      ローカルブリッジを使用すると、この VPN Server 上で動作する仮想 HUB と物理的な
       Ethernet デバイス (LAN カード) との間でレイヤ 2 ブリッジ接続を構成することが
      できます。
      システムに tap デバイス (仮想のネットワークインターフェイス) を作成し、仮想
      HUB との間でブリッジ接続することもできます (tap デバイスは Linux 版のみサポー
      トされています)。
      ブリッジ先の Ethernet デバイス (LAN カード) には、稼働中の任意の LAN カードと
      の間でブリッジできますが、高負荷環境においてはブリッジ専用に LAN カードを用意
      することをお勧めします。
      このコマンドを実行するには、VPN Server の管理者権限が必要です。
    
    [使用方法]
      BridgeCreate [hubname] [/DEVICE:device_name] [/TAP:yes|no]
    [パラメータ]
      hubname - このパラメータに関する説明はありません。
      /DEVICE - ブリッジ先の Ethernet デバイス (LAN カード) 名または tap デバイス名
                を指定します。Ethernet デバイス名の一覧は BridgeDeviceList コマンド
                で取得することができます。
      /TAP    - ブリッジ先として LAN カードではなく tap デバイスを使用する場合は y
                es を指定します (Linux 版のみサポートされます)。省略した場合は no
                と見なされます。
    VPN Server>

     

    使用できるコマンド名の一覧を表示するには

    使用すべきコマンド名がわからないとき、現在の管理モードで使用することができるコマンド名の一覧は、次のように入力することで表示されます。

    • man
    • help
    • ?

    たとえば、下記のように表示されます。

    VPN Server>help
    下記の 173 個のコマンドが使用できます:
     About                      - バージョン情報の表示
     AcAdd                      - IP アクセス制御リストにルールを追加
     AcDel                      - IP アクセス制御リスト内のルールの削除
     AcList                     - IP アクセス制御リストのルール一覧の取得
     AccessAdd                  - アクセスリストへのルールの追加
     AccessDelete               - アクセスリストからルールを削除
       : (省略)
     UserSet                    - ユーザー情報の変更
     UserSignedSet              - ユーザーの認証方法を署名済み証明書認証に設定
    
    それぞれのコマンドの使用方法については、"コマンド名 /?" と入力するとヘルプが表示
    されます。
    VPN Server>

    なお、操作対象のオブジェクトの種類がわかっているなど、コマンド名の先頭の数文字を知っている場合は、下記のように入力することでその文字列で始まるコマンド一覧を表示することができます。

    • 先頭数文字 --help
    • 先頭数文字 -help
    • 先頭数文字 /help
    • 先頭数文字 -?
    • 先頭数文字 /?
    • 先頭数文字?
    • man 先頭数文字
    • ?先頭数文字

    たとえば、カスケード接続に関する操作を行うコマンドの一覧を知るには、cascade? と入力してください。

    VPN Server>cascade?
    "cascade": コマンドが曖昧です。
    指定されたコマンド名は、次の複数のコマンドに一致します:
     CascadeAnonymousSet      - カスケード接続のユーザー認証の種類を匿名認証に設定
    
     CascadeCertGet           - カスケード接続に用いるクライアント証明書の取得
     CascadeCertSet           - カスケード接続のユーザー認証の種類をクライアント証
                                明書認証に設定
     CascadeCompressDisable   - カスケード接続の通信時のデータ圧縮の無効化
     CascadeCompressEnable    - カスケード接続の通信時のデータ圧縮の有効化
     CascadeCreate            - 新しいカスケード接続の作成
     CascadeDelete            - カスケード接続の削除
     CascadeDetailSet         - カスケード接続の高度な通信設定の設定
     CascadeEncryptDisable    - カスケード接続の通信時の暗号化の無効化
     CascadeEncryptEnable     - カスケード接続の通信時の暗号化の有効化
     CascadeGet               - カスケード接続の設定の取得
     CascadeList              - カスケード接続一覧の取得
     CascadeOffline           - カスケード接続のオフライン状態への設定
     CascadeOnline            - カスケード接続のオンライン状態への設定
     CascadePasswordSet       - カスケード接続のユーザー認証の種類をパスワード認証
                                に設定
     CascadePolicySet         - カスケード接続セッションのセキュリティポリシーの設
                                定
     CascadeProxyHttp         - カスケード接続の接続方法を HTTP プロキシサーバー経
                                由接続に設定
     CascadeProxyNone         - カスケード接続の接続方法を直接 TCP/IP 接続に設定
     CascadeProxySocks        - カスケード接続の接続方法を SOCKS プロキシサーバー経
                                由接続に設定
     CascadeRename            - カスケード接続の名前の変更
     CascadeServerCertDelete  - カスケード接続のサーバー固有証明書の削除
     CascadeServerCertDisable - カスケード接続のサーバー証明書の検証オプションの無
                                効化
     CascadeServerCertEnable  - カスケード接続のサーバー証明書の検証オプションの有
                                効化
     CascadeServerCertGet     - カスケード接続のサーバー固有証明書の取得
     CascadeServerCertSet     - カスケード接続のサーバー固有証明書の設定
     CascadeSet               - カスケード接続の接続先の設定
     CascadeStatusGet         - カスケード接続の現在の状態の取得
     CascadeUsernameSet       - カスケード接続の接続に使用するユーザー名の設定
    より厳密にコマンド名を指定し直してください。
    VPN Server>

     

     

    vpncmd コマンド起動時のコマンドラインパラメータ

    vpncmd コマンド自体も、いくつかの引数を付けて起動することができます。通常 vpncmd を起動すると管理モードや接続先のサーバーの IP アドレスなどを入力するプロンプトが表示されますが、vpncmd にコマンドライン引数を付けて起動することによって自動的に指定さた VPN Server に接続したり、さらに指定したコマンドを実行してその結果をファイルに書き出したりすることが簡単に行えます。

    vpncmd コマンドの概要は下記のとおりです。

    vpncmd コマンドリファレンス
    コマンド名 vpncmd
    コマンドの概要 PacketiX VPN コマンドライン管理ユーティリティ
    説明 vpncmd プログラムは、PacketiX VPN ソフトウェアをコマンドラインで管理することができるユーティリティです。vpncmd を使用すると、ローカルまたはリモートコンピュータで動作している VPN Client、VPN Server、および VPN Bridge に接続してそれらのサービスを管理することができます。また、VPN Tools モードを使用して、VPN Server や VPN Client に接続していなくても使用できる証明書の作成や速度測定機能などを呼び出すこともできます。
    vpncmd では、/IN および /OUT パラメータとしてファイル名を指定した場合、実行するコマンドを列挙したファイルに従ってコマンドを一括実行したり、実行結果をファイルに書き出すことができます。通常、vpncmd を起動した場合はコマンドプロンプトが表示されますが、/IN パラメータで入力ファイルを指定した場合は入力ファイルのすべての行の実行が完了すると自動的に終了します。また、/CMD パラメータで実行するコマンドを指定した場合、そのコマンドの実行が完了すると自動的に終了します。/IN パラメータと /CMD パラメータは同時に指定することはできません。vpncmd プログラムの終了コードは、最後に実行したコマンドのエラーコード (成功した場合は 0) となります。
    Windows 環境では、管理者権限で 1 度以上 vpncmd を起動すると、次回から Windows のコマンドプロンプトや [ファイル名を指定して実行] を開いて vpncmd と入力するだけで vpncmd を起動することができるようになります。UNIX システムで同様のことを実現するためには、PATH 環境変数を手動で適切に設定することができます。
    コマンドライン書式 vpncmd [host:port] [/CLIENT|/SERVER|/TOOLS] [/HUB:hub] [/ADMINHUB:adminhub] [/PASSWORD:password] [/IN:infile] [/OUT:outfile] [/CMD commands...]
    vpncmd コマンドで指定することができるパラメータ引数の一覧
    host:port [ホスト名:ポート番号] の形式のパラメータを指定すると、そのホストに自動的に接続します。指定しない場合は、接続先を入力するプロンプトが表示されます。VPN Client に接続する場合は、ポート番号は指定できません。
    /CLIENT VPN Client に接続して管理を行います。/SERVER と共に指定することはできません。
    /SERVER VPN Server または VPN Bridge に接続して管理を行います。/CLIENT と共に指定することはできません。
    /TOOLS VPN Tools のコマンドを使用できるプロンプトを表示します。これには、証明書簡易作成ツール (MakeCert コマンド) および通信速度測定ツール (SpeedTest コマンド) などが含まれます。
    /HUB VPN Server に「仮想 HUB 管理モード」で接続する際の仮想 HUB 名 'hub' を指定します。ホスト名を指定して /HUB パラメータを指定しない場合は、「サーバー管理モード」で接続します。
    /ADMINHUB VPN Server に接続した後に自動的に選択する仮想 HUB 名 'adminhub' を指定します。/HUB パラメータを指定した場合は、その仮想 HUB が自動的に選択されますので、指定する必要はありません。
    /PASSWORD 接続する際に管理パスワードが必要な場合は、パスワード 'password' を指定します。パスワードが指定されていない場合は、入力するプロンプトが表示されます。
    /IN 接続が完了した後に自動的に実行するコマンドの一覧が記載されたテキストファイル名 'infile' を指定します。/IN パラメータが指定されている場合は、ファイル内のすべての行の実行が完了した後に自動的に vpncmd プログラムは終了します。ファイルに多バイト文字が含まれている場合は、Unicode (UTF-8) でエンコードされている必要があります。/CMD と共に指定することはできません (/CMD と共に指定した場合は /IN は無視されます)。
    /OUT 画面に表示されるプロンプト、メッセージ、エラー、実行結果などのすべての文字列を書き出すテキストファイル名 'outfile' を指定することができます。既に存在するファイルを指定した場合、ファイルの内容は上書きされますのでご注意ください。多バイト文字は、Unicode (UTF-8) でエンコードされて記録されます。
    /CMD /CMD の後に任意のコマンド 'command_line...' を記述すると、接続が完了した後にそのコマンドが実行され、その後 vpncmd プログラムは終了します。/IN と共に指定することはできません (/IN と共に指定した場合は /IN は無視されます)。/CMD パラメータは他のすべての vpncmd のパラメータよりも後に指定してください。

     

     

    バッチ処理モード

    管理の自動化とバッチ処理の必要性

    vpncmd コマンドを起動すると、通常はコマンドを入力するためのプロンプトが表示され、システム管理者はそこにコマンドを入力することによって接続先の VPN Server / VPN Bridge などを操作します。また、VPN Client のエンドユーザーも vpncmd を起動してコマンドを入力することによって VPN Client に制御を行うことができます。

    PacketiX VPN の運用方法によっては、これらの機能を自動化したい場合があります。たとえば、大量の社員の名前一覧を CSV ファイルで持っていて、各個人用のアカウントを一括して仮想 HUB 内に作成したい場合などです。通常、これらの繰り返し作業を GUI を使用して行うと大変な時間がかかってしまいます。このような場合は vpncmd のバッチ処理を機能を使用して、事前に定義したいくつものコマンドを一気に実行させることができます。

    また、vpncmd を他のプログラムから呼び出して VPN Server の自動管理を行うことも簡単にできるようになっています。たとえば指定した時刻に VPN Server の仮想 HUB をオフラインにしたり、定期的にその仮想 HUB に接続しているセッションの一覧のスナップショットをテキストファイルに保存して記録しておいたりする場合は、vpncmd を呼び出すことによって行うことができます。

    単体のコマンドを vpncmd に指定して呼び出す方法

    vpncmd を起動して接続対象のサービスに管理接続し、1 つのコマンドを呼び出した後接続を切断するという簡単な操作を行う場合は、vpncmd 起動時の /CMD 引数を使用します。

    vpncmd に /CMD 引数を指定すると、VPN Server / VPN Client / VPN Bridge への接続後、/CMD よりも後に記述されたコマンドを実行し、実行が完了すると直ちに終了します。たとえば、VPN Server の仮想 HUB "DEFAULT" に接続してユーザー "ABC" を作成するには、下記のように入力して vpncmd を起動してください。

    vpncmd /server サーバー名 /password:パスワード /adminhub:DEFAULT
              /cmd UserCreate ABC /GROUP:none /REALNAME:none /NOTE:none

    すると、下記のように自動的に /CMD で指定したコマンドが実行され、vpncmd は終了します。

    C:\>vpncmd /server localhost /adminhub:DEFAULT /cmd UserCreate ABC /GROUP:none
         /REALNAME:none /NOTE:none
    vpncmd コマンド - PacketiX VPN コマンドライン管理ユーティリティ
    PacketiX VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
    Version 2.10 Build 5070
    Compiled Tue Dec  6 14:18:20 2005 by yagi at ILC308
    Copyright (C) 2004-2006 SoftEther Corporation. All Rights Reserved.
    VPN Server "localhost" (ポート 8888) に接続しました。
    
    VPN Server 全体の管理権限があります。
    
    仮想 HUB "DEFAULT" を選択しました。
    VPN Server/DEFAULT>UserCreate ABC /GROUP:none /REALNAME:none /NOTE:none
    UserCreate コマンド - ユーザーの作成
    コマンドは正常に終了しました。
    C:\>

    複数のコマンドを vpncmd に指定して呼び出す方法

    上記の方法では、1 つのコマンドを呼び出すために 1 回ずつ vpncmd を起動しなければなりませんでした。このような方法では、たとえば 1,000 個のコマンドを同時に実行したい場合、1,000 回 vpncmd を起動して自動的に管理対象のサーバーに接続し、コマンドを実行したあと接続を切断して vpncmd を終了するといったオーバーヘッドの高い処理が必要になり、時間がかかるほか、CPU やネットワーク資源の無駄になります。

    そこで、あらかじめ同時に実行した複数のコマンドをテキストファイルとして記述しておき、vpncmd を起動する際に /IN 引数としてそのテキストファイルのファイル名を指定することによって、そのテキストファイルに記述されているすべてのコマンドが自動的に実行された後に vpncmd は終了します。

    たとえば、下記のようなファイルを作成して batch.txt というファイル名で保存します。なお、この例のように多バイト文字 (ひらがな・漢字など) を含むファイルの場合は必ず UTF-8 形式で保存してください。

    Hub DEFAULT
    UserCreate jiro /GROUP:none /REALNAME:"田中 次郎" /NOTE:none
    UserCreate yas /GROUP:none /REALNAME:"新庄 康" /NOTE:none
    UserCreate idai /GROUP:none /REALNAME:"上嶋 千春" /NOTE:none
    UserCreate yokote /GROUP:none /REALNAME:"横手 先生" /NOTE:none
    UserCreate ihihihi /GROUP:none /REALNAME:"金星人助教授" /NOTE:none
    UserCreate yuta /GROUP:none /REALNAME:"油田 副社長" /NOTE:none

    次に、次のようにコマンドライン引数を付けて vpncmd を起動します。

    vpncmd /server サーバー名 /in:batch.txt

    すると、vpncmd が起動して自動的にすべての行のコマンドを順番に実行した後終了します。その結果、たとえば上記の例を実行した後ではユーザーが一括して登録されていることがわかります。

    6-2-1.gif

    batch.txt 実行によって登録されたユーザー

     

     

    ログの保存

    vpncmd を起動する際のコマンドライン引数として /OUT パラメータでファイル名を指定した場合は、vpncmd が表示するすべての出力結果がそのファイルに保存されます。これにより、vpncmd 上でコマンドを実行した結果を外部ファイルに書き出すことができるため、vpncmd の結果を記録したり、その結果によって処理を行うような自動化プログラムを作成することもできます。

     

     

    vpncmd プロセスの戻り値

    vpncmd プロセスは、最後に実行したコマンド実行結果のエラーコードを返します。コマンドが正常に終了した場合は、0 を返します。

     

     

    文字コード

    Windows 版における文字コード

    Windows 版においては、vpncmd プログラムやその他の PacketiX VPN プログラムは、画面にメッセージや動作結果を表示したり、またユーザーからの入力を受け取ったりする際の文字コードとして、プロセスが起動された段階でのシステムまたはユーザーが選択しているロケール情報から取得した文字コードを自動的に使用します。

    UNIX 版における文字コード

    Linux 版を含む UNIX 版の vpncmd プログラムやその他の PacketiX VPN プログラムは、画面にメッセージや動作結果を表示したり、またユーザーからの入力を受け取ったりする際の文字コードとして、プロセスが起動された段階での LANG 環境変数の値から使用する文字コードを決定します。ソフトイーサ株式会社として動作を確認したものは、LANG 環境変数が下記のうちいずれかに設定されている場合のみです。

    • ja_JP.eucJP
    • ja_JP.shift_jis
    • ja_JP.UTF-8

    なお、LANG 環境変数が設定されていなかったり、設定されていても正しく認識されない場合は、EUC-JP エンコードが使用されます。PacketiX VPN ソフトウェアを使用する際は、各プロセスを起動する前に LANG 環境変数が正しく設定されているかどうかを確認してください。

     

     

    Windows での vpncmd の呼び出し

    Windows では、PacketiX VPN ソフトウェアをインストールした直後は PacketiX VPN ソフトウェアをインストールしたディレクトリ (たとえば C:\Program Files\PacketiX VPN Server など) にインストールされる vpncmd.exe プログラムを起動することによって vpncmd を起動してください。

    なお、一度 Administrators 権限で vpncmd を起動すると、次回からコマンドプロンプトや [ファイル名を指定して実行] などで vpncmd と入力するだけで、vpncmd を起動することが可能になります。

    UNIX 系オペレーティングシステムでは、PATH 環境変数を手動で設定するか、/usr/local/bin などのプログラムフォルダに vpncmd および hamcore.se2 を設定することによって、同等の効果を得ることができます。

     

     

    vpncmd のみのインストール

    vpncmd は通常 PacketiX VPN Server / VPN Client / VPN Bridge をインストールしたコンピュータに自動的にインストールされますが、下記のファイルを他のコンピュータにコピーすることによって、別のコンピュータで vpncmd のみを使用することが可能です。なお、ソフトイーサ株式会社はこれらのファイルを手動でコピーするのではなく、vpncmd を使用したいコンピュータに対して Windows の場合は VPN Bridge の exe-only 版を、UNIX の場合は VPN Bridge の通常版を展開することを推奨します。

    • vpncmd.exe 実行可能ファイル
      (UNIX 版にあたっては、vpncmd ファイル)
    • hamcore.se2 ファイル