SendMessage发送已锁定的附件

问题描述:

我正在使用标准的SendMessage命令在PowerShell脚本中发送电子邮件。我想附加一个日志文件,但不幸日志文件被父脚本锁定。SendMessage发送已锁定的附件

有没有办法发送该文件反正作为附件(我不想删除它或写它)?

我知道我可以用Get-Content读取文件,我应该将这个输出传送给一个新的临时文件,然后附上?如果这会起作用,我该如何去做这件事。

+2

锁定文件被锁定。你可以找到并强制关闭父文件对该文件的处理,但我不会建议这样做,因为它可能会破坏父进程的内容。如果你可以通过'Get-Content'读取文件,你的邮件客户端应该能够读取文件。如果您有权控制父项,请尝试使其始终保持打开文件。否则,我会说你运气不好。 –

+1

如果你使用的“SendMessage标准命令”是Send-MailMessage,那么请更新你的问题,否则人们可能会怀疑你是否在使用不同的东西(这可能很重要)。 –

+1

你真的在使用powershell-v1.0(根据标签)吗?使用'$ host'检查PowerShell的版本。关于标签的话题,* sendmessage *标签指的是非电子邮件功能。 –

如果您可以使用Get-Content读取内容,则Copy-Item应该可以工作。

将其复制为临时文件,发送并删除它。

Copy-Item C:\My_log.log $env:TEMP 

PowerShell 2.0和以上

Send-MailMessage -Attachments $env:TEMP\My_log.log ....... 

的PowerShell 1.0 - >PowerShell Send Email

Remove-Item $env:TEMP\My_log.log 
+1

'Send-MailMessage'在PowerShell v1中不可用。 –