locked
無線LAN設定を別PCにも展開したいが、パスワードは伏せたい RRS feed

  • 質問

  • お世話になります。

    Win7 32bitのPCでクライアント展開のための検証作業をしております。
    約50台のPCに無線LANの設定をしたいと考えております。

    1)設定済PCから netsh wlan export profile name=<SSID> key=clear でxmlをエクスポート
    2)netsh wlan add profile filename=<SSID> user=all で別PCへインポート

    といったことを各ユーザーにやってもらおうかと考えております。
    しかし、xmlファイルをユーザーに配布しようとした場合、xmlにはパスワードが記載されております。
    セキュリティ上の観点から望ましくないので、何かパスワードを伏せるような方法はございませんでしょうか。

    今のところはxmlとバッチの配布を考えておりますが、パスワードの部分が解決できないと別の方法を考えなければなりません。
    方法についてご存知の方、ご教示の程宜しくお願いします。
    2018年2月26日 7:18

回答

  • 思いつきで書いてしまいますが、以下のようなバッチファイルを作成しフリーソフトでコンパイルしてバイナリにしてしまえばよろしいのではないでしょうか。
    業務利用ではエラーハンドリングやログ出力が必要ですが、今回は省いています。
     
     
    ■サンプルコード
     
    ------------------------------------------------------
    set XML_PATH=\c: \\Users\Public  <-- 出力先
    set FILE_NAME=<SSID>.xml <--出力ファイル名
     
    cd %XML_PATH%
    copy null %FILE_NAME%
     
    rem <ーーここからはxmlファイルを生成するためにechoするーー>
     
    echo ^<?xml version="1.0"?^> >> %FILE_NAME%
    echo ^<WLANProfile xmlns="http://.............."....^> >> %FILE_NAME%
     
    ~省略~
     
    echo </WLANProfile> >> %FILE_NAME%
     
    if exist %FILE_NAME% (
     
      netsh wlan add profile filename=<SSID>.xml user=all
     
      if %ERRORLEVEL% == 0 (
     
      del /Q %FILE_NAME%
     
      )
     
    )
    ------------------------------------------------------
     
    この処理では、バッチ内でxmlファイルを作成してインポートし、その後削除する処理を書いています。
    コマンドプロンプトやPowerShellから直接ファイルを削除するとゴミ箱には残りません。
    また、「Batch To Exe Converter」のようにバッチファイルをexeにするソフトがあるので、コンパイルすればバッチの処理内容も隠すことが出来ます。
     
    まとめると
     
    1、XMLファイルを渡さずにバッチで作成して最後に完全削除する
    2、バッチをexeファイルにしてユーザが読み取れない形式に変更
     
     
    で完全に情報は遮断できます。
     
    しかし、Windows Defenderやサードパーティのアンチウィルスソフトに検疫されてしまう可能性があるため、確認が必要です。
    今回は、xmlを配布する前提でしたので、バッチで作成して自動でインポートという処理と、情報保護のためにexe化について書かせてもらいました。
    <>など特殊文字は全て^でエスケープする必要があります。

    (面倒ですが私はセキュリティを担保するための工数としています)
     
     
    以上、ご参考まで


    2018年2月26日 8:21
  • Window 自動化技術大全の林です。

    >> 1)設定済PCから netsh wlan export profile name=<SSID> key=clear でxmlをエクスポート

    上記コマンドから「key=clear」オプションを外すだけです。
    それだけでパスワードは暗号化されて xml にエクスポートされます。

    2)のコマンドはそのままで大丈夫です。

    2018年2月27日 3:35
  • 念のために確認ですが、ユーザーはローカル PC に対する管理者権限を持っていない前提ですね。

    管理者権限があればそこでパスワードを秘匿しても「ワイヤレスのプロパティ」から表示できますので。


    hebikuzure

    2018年2月27日 5:01

