Hallo Stack-Überlauf-Community, für eine Sicherheitsklasse versuche ich einen "schlechten" USB zu replizieren, der angeschlossen wird, und dann über Outlook eine generierte Textdatei an einen Empfänger zu senden.Wie kann ich eine relative Pfadtextdatei erhalten, die als E-Mail-Anhang in PowerShell gesendet werden soll?
Ich werde sagen, ich bin ein PowerShell-Neuling auf alle Fälle, so dass dies etwas einfaches sein kann, dass ich einfach nicht verstehe.
Ich kann nicht den relativen Pfad für $ var1 zu arbeiten.
Wenn ich einen absoluten Pfad zu der generierten Datei verwende, sendet er die Anlage in Ordnung.
Ich versuche, die Get-ChildItem e:\ -filter "*.txt"
zu füllen diese Variable dynamisch zu verwenden, aber wenn es um die .Attchments.Add($var1)
bekommt es mit der Zwischenzeit Error while invoking Add. Could not find member.
bricht, die .Count Funktion auf eine 1 zurückkehrt, was bedeutet, dass die Datei Dort.
Ich konnte keinen guten Hinweis darauf finden, was dieser Fehler bedeutet. Das Durchsuchen des Fehlers führt zu Microsoft-Dokumentation und nichts, das sich auf Programmierung in Powershell bezieht. Ich habe versucht, mit '
um die Get-ChildItem-Anweisung und verschiedene andere syntaktische Optimierungen zu verwirren. Ich habe keine gute Alternative zu der Art gefunden, wie wir uns entschieden haben, die E-Mail bisher zu versenden. Das Sichern von SMTP ist nicht praktikabel, da es nicht zum Szenario passt.
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()
`
Relativer Pfad? Relativ zu was? Und wie würde das helfen? Klingt wie ein Red-Hering. 'Get-ChildItem' gibt Pfadnamen nicht als Strings zurück, es gibt FileInfo-Objekte zurück, das ist wahrscheinlich was bricht add(). Wenn absolute Pfade funktionieren (und sie sollten), sollte '$ var1.FullName' funktionieren. – TessellatingHeckler
Vielen Dank für die Erklärung der Funktion .FullName. Das hat genauso gut funktioniert wie die manipulierte Art, wie ich es in der Selbstantwort gemacht habe. .FullName ist offensichtlich eine viel bessere Lösung. – Athorith