最終更新日付: 2021年1月22日
FTPで接続し、ファイルをアップロードしたいのですが、そのアップロードしたファイルをファイルサーバーの共有フォルダに配置したいです。
- WindowsでFTPサーバーを構築し、
- そのFTP接続先ディレクトリをファイルサーバーの共有フォルダに指定する
ことは可能でしょうか?

レジュメ
環境・前提条件
- FTPサーバーをWindows Server 2016
- ファイルサーバーをWindows Server 2016
で用意し、FTPでログインするユーザーアカウントとしましてはAD(Active Directory)を使用しました。
ADはFTPサーバーをドメインコントローラーとし、ファイルサーバーはAD参加し動作を確認しました。
結論、FTP接続先ディレクトリをファイルサーバーの共有フォルダに指定できる!
構築設定個所としましては、
FTPサーバーの「仮想ディレクトリ」の設定で、「物理パス」にファイルサーバーの共有フォルダUNCパスを指定しますと、

FTP接続先ディレクトリをファイルサーバーの共有フォルダに指定できます。
詳細を説明します。
FTPサーバーの構築(FTPサイトの追加)方法

「サーバーマネージャー」の「ツール」等から「インターネットインフォメーションサービス(IIS)マネージャー」(上記画像)を起動させます。
「FTPサイト」がまだない場合は、「サイト」を右クリックし、「FTPサイトの追加」をしてFTPサーバーを構築します。


FTPSサーバーを構築したい場合は、こちら画面のSSLの設定(「SSL」「SSL証明書」)を行う必要があります。
FTPSとSFTPは違うのご注意を。

※ 役割の追加より、IISのコンポーネントやFTPのコンポーネントは追加されている前提です。
FTPサーバーの「仮想ディレクトリ」設定にUNCパス

作成したFTPサイト(上の画像では「ftpsite」)を右クリックし、「仮想ディレクトリの追加」をクリックします。

※仮想ディレクトリとは、通常のFTPサイトの「コンテンツディレクトリ」とは別に、仮想的に枝分かれしたディレクトリを追加したい時に使います。
- エイリアス(FTPサーバー上のディレクトリ名)
- 物理パス(実際のコンピューター上のディレクトリ)
を指定します。
この時、物理パスにファイルサーバーのUNCパスを指定します。

パススルー認証の「接続」と「テスト設定」とは?
上記仮想ディレクトリ設定画面の「パススルー認証」の設定個所についてです。
「接続」画面

パススルーの認証は、デフォルトでは「アプリケーションユーザー(パススルー人認証)」となっています。
これはどういう意味かといいますと、
「FTPサーバーにログインしてきたユーザーで、そのまま仮想ディレクトリの物理パスに認証させアクセスさせる」
という意味です。
逆をいいますと、「特定のユーザー」設定にしますと、
「FTPサーバーにログインしてきたどんなユーザーでも、仮想ディレクトリの物理パスにアクセスする時は、ここで設定した特定のユーザーにスイッチさせて認証させアクセスさせる」
という意味です。
「テスト設定」画面

「テスト設定」では、上記「接続」で設定した設定をテストすることが出来ますが、パススルー設定のままでは上記のような認証にビックリマーク(警告マーク)が出ますが、問題ないです。
コマンド(powershell)でFTP仮想ディレクトリを作成する方法

以下のようなコマンドで、FTP仮想ディレクトリもCUI作成可能です。
New-WebVirtualDirectory -Site "ftpsite" -Name "file02" -PhysicalPath "\\file01.ad2016.internal\共有フォルダ"
上記コマンドで
- 仮想ディレクトリ名:file02
- 物理パス:\\file01.ad2016.internal\共有フォルダ
のFTP仮想ディレクトリが作成できます。

FTP仮想ディレクトリのコマンド(powershell)で確認方法

上記のようにpowershellのコマンドでFTP仮想ディレクトリの一覧の確認も可能です。