У меня возникла неприятная проблема. Я хотел бы исключить, где я получаю информацию об отладке, которую я не прошу в консоли Powershell и ISE. Это неприятность в том, что это мешает моей желаемой информации об отладке.Неразрешенная отладочная информация Информация в консоли Powershell
Я не знаю, относится ли это к инструменту, который я использую для скриптинга (WinSCP), или к более типичному поведению PowerShell.
В общем, WinSCP.Session.Open
события не выписывают что-нибудь (хорошо!), Но Close()
и Dispose()
методы весьма разговорчив, с ниже появляться в моей консоли на каждом вызове.
Сначала я думал, что это может быть следствием включения операторов в блок finally
, но перемещение их в блок try
приводит к такому же неудобству.
Основываясь на подобной, но не идентичной проблеме, я проверил «переменные предпочтений». Мои акции значения перечислены в самом конце, только один я пытался изменить без толку было «Предупреждение Preference» на «Молча ПРОДОЛЖИТЬ», который не имел никакого эффекта
Run-Пример:
PS F:\> getFirewallContents "AAA" 255.255.227.254
Attempting Session.Open AAA | 255.255.227.254
Completed Session.Open AAA | 255.255.227.254
/var/db/commits exists, last write: 5/8/2015 11:33:22 AM
Closing Session AAA
... two stanzas that follow are the undesired output ......
MemberType : Method
OverloadDefinitions : {System.Void Close()}
TypeNameOfValue : System.Management.Automation.PSMethod
Value : System.Void Close()
Name : Close
IsInstance : True
MemberType : Method
OverloadDefinitions : {System.Void Dispose()}
TypeNameOfValue : System.Management.Automation.PSMethod
Value : System.Void Dispose()
Name : Dispose
IsInstance : True
Closed Session AAA
function getFirewallContents ([string] $fw_name, [string] $fw_ip) {
$session = New-Object WinSCP.Session
$sessionOptions = New-Object WinSCP.SessionOptions
$xferOptions = New-Object WinSCP.TransferOptions
$sessionOptions.HostName = $fw_ip
$sessionOptions.UserName = "NOPE"
$sessionOptions.Password = "NOT TELLING"
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
$sessionOptions.GiveUpSecurityAndAcceptAnySshHostKey = $TRUE
$remotefile = "/var/db/commits"
Try {
Write-Host "Attempting Session.Open " $fw_name " | " $sessionOptions.HostName
$session.Open($sessionOptions)
Write-Host "Completed Session.Open " $fw_name " | " $sessionOptions.HostName
if ($session.FileExists($remotefile)) {
Write-Host "$remotefile exists, last write:" $session.GetFileInfo($remotefile).LastWriteTime
} else {
Write-Host "$remotefile NOT FOUND"
}
} Catch {
Write-Host "Something bad happened"
} Finally {
Write-Host "Closing Session $fw_name "
$session.Close
$session.Dispose
Write-Host "Closed Session $fw_name "
}
}
Name Value
---- -----
ConfirmPreference High
DebugPreference SilentlyContinue
ErrorActionPreference Continue
ProgressPreference Continue
VerbosePreference SilentlyContinue
WarningPreference Continue (Tried Silently Continue, no effect)
WhatIfPreference False
Отправить вывод в битовом ведро. '$ session.Close | Out-Null' и т. Д. –