agnostiker
Goto Top

Exchange 2013 Script per Taskplaner ausführen

Hi Gemeinde,

ich habe ein ziemlich einfaches Script geschrieben:

$exch_server='myexchange'
$session=New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://$exch_server/powershell/" -Authentication Kerberos
Import-PSSession $session

Search-Mailbox -Identity "Mailboxname1" -SearchQuery "Subject:'Something'" -DeleteContent -Force
Search-Mailbox -Identity "Mailboxname2" -SearchQuery "Subject:'Something'" -DeleteContent -Force
Search-Mailbox -Identity "Mailboxname3" -SearchQuery "Subject:'Something'" -DeleteContent -Force

Im Taskplaner habe ich folgendes definiert:

Programm/Script:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Arguments:
-version 2 -noexit -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto"; C:\Program Files\Microsoft\Exchange Server\V15\Scripts\test.ps1

Wenn ich das script Manuell in der EMS ausführe laeufts ohne Probleme, aber im Taskplaner laeufts und laeufts und laeufts, aber ohne funktion.
ich denke der Fehler liegt in den "Arguments".

Wie muss ich das script dort einbinden wenn es sagen wir hier liegt: C:\Program Files\Microsoft\Exchange Server\V15\Scripts\test.ps1 ???

Content-Key: 240591

Url: https://administrator.de/contentid/240591

Printed on: April 25, 2024 at 12:04 o'clock

Member: colinardo
colinardo Jun 11, 2014 updated at 13:42:57 (UTC)
Goto Top
Hallo agnostiker,
in deinem Script stellst du bereits eine Remote-Verbindung zum Exchange her, also brauchst du das in den Parametern nicht mehr tun. Als Parameter im Task sollte das hier reichen:
-version 2 -NonInteractive "C:\Program Files\Microsoft\Exchange Server\V15\Scripts\test.ps1"
ansonsten so, ohne die zusätzliche Herstellung der Verbindung im Script:
-NonInteractive -WindowStyle Hidden -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; . 'C:\Program Files\Microsoft\Exchange Server\V15\Scripts\test.ps1'"
Zusätzlich müssen natürlich die Rechte im Task entsprechend ausreichend eingestellt sein, damit der Zugriff auf die Postfächer via Search-Mailbox klappt:
Search-Mailbox
Bevor Sie dieses Cmdlet ausführen können, müssen Ihnen die entsprechenden Berechtigungen zugewiesen werden. In diesem Thema sind zwar alle Parameter für das Cmdlet aufgeführt, aber Sie verfügen möglicherweise nicht über Zugriff auf einige Parameter, falls diese nicht in den Ihnen zugewiesenen Berechtigungen enthalten sind. 

Grüße Uwe
Member: agnostiker
agnostiker Jun 11, 2014 at 12:46:34 (UTC)
Goto Top
Hallo Uwe, erstmal danke fuer Deine Antwort.
Habs leider so auch nicht zum laufen gebracht.

Wenn ich das Script manuell mittels Windows Powershell ISE ausführe erscheint erst:

PS C:\Program Files\Microsoft\Exchange Server\V15\Scripts> C:\Program Files\Microsoft\Exchange Server\V15\Scripts\test.ps1
WARNING: The names of some imported commands from the module 'tmp_3fa21c2x.1yn' include unapproved verbs that might make them less discoverable. To find the commands with unapproved verbs, run the Import-Module command again with the Verbose parameter. For a list of approved verbs, type Get-Verb.


danach laeuft das script aber problemlos durch und loescht auch die zutreffenden mails.
aber mittels des taskplaners sehe ich nur "running" aber es tut sich nichts...
Member: colinardo
colinardo Jun 11, 2014 updated at 12:52:23 (UTC)
Goto Top
Zitat von @agnostiker:
For a list of approved verbs, type Get-Verb.**
das ist normal, kannst du ignorieren
aber mittels des taskplaners sehe ich nur "running" aber es tut sich nichts...
dann stimmen sehr wahrscheinlich die Rechte im Taskplaner nicht, bzw. der Account unter dem das Script ausgeführt wird hat nicht genügend Rechte s.o.
poste mal alle deine Einstellungen im Taskplaner ...

p.s. mit den richtigen Berechtigungen geht es hier testweise einwandfrei ...
Member: colinardo
colinardo Jun 11, 2014 updated at 13:48:02 (UTC)
Goto Top
pack das Script auch mal testweise in einen Ordner der keinen so langen Pfad hat...

ansonsten schau mal hier rein: http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2013/P ...
Member: agnostiker
agnostiker Jun 11, 2014 at 13:03:17 (UTC)
Goto Top
Habe das ganze jetzt mal als domadmin ( nicht hauen, nur testzwecke ....) aber dennoch laeufts nicht:

http://i.imgur.com/7SvDtyr.jpg
Member: colinardo
Solution colinardo Jun 11, 2014 updated at 13:37:22 (UTC)
Goto Top
-DeleteContent

Wichtig:
Die Verwaltungsrolle "Postfachimport/-export" muss Ihnen zugewiesen werden, um diesen Schalter zu verwenden. Diese Rolle ist standardmäßig keiner Rollengruppe zugewiesen. Normalerweise können Sie eine Role einer eingebauten oder benutzerdefinierten Rollengruppe zuordnen. Oder Sie können eine Rolle einem Benutzer einer Universal-Sicherheitsgruppe zuweisen.
http://technet.microsoft.com/de-de/library/ee633452%28v=exchg.141%29.as ...

lass dir halt mal aus dem Script die eventuellen Fehlermeldungen ausgeben....
$error | out-file "C:\Fehler.txt"
Member: agnostiker
agnostiker Jun 11, 2014 at 13:38:45 (UTC)
Goto Top
Ich schliese die Frage erstmal, wenn es bei Dir anstandslos laeuft scheint wohl doch der Fehler 40 vorzuliegen oder was anderes ist im argen.
Danke fuer Deine Infos, ich werde mal sehen ob das ding einen error auswirft und dann gehts in die zweite runde, scheint ja doch was gröberes zu sein.