FTPS サーバー単体では動作しますが、ロードバランサー経由では動きませんでした。
$provider = New-Object Microsoft.CSharp.CSharpCodeProvider $params = New-Object System.CodeDom.Compiler.CompilerParameters $params.GenerateInMemory = $True $params.TreatWarningsAsErrors = $True $refs = "System.dll","mscorlib.dll" $params.ReferencedAssemblies.AddRange($refs) # C Sharp $txtCode = ' using System; using System.IO; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; public class FTPSUploader { private string user_name = null; private string password = null; public FTPSUploader(){ } public void SetCredential(string sub_user, string sub_pass){ user_name = sub_user; password = sub_pass; } public void Upload(String uri_path, String file_path){ // 証明書を確認しない ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback( delegate(Object certsender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }); Uri uri = new Uri(uri_path); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); request.EnableSsl = true; request.KeepAlive = false; request.UseBinary = true; request.UsePassive = true; request.Credentials = new NetworkCredential(user_name, password); request.Method = WebRequestMethods.Ftp.UploadFile; using (Stream stream = request.GetRequestStream()) using (FileStream file_stream = new FileStream(file_path, FileMode.Open, FileAccess.Read)){ Byte[] bytes = new Byte[8192]; int read_size; while(true){ read_size = file_stream.Read(bytes, 0, bytes.Length); if(read_size == 0){ break; } stream.Write(bytes, 0, read_size); } } } } ' $results = $provider.CompileAssemblyFromSource($params, $txtCode) $results.Errors $mAssembly = $results.CompiledAssembly $i = $mAssembly.CreateInstance("FTPSUploader") Try{ if($results.Errors.Count -eq 0){ $i.SetCredential("ユーザー名","パスワード") $i.Upload("ftp://ftpserver/upload/data1.txt", "C:\temp\data1.txt") $i.Upload("ftp://ftpserver/upload/data2.txt", "C:\temp\data2.txt") $i.Upload("ftp://ftpserver/upload/data3.txt", "C:\temp\data3.txt") } } Catch { "アップロード失敗" }