如何在本地PC与Azure云托管VM间传输文件?附PowerShell发邮件参考
导出文档的可行解决方案
第一步:定位已生成的PDF文件
Microsoft Print to PDF的默认保存路径会因执行打印任务的账户上下文变化,你可以直接在可运行的PowerShell窗口执行以下命令,扫描全盘PDF文件,快速定位到目标文件的完整路径:
Get-ChildItem -Path C:\ -Recurse -Filter *.pdf -ErrorAction SilentlyContinue | Select-Object FullName,Length,LastWriteTime
执行后会列出所有PDF文件的路径、大小和修改时间,根据你打印的时间匹配即可找到目标文件。
第二步:可选导出方案
方案1:通过现有邮件脚本发送PDF附件
你已有的发信代码只需新增-Attachments参数即可携带PDF作为附件,修改后的完整代码如下:
$Username ="xxxxx@azure.com" $Password = ConvertTo-SecureString "xxxx" -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential $Username, $Password $SMTPServer = "smtp.gmail.com" $EmailFrom = "from@mail.com" $EmailTo = "to@mail.com" $Subject = "email from ps test" $Body = "Test email sent successfully" # 替换下方路径为你第一步找到的PDF完整路径 $PdfPath = "C:\xxx\xxx\目标文件.pdf" Send-MailMessage -smtpServer $SMTPServer -Credential $credential -Usessl -Port 465 -from $EmailFrom -to $EmailTo -subject $Subject -Body $Body -Attachments $PdfPath
执行脚本后PDF会发送到指定的收件邮箱,即可完成导出。
方案2:复制PDF到可访问目录
如果不需要发邮件,直接执行以下命令即可把PDF复制到你当前PowerShell脚本的运行目录,复制完成后你可以直接访问该文件:
# 替换下方路径为你第一步找到的PDF完整路径 Copy-Item "C:\xxx\xxx\目标文件.pdf" -Destination $PWD.Path
方案3:后续打印直接指定PDF输出路径
避免后续再出现找不到文件的问题,你可以在调用Microsoft Print to PDF时直接指定输出路径到你可访问的目录,不需要使用系统默认存储位置。
内容的提问来源于stack exchange,提问作者iretex
相关产品推荐
相关产品推荐

