hcca
asked on
Scheduled Task Exchange 2010 powershell fails to execute properly
I have a wonderful script from Exchange Server Pro that I'e modified a bit to meet my needs. This script is typically run using parameters to provide instructions for its execution. It looks like this:
This second script works perfectly but I need to schedule this as a task. So I created a .bat file with these contents:
The script which normally takes 90 minutes to complete finishes in 2 minutes without recording any errors but none of the .csv files are actually created.
Any ideas how I can make this work as a scheduled task?
.\Get-MailboxReport.ps1 -customAttribute1 hcca -filename hcca.csv
I've created a second powershell script that contains a number of lines like above to create separate .csv files for each of our shared services members. The script also emails the appropriate .csv to each client.This second script works perfectly but I need to schedule this as a task. So I created a .bat file with these contents:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\Scripts\Exchange2010\Get-MailboxReport\GenAllReportsAndMail.ps1"
If I run the .bat file interactively from the Exchange Management Shell it executes perfectly. When it is run from the task scheduler the script runs but does not seem to execute the parameters after the Get-MailboxReport.ps1 on any of the lines. The script which normally takes 90 minutes to complete finishes in 2 minutes without recording any errors but none of the .csv files are actually created.
Any ideas how I can make this work as a scheduled task?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Each of the powershell scripts involved have this line at the top. There are three scripts involved.
1. Get-MailboxReport.ps1 which requires command line switches when run.
2. GenAllReportsAndMail.ps1 which runs Get-MailboxReport.ps1 13 times with appropriate switches
3. GenAllReportAndMail.bat which is used by the task scheduler to run GenAllReportsAndMail.ps1
I can manually run the .bat file from a PowerShell session and it works perfectly. When it runs as a scheduled task the system thinks it successfully completed but it appears that the command switches for the 13 times that the Get-MailboxReport.ps1 script are not being run. Without those switches no files are generated.
Is this any more clear?
1. Get-MailboxReport.ps1 which requires command line switches when run.
2. GenAllReportsAndMail.ps1 which runs Get-MailboxReport.ps1 13 times with appropriate switches
3. GenAllReportAndMail.bat which is used by the task scheduler to run GenAllReportsAndMail.ps1
I can manually run the .bat file from a PowerShell session and it works perfectly. When it runs as a scheduled task the system thinks it successfully completed but it appears that the command switches for the 13 times that the Get-MailboxReport.ps1 script are not being run. Without those switches no files are generated.
Is this any more clear?
When you setup the scheduled task, did you set it to run under a specific account?
Simon.
Simon.
ASKER
When I scheduled the task I was logged in as the domain administrator. I told the task to run even if not logged in and to run with highest privileged and supplied the password when prompted to finish the task creation.
Hello,
Try to have Shell connect to exchange first:
powershell.exe -command ". '[exchange install folder]\v14\bin\remoteExch ange.ps1'; connect-ex changeserv er -auto; [path]\GenAllReportAndMail .bat"
Try to have Shell connect to exchange first:
powershell.exe -command ". '[exchange install folder]\v14\bin\remoteExch
ASKER
As indicated in my original post, I am doing this with this command in my bat file.
C:\Windows\System32\Window sPowerShel l\v1.0\pow ershell.ex e -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExcha nge.ps1'; Connect-ExchangeServer -auto; C:\Scripts\Exchange2010\Ge t-MailboxR eport\GenA llReportsA ndMail.ps1 "
C:\Windows\System32\Window
ASKER
I actually found that the presence of this line:
Add-PSSnapin Microsoft.Exchange.Managem ent.PowerS hell.Admin
in the root script was breaking things. I'm not sure why but by starting there and manually running the script the error was seen and fixed.
Add-PSSnapin Microsoft.Exchange.Managem
in the root script was breaking things. I'm not sure why but by starting there and manually running the script the error was seen and fixed.
Actions tab ->
Program/Script -> "C:\Windows\System32\Windo
Add arguments (optional) -> "C:\scripts\myscript.bat"
Start in (optional) -> "C:\scripts\"
The .bat file looks something like this:
Powershell -command " & { C:\scripts\thescript.ps1 } "