実装

WinSCP使用

Session Class - WinSCP

実装例

テストスクリプト

#
# SFTP TestScript with WinSCP
#	1) upload files.
#	2) download 1) files.
#
# reference)
#	https://qiita.com/mima_ita/items/35261ec39c3c587210d8
#	https://winscp.net/eng/docs/library_session
#

# Set TestPath
$testDirectory = Get-Date -Format "yyyyMMdd_HHmm" 
$uploadLocalPath = "C:\var\test\upload" 
$downloadLocalPath = "C:\var\test\download\${testDirectory}" 

try
{
    # Load WinSCP .NET assembly
    Add-Type -Path 'C:\Program Files (x86)\WinSCP\WinSCPnet.dll' 
	
    # Setup session options
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp 
        HostName = "localhost" 
        UserName = "test" 
        Password = "XXXXXXXX" 
        GiveUpSecurityAndAcceptAnySshHostKey = $True 
    }
	
    $session = New-Object WinSCP.Session 
	
    try
    {
        # Connect
        $session.Open($sessionOptions) 
		
        # Force binary mode transfer
        $transferOptions = New-Object WinSCP.TransferOptions 
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary 
		
		# Create Remote TestDirectory
		if (!$session.FileExists($testDirectory)) {
			$session.CreateDirectory($testDirectory) 
		}
		
		# Upload files to TestDirectory
		$transferResult = 
            $session.PutFiles($uploadLocalPath, $testDirectory, $False, $transferOptions) 
        $transferResult.Check() 

        # Download files from TestDirectory
        if (!(Test-Path $downloadLocalPath)) {
        	New-Item $downloadLocalPath -ItemType Directory 
        }
        $transferResult =
            $session.GetFiles($testDirectory, $downloadLocalPath, $False, $transferOptions) 
		
        # Throw on any error to emulate the default "option batch abort"
        $transferResult.Check() 
    }
    finally
    {
        # Disconnect, clean up
        $session.Dispose() 
    }
	
    exit 0 
}
catch
{
    Write-Host "Error: $($_.Exception.Message)" 
    exit 1 
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-11-15 (月) 11:38:05 (891d)