You are probably passing the options in a wrong order. Particularly, you cannot skip parameters, even if you do not need to use them.
For example, you want to call
Session.PutFiles method and you provide the
TransferOptions options parameter. The
options is 4th parameter. Even though the 3rd
bool remove parameter is optional and you are not interested in giving it a non-default value, you have to (PowerShell does not support passing values to optional parameters by name).
This is the correct call:
$session.PutFiles($localPath, $remotePath, $False, $options)
While this is wrong:
$session.PutFiles($localPath, $remotePath, $options)
PowerShell unfortunately does everything it can, to convert an invalid argument to a target parameter type. In this case, it will convert non-null
$options argument to
$True, instead of failing.