77575
Goto Top

Powersehll script per cmd aufrufen und wenn fertig beenden

Hallo,

der Titel klingt etwas verwirrend, wusste aber nicht wie ich es sonst kurz und kanpp formulieren sollte.

Jetzt zu meinem Anliegen.
ich habe eine cmd in der ich ein powershell script aufrufe um die mailbox größen unserer exchangeservers in ein logfile zuschreiben und anschließend per blat.exe an mich schicken will.
das ganze läuft als geplanter task.

das ps1 script funktioniert auch tadellos, nur wird nach abarbeitung des ps scripts nicht automatisch der rest des cmd ausgeführt.
das versenden per blat.exe funktioniert auch.

hier mein cmd und ps1 script
cmd:
@echo off
setlocal  EnableDelayedExpansion 
Set eMailRCPT=ich@firma.de
set PFAD=D:\logfiles\Mailbox
set logfile=%PFAD%\%date:~-7,2%-%date:~-10,2%-%date:~-4%.log

C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\bin\exshell.psc1" -noexit -command ". 'D:\test\Scripts\ExchangeMailboxSize.ps1'" >>%logfile%   

"%programfiles%\Blat-Mailer\blat.exe" "%logfile%" -subject "Exchange Mailbox Groessen Log %Datum%" -to %eMailRCPT% -f admin@firma.de -server 192.168.0.200  

mein ps script:
Get-MailboxStatistics -Server ExchSRV1 | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount  
Get-MailboxStatistics -Server  ExchSRV2 | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount  
Get-MailboxStatistics -Server  ExchSRV3 | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount  

das ps script wird ausgeführt und bleibt dann in der powershell hängen. auch wenn ich in das ps script ein exit einbaue ändert sich nichts.
wenn ich das ganze zum testen manuell in einem cmd fenster start sehe ich das das ps script in der powershell hängen bleibt , wenn ich dann exit eingebe, springt es zurück zum cmd und verschickt das logfile mit blat.exe.

wie erreiche ich nun das ps script wenn es durch ist nicht in der shell hängen bleibt?

gruss 0101010

Content-Key: 135350

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

Ausgedruckt am: 28.03.2024 um 17:03 Uhr

Mitglied: 77559
77559 06.02.2010 um 23:47:00 Uhr
Goto Top
Na wie heisst du denn jetzt 21 oder 42?

Das beschriebene Verhalten ist doch zu erwarten. Schau dir mal die Ausgabe von:
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe /?
an. Tausch -noexit gegen -noninteractive und versuchs nochmal.

Gruß
LotPings
Mitglied: 5t8d1e
5t8d1e 07.02.2010 um 15:11:43 Uhr
Goto Top
Hallo,


das noexit ist schon seltsam
-NoExit
Does not exit after running startup commands.
noch seltsamer ist wenn du PS nutz warum nicht auch das Send-MailMessage cmdlet? Wenn du alles in eine Umgebung abarbeitest schleichen sich bestimmt auch weniger Fehler ein.

Grüße Torsten
Mitglied: 77575
77575 07.02.2010 um 16:34:34 Uhr
Goto Top
Zitat von @77559:
an. Tausch -noexit gegen -noninteractive und versuchs nochmal.



Danke, mit -noninteractive funktionierts. ich hatte einfach alles aus der powershellverknüpfung im startmenü kopiert und nur mein ps1 script eingetragen. die parameter waren mir auch unbekannt, weil ich noch nicht wirklich intensiv mit ps arbeite.

gruss 010101
ps: ich heiße weder 21 noch 42, mein nickname hat keinerlei binäre bedeutung, mir ist nur in dem moment nix besseres eingefallen.