如何在PowerShell中将相对路径文本文件作为电子邮件附件发送?

问题描述:

你好堆栈溢出社区,对于一个安全类,我试图复制一个“坏”USB插入,然后通过Outlook发送一个生成的文本文件给收件人。如何在PowerShell中将相对路径文本文件作为电子邮件附件发送?

我会说我是PowerShell的新手,所以这可能是简单的,我只是不明白。

我无法获得$ var1工作的相对路径。

当我使用绝对路径生成的文件时,它发送附件罚款。

我试图使用Get-ChildItem e:\ -filter "*.txt"动态填充这个变量,但是当它到达它与Error while invoking Add. Could not find member.

同时打破了.Attchments.Add($var1),就可以了.Count之间的函数并返回1,表示该文件那里。

我找不到这个错误意味着什么。使用Google文档搜索错误会导致错误,因为它与Powershell中的编程有关。我试着在Get-ChildItem声明和各种其他语法调整的基础上尝试与'搞混了。到目前为止,我还没有找到一种很好的替代方式来决定发送电子邮件。为此确保SMTP安全并不现实,因为它不适合这种情况。

New-Item -Path E:\ -Name "DynamicNameOfPC" -ItemType "file" -Value "Test" 
(Get-ChildItem e:\ -filter "*.txt").Count 

$var1 = Get-ChildItem e:\ -filter "*.txt" 


$OL = New-Object -ComObject outlook.application 

Start-Sleep 5 
#Create Item 
$mItem = $OL.CreateItem("olMailItem") 

$mItem.To = "[email protected]" 
$mItem.Subject = "Testing Script" 
$mItem.Body = "Testing" 
$mItem.Attachments.Add($var1) 
$mItem.Send()  

`

+2

相对路径?相对于什么?这将如何帮助?听起来像一只红鲱鱼。 'Get-ChildItem'不会将路径名作为字符串返回,它会返回FileInfo对象,这可能会破坏add()。如果绝对路径工作(他们应该),那么'$ var1.FullName'应该可以工作。 – TessellatingHeckler

+0

感谢您对.FullName函数的解释。这和我在自我回答中所做的操纵方式一样。 .FullName显然是一个更好的解决方案。 – Athorith

通过与上一个不和谐的随机用户分析,我们能够实现将Get-ChildItem渐渐的文件名,但不是完整的路径。

$var1之前添加一个变量,路径为E:\使它完美工作。

+1

我建议你阅读并理解[TessellatingHeckler的评论](https://stackoverflow.com/questions/44877511/how-can-i-get-a-relative-path-text-file-to-be-sent-as- AN-电子邮件附件功能于POW#comment76734981_44877511)。 ['Get-ChildItem'](https://msdn.microsoft.com/en-us/powershell/reference/5.0/microsoft.powershell.management/get-childitem)返回[FileInfo](https://msdn.microsoft .com/en-us/library/system.io.fileinfo_properties(v = vs.110).aspx)和[DirectoryInfo](https://msdn.microsoft.com/zh-cn/library/system.io.directoryinfo (v = vs.110).aspx),其中包括完整路径作为属性'Fullname'。 – gms0ulman