BoKat 0 Geschrieben vor 23 Stunden Melden Geschrieben vor 23 Stunden (bearbeitet) Hallo, ich bin neu mit PowerShell unterwegs und möchte via Script im Explorer ausgewählte Dateien an ein E-Mail anhängen. Die Einbindung in das Kontextmenü funktioniert. Für den Fall, dass ich nur eine Datei auswähle funktioniert mein Script. param( [string]$FilePath ) # Pfad zur Textdatei mit dem E-Mail-Text $emailTextPath = "W:\Kunden\EMailText.txt" $emailBody = Get-Content $emailTextPath -Raw # Outlook starten $outlook = New-Object -ComObject Outlook.Application $mail = $outlook.CreateItem(0) $mail.Subject = "Rechnungen" $mail.Body = $emailBody $mail.Attachments.Add($FilePath) $mail.Display() Für mehrere Dateien habe ich den Parameterteil wie folgt param( [Parameter(ValueFromRemainingArguments = $true)] [string[]] $files ) und das Einfügen der Dateien in das E-Mail wie folgt angepasst foreach ($filename in $files) { $mail.Attachments.Add($filename) } Die Commands in der Registry lauten für eine Datei (oben) und für mehrere Dateien (unten) powershell.exe -ExecutionPolicy Bypass -File "W:\Kunden\SendMail.ps1" "%1" powershell.exe -ExecutionPolicy Bypass -File "W:\Kunden\SendMail2.ps1" "%*" Leider bekomme ich auf diesem Weg nicht mehrere Dateien in das E-Mail. Was mache ich falsch? bearbeitet vor 22 Stunden von BoKat unwesentliche Informationen entfernt Zitieren
MurdocX 998 Geschrieben vor 21 Stunden Melden Geschrieben vor 21 Stunden Probiere es nicht mit dem klassischen Parameter, denn der wird nicht funktionieren. Nutze stattdessen $args. if($null -ne $args) { $args | ForEach-Object { Write-Host $_ } pause } Erstelle unter "C:\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo" eine Verknüpfung zu deiner SendToPs.ps1-Datei. Zielpfad in der Verknüpfung: %ProgramFiles%\PowerShell\7\pwsh.exe -File "C:\Users\%username%\Desktop\SendToPs.ps1" Dann wirst du in diesem Beispiel beide Pfade angezeigt bekommen. In ForEach kannst du die Aufgaben implementieren. Ich hoffe das hilft Dir weiter. *Ergebnis Zitieren
MurdocX 998 Geschrieben vor 7 Stunden Melden Geschrieben vor 7 Stunden Ich hab mir das spaßeshalber mal gebaut. Das funktioniert ganz gut. Beachten solltest du aus Sicherheitsgründen das Skript an einem Ort abzulegen, dass du als Benutzer nicht ohne Admin-Berechtigung verändern kannst. Sonst kann hier mal schnell ungewollter Code ausgeführt werden. Zitieren
BoKat 0 Geschrieben vor 1 Stunde Autor Melden Geschrieben vor 1 Stunde Hallo Jan, vielen Dank für die schnelle Antwort. Ich bin erst jetzt dazu gekommen, es auszuprobieren. Mit dem Zielpfad in der Verknüpfung habe ich jedoch das Problem, dass die Datei pwsh.exe nicht gefunden wird. Die gibt es auf dem Rechner nicht. Ich arbeite unter Win 11 Pro 22H2. Viele Grüße BoKat Zitieren
Sunny61 833 Geschrieben vor 1 Stunde Melden Geschrieben vor 1 Stunde Wenn die pwsh.exe nicht vorhanden ist, dann installiere die Powershell 7 nach, oder ändere den Pfad auf die vorhandene Powershell.exe ab. Hier gibt es die aktuelle Version der PS7: https://github.com/powershell/powershell/releases Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.