powershell - 从 Ironport 下载文件
问题描述
这是我的 powershell 脚本,可用于登录 Cisco Ironport 并将 /mail_logs/ 文件夹中的所有文件下载到我的本地计算机。我的问题是,如果我没有指定目标文件,那么脚本会出现“pscp:无法创建文件”错误。所以如果我指定一个目标文件($File_MailLogs),那么所有下载的文件都具有相同的名称,简而言之,所有以前的文件都会被覆盖。那么我如何下载所有文件而不被覆盖。
$SOFTWARE_PATH = "E:\Software\putty_32bit"
$SCRIPTS_PATH = "E:\Scripts_Do_Not_Delete"
$PRIVKEY = $SCRIPTS_PATH + "\IronportClusEval.ppk"
$Folder_MailLogs = "c:\temp\IronPort_MailLogs\"
$File_MailLogs = $Folder_MailLogs + "test.txt"
if ( -not (Test-Path $Folder_MailLogs -PathType Container) ) { mkdir $Folder_MailLogs }
$RemoveFiles_String = $Folder_MailLogs + "\*.txt"
Remove-Item $RemoveFiles_String
$IronPortServer = ("aaa-bbb-101.com")
$source_file = "admin@" + $IronPortServer + ":/mail_logs/*"
echo y | &($SOFTWARE_PATH + "/pscp.exe") -i $PRIVKEY $source_file $File_MailLogs
查看运行脚本的屏幕截图,显示所有文件实际上正在下载
解决方案
我必须使用https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter5.html中所述的 UNSAFE 选项。有了这个,我能够下载所有文件(不会被覆盖)。所以命令是:
echo y | &($SOFTWARE_PATH + "/pscp.exe") -unsafe -i $PRIVKEY $source_file $Folder_MailLogs
推荐阅读
- r - R闪亮的数据不可用“错误:找不到对象”
- xamarin.android - 当我单击 SearchView 时,单击事件不会触发 (Xamarin.Android)
- html - Ruby和Rails:将一个视图的登录表单内容显示到另一个视图文件模式弹出窗口中
- actions-on-google - Google Home mini 不询问 DEVICE_COARSE_LOCATION
- c++ - 如何从 easy_curl 返回一个字符串?(用于 dll 的函数)C++
- python - 在 Unix 平台上将 Html 转换为 PDF Python/Django
- java - RecycleView 的 LayoutManager 有什么用?
- tcp - 本地计算机中的 UWP 客户端服务器
- freeradius - Freeradisu 允许基于 NAS-IDENTIFIER 的请求
- marklogic - 如何通过mlcp检查摄取速度慢的根本原因?