【VBScript(WSH)】WindowsServer2016のコマンドプロントでSFTPを動かす方法

【VBScript(WSH)】WindowsServer2016のコマンドプロントでSFTPを動かす方法

【VBScript(WSH)】WindowsServer2016のコマンドプロントでSFTPを動かす方法

私の構築したい環境がWin Server 2016だったのでタイトルはこうなってますが、Windows10以外の『SSH接続を標準装備していないWindowsPC』に共通で使える方法です。
段取りは次の通り。

  1. OpenSSH-Win64.zipをダウンロード
  2. DLしたファイルを解凍して任意のフォルダへコピー
  3. ファイルにパスを通す

OpenSSH-Win64.zipをダウンロード

公式サイトからOpenSSHをダウンロードします。
https://github.com/PowerShell/Win32-OpenSSH/releases

基本的に最新をDLして問題ありません。が、Win64かWin32かは間違えずに取得します。
WinServerの場合はもれなく64Bitだと思うので『OpenSSH-Win64.zip』の取得を行います。

ダウンロードしたファイルを解凍して任意のフォルダへコピー

Downloadは1分もあれば終わります。
その後は任意のフォルダに解凍し移動(コピー)します。
私の場合は、C:\Windows に移しました。

ファイルにパスを通す

次の手順で行います。

  1. 適当なファイルを開く
  2. エクスフローラのアドレスバーに『コントロール パネル\すべてのコントロール パネル項目\システム』を入れてEnter
  3. システム画面に遷移
  4. 『システムの詳細設定』をクリック
  5. システムのプロパティが開く
  6. 環境変数タブを選択
  7. 下段にあるボタン『環境変数(N)…』をクリック
  8. 環境変数画面が開く
  9. 下段システム環境変数(S)の『新規(W…)』をクリック
  10. 変数名(N)に path と記入
  11. 変数値(V)に C:\Windows\OpenSSH-Win64 と記載 ※設置したOpenSSH-Win64までのパスを記載
  12. OKをクリックして確定
  13. 環境変数のOKボタンをクリック
  14. システムのプロパティをOKボタンを押して閉じる

これでパスが通るので後はコマンドプロントで確認作業です。

コマンドプロントでSSHにパスが通ったか確認する

コマンドプロントを起動し【 ssh 】と記載してEnterを押します。

こんな画面が出てきたらパスが通っています。
コマンドが無い等のメッセージが出てきた場合は 『変数値(V)』に記載した値に間違いが無いか確認しましょう。

 SSHが通ればSFTPは使える

ここまでSSHの設定として記載していますが、SSHが通ればSFTPはコマンドを変更するだけです。

まとめ

今まではFTPアップロードをFileZillaにて実行していましたが、自動化すると『更新アナウンス』に阻まれて上手く動かない事が多々ありました。
でも、こうやってコマンドプロントから実行する形にすると「予定外の画面遷移」を無視する事が出来ます。
便利ですねぇ。

サーバー側はOpenShellで操作するのが通常の動かし方なのだとは思います。
参考記事も多くはOpenShellを利用するものでした。

私の場合は『Windows10でもWindowsServerでも同じスクリプトで動く』環境を必要としています。
その為、汎用性の高いコマンドプロントからの動作に拘りこんな構築にしました。