How to enable session log in PowerShell example

Advertisement

istandard
Joined:
Posts:
1

How to enable session log in PowerShell example

This is the PowerShell/.NET assembly example I found on this site. What code and where do I add it to enable the session log? I'm having another issue with SSH Host fingerprint but I know you will need the log to help.

Here is the example script
try
{
    # Load WinSCP .NET assembly
    Add-Type -Path "WinSCPnet.dll"
 
    # Setup session options
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "example.com"
        UserName = "user"
        Password = "mypassword"
        SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
    }
 
    $session = New-Object WinSCP.Session
 
    try
    {
        # Connect
        $session.Open($sessionOptions)
 
        # Upload files
        $transferOptions = New-Object WinSCP.TransferOptions
        $transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
 
        $transferResult = $session.PutFiles("d:\toupload\*", "/home/user/", $False, $transferOptions)
 
        # Throw on any error
        $transferResult.Check()
 
        # Print results
        foreach ($transfer in $transferResult.Transfers)
        {
            Write-Host ("Upload of {0} succeeded" -f $transfer.FileName)
        }
    }
    finally
    {
        # Disconnect, clean up
        $session.Dispose()
    }
 
    exit 0
}
catch [Exception]
{
    Write-Host $_.Exception.Message
    exit 1
}

Reply with quote

Advertisement

prbrown
Joined:
Posts:
2
Location:
SG

Hello,

I'm using a generated script and I'm not really sure how to turn on the log;

Can you show me which part need to be change to enable the log.

Thanks.
# Load WinSCP .NET assembly
Add-Type -Path "C:\ci\WinSCPnet.dll"
 
# Set up session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
    Protocol = [WinSCP.Protocol]::Sftp
    HostName = "####"
    UserName = "####"
    SshHostKeyFingerprint = "ssh-rsa 2048 #####"
    SshPrivateKeyPath = "######k"
}
 
$session = New-Object WinSCP.Session
$opt = New-object Session.SessionLogPath -
 
try
{
    # Connect
    $session.Open($sessionOptions)
 
    # Set up transfer options
    $transferOptions = New-Object WinSCP.TransferOptions -Property @{
        PreserveTimestamp = $False
    }
    
    # Transfer files
    $session.PutFiles("C:\ci\upload\", "/upload/*", $False, $transferOptions).Check()
}
finally
{
    $session.Dispose()
}
 

Reply with quote

martin
Site Admin
martin avatar

    ...
    $session.SessionLogPath = "C:\path\to\winscp.log"
    # Connect
    $session.Open($sessionOptions)
    ...

Reply with quote

Advertisement

Adrian_hansraj
Joined:
Posts:
2
Location:
Guyana

Hi Martin,

Thank you for the response, however I don't want the debug log, I just want to enable a session log like there is in the GUI, where you enable session log and then you select the verbose level, but I want to be able to do that from a PowerShell script, I already tried the debug log and it throws too much information, when I tested the session log with a reduced verbose level (enable session on logging level: Reduced) with the GUI it gave me what I wanted, I just need to do that from the script now, any help would be appreciated. Thank you. Please see pic for reference of GUI Option

pref_logging.png

Reply with quote E-mail

martin
Site Admin
martin avatar

I know. Read the Session.DebugLogLevel documentation. It sets a level of both logs (those logs that are enabled).

Reply with quote

Advertisement

You can post new topics in this forum