すべての返信

  • 思いつきで書いてしまいますが、以下のようなバッチファイルを作成しフリーソフトでコンパイルしてバイナリにしてしまえばよろしいのではないでしょうか。
    業務利用ではエラーハンドリングやログ出力が必要ですが、今回は省いています。
     
     
    ■サンプルコード
     
    ------------------------------------------------------
    set XML_PATH=\c: \\Users\Public  <-- 出力先
    set FILE_NAME=<SSID>.xml <--出力ファイル名
     
    cd %XML_PATH%
    copy null %FILE_NAME%
     
    rem <ーーここからはxmlファイルを生成するためにechoするーー>
     
    echo ^<?xml version="1.0"?^> >> %FILE_NAME%
    echo ^<WLANProfile xmlns="http://.............."....^> >> %FILE_NAME%
     
    ~省略~
     
    echo </WLANProfile> >> %FILE_NAME%
     
    if exist %FILE_NAME% (
     
      netsh wlan add profile filename=<SSID>.xml user=all
     
      if %ERRORLEVEL% == 0 (
     
      del /Q %FILE_NAME%
     
      )
     
    )
    ------------------------------------------------------
     
    この処理では、バッチ内でxmlファイルを作成してインポートし、その後削除する処理を書いています。
    コマンドプロンプトやPowerShellから直接ファイルを削除するとゴミ箱には残りません。
    また、「Batch To Exe Converter」のようにバッチファイルをexeにするソフトがあるので、コンパイルすればバッチの処理内容も隠すことが出来ます。
     
    まとめると
     
    1、XMLファイルを渡さずにバッチで作成して最後に完全削除する
    2、バッチをexeファイルにしてユーザが読み取れない形式に変更
     
     
    で完全に情報は遮断できます。
     
    しかし、Windows Defenderやサードパーティのアンチウィルスソフトに検疫されてしまう可能性があるため、確認が必要です。
    今回は、xmlを配布する前提でしたので、バッチで作成して自動でインポートという処理と、情報保護のためにexe化について書かせてもらいました。
    <>など特殊文字は全て^でエスケープする必要があります。

    (面倒ですが私はセキュリティを担保するための工数としています)
     
     
    以上、ご参考まで


    2018年2月26日 8:21
  • Window 自動化技術大全の林です。

    >> 1)設定済PCから netsh wlan export profile name=<SSID> key=clear でxmlをエクスポート

    上記コマンドから「key=clear」オプションを外すだけです。
    それだけでパスワードは暗号化されて xml にエクスポートされます。

    2)のコマンドはそのままで大丈夫です。

    2018年2月27日 3:35
  • 念のために確認ですが、ユーザーはローカル PC に対する管理者権限を持っていない前提ですね。

    管理者権限があればそこでパスワードを秘匿しても「ワイヤレスのプロパティ」から表示できますので。


    hebikuzure

    2018年2月27日 5:01
  • 詳細な記述ありがとうございます。
    XMLを渡す必要はないのですね、とても勉強になります。
    私自身が未だプログラムには明るくないものでして、、、
    参考にしつつ明日出社したら幾つか試してみたいと思います。
    少々日数かかるかもしれませんが、ご報告できればと思います。
    2018年2月27日 11:24
  • >上記コマンドから「key=clear」オプションを外すだけです。
    え、そうだったんですか!
    確かにオプション無しだと乱数表示になってた気がしましたが、明日確認してみます。

    2018年2月27日 11:28
  • hebikuzureさん
    ユーザー達はドメインログインで管理者権限は無かったはずです。
    言われてみてその辺少々不安になってきましたので別途確認してみます。

    2018年2月27日 11:46
  • Nikaido Subaruさん

    幾つか参考にしつつ割とシンプルな方法で解決しました。

    1)エクスポート時 netsh wlan export profile name=TEST.xml
    2)インポート時 netsh wlan add profile filename=TEST
            netsh wlan set profileparameter name=TEST keyMaterial=[セキュリティキー]
    3)2)をbat化してツールを使用してexeに変換

    他にもアドバイスくれた方々ありがとうございました。
    後はvbsでも同じこと出来ないか勉強がてらやってみようと思います。
    2018年2月28日 14:04