OasisEE
asked on
Unable to run an exchange 2010 powershell script from Task Scheduler
Hey guys! (Please note, I am not a powershell scripter) I am able to successfully run this command from Exchange Management Shell:
./Get-PublicFolderReplicat ionReport. ps1 -Subject "Exch Daily PF Replication Report" -AsHTML -To ExchangeAdmins@fabricam.co m -From Public.Folder.Repl@fabrica m.com -SmtpServer mail.fabricam.com -SendEmail
(note, the folder this is in is: C:\_Utils\ExchScripts\Publ icFolderRe plication)
Now for the part that always drives me crazy. Getting it to work in Windows 2008 Scheduler (ugh)
So the bottom line is, i get an error stating an exchange command within the .ps1 file doesn't exist. It occurred to me that the exchange extensions are not being loaded by just running powershell.exe. Que a days worth of googling and testing and lots of different advice and different switches, and still it wont work from Task Manager.
Question: What do I put into Task Manager for
1) Task Manager - Program/Script:
2) Task Manager - Add Arguments (optional):
Here are some of the things I've tried unsuccessfully
1) Task Manager - Program/Script:
C:\Windows\System32\Window sPowerShel l\v1.0\Pow ershell.ex e
2) Task Manager - Add Arguments (optional):
-version 2.0 -NonInteractive -WindowStyle Hidden -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExcha nge.ps1'; Connect-ExchangeServer -auto; 'C:\_Utils\ExchScripts\Pub licFolderR eplication \Get-Publi cFolderRep licationRe port.ps1' -Subject "Exch Daily PF Replication Report" -AsHTML -To ExchangeAdmins@fabricam.co m -From Public.Folder.Repl@fabrica m.com -SmtpServer mail.fabricam.com -SendEmail
OR
1) Task Manager - Program/Script:
powershell.exe
2) Task Manager - Add Arguments (optional):
-PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\V14\Bin\ExShell.psc 1" -Command ". 'C:\_Utils\ExchScripts\Pub licFolderR eplication \Get-Publi cFolderRep licationRe port.ps1 -Subject "Exch Daily PF Replication Report" -AsHTML -To ExchangeAdmins@fabricam.co m -From Public.Folder.Repl@fabrica m.com -SmtpServer mail.fabricam.com -SendEmail'"
Hell, I dont even know where to put "-ExecutionPolicy Bypass". Suggestions?
./Get-PublicFolderReplicat
(note, the folder this is in is: C:\_Utils\ExchScripts\Publ
Now for the part that always drives me crazy. Getting it to work in Windows 2008 Scheduler (ugh)
So the bottom line is, i get an error stating an exchange command within the .ps1 file doesn't exist. It occurred to me that the exchange extensions are not being loaded by just running powershell.exe. Que a days worth of googling and testing and lots of different advice and different switches, and still it wont work from Task Manager.
Question: What do I put into Task Manager for
1) Task Manager - Program/Script:
2) Task Manager - Add Arguments (optional):
Here are some of the things I've tried unsuccessfully
1) Task Manager - Program/Script:
C:\Windows\System32\Window
2) Task Manager - Add Arguments (optional):
-version 2.0 -NonInteractive -WindowStyle Hidden -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExcha
OR
1) Task Manager - Program/Script:
powershell.exe
2) Task Manager - Add Arguments (optional):
-PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\V14\Bin\ExShell.psc
Hell, I dont even know where to put "-ExecutionPolicy Bypass". Suggestions?
ASKER
Thanks for the quick reply Alicia W. but i tried the following as per your post and that didnt work. :(
1) Task Manager - Program/Script:
powershell.exe
2) Task Manager - Add Arguments (optional):
-command ". 'D:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExcha nge.ps1'; Connect-ExchangeServer -auto; C:\_Utils\ExchScripts\Publ icFolderRe plication\ Get-Public FolderRepl icationRep ort.ps1 -Subject "Exch Daily PF Replication Report" -AsHTML -To ExchangeAdmins@Fabricam.co m -From Public.Folder.Repl@Fabrica m.com -SmtpServer mail.Fabricam.com -SendEmail"
1) Task Manager - Program/Script:
powershell.exe
2) Task Manager - Add Arguments (optional):
-command ". 'D:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExcha
Does this page help?
http://blogs.interfacett.com/how-to-run-the-exchange-management-shell-ems-in-powershell
It gives instructions on how to manually create a remote session on the exchange (he uses a variable he created "$s" to connect to the exchange server).
So, perhaps you could add a similar variable to your script to manually create the connection to your exchange server.
http://blogs.interfacett.com/how-to-run-the-exchange-management-shell-ems-in-powershell
It gives instructions on how to manually create a remote session on the exchange (he uses a variable he created "$s" to connect to the exchange server).
So, perhaps you could add a similar variable to your script to manually create the connection to your exchange server.
ASKER
Dont forget Alicia. My script works fine when run from the Exchange Powershell Command Line. I am having trouble shoe horning that into Windows Task Scheduler.
What you are suggesting is to make powershell.exe load the exchange commands on the fly. I just want to get windows task manager to work with powershell + exchange commands loaded + my working .ps1 file.
What you are suggesting is to make powershell.exe load the exchange commands on the fly. I just want to get windows task manager to work with powershell + exchange commands loaded + my working .ps1 file.
I don't have an Exchange setup to look at right now, but can I suggest looking at the scheduled tasks that Exchange has already set up and imitating what they do. Yes, it's important to load the Exchange modules as part of the scheduled task.
Are you scheduling this on a exchange server?
If yes. Use the following command to schedule script. If it's not working run the same command from command prompt and let me know the error..
If yes. Use the following command to schedule script. If it's not working run the same command from command prompt and let me know the error..
powershell -command "Add-PSSnapin Microsoft.Exchange.Management.Powershell.Support;Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;C:\_Utils\ExchScripts\PublicFolderReplication\Get-PublicFolderReplicationReport.ps1 -Subject "Exch Daily PF Replication Report" -AsHTML -To ExchangeAdmins@fabricam.com -From Public.Folder.Repl@fabricam.com -SmtpServer mail.fabricam.com -SendEmail"
ASKER
Hi Subsun!
Thanks for start. I used what you gave me and I got some weird errors. Like it complained about not seeing any public folders so i added (as per the script author's website)
And then the subject of the email was just
partially pulled from
So I added Single quotes instead of double quotes
So I opened a regular powershell window and ran the command successfully. Problem is, it is not working in Task Scheduler even though it says "The operation completed successfully. (0x0). Is there a way I can see what is going on when it runs in task scheduler? So we're getting closer but still not quite there...
Thanks for start. I used what you gave me and I got some weird errors. Like it complained about not seeing any public folders so i added (as per the script author's website)
-ComputerName EXC026,EXC056 -FolderPath "\" -Recurse
And then the subject of the email was just
Exch
partially pulled from
-Subject "Exch Daily PF Replication Repor"t -AsHTML
So I added Single quotes instead of double quotes
-Subject 'Exch Daily PF Replication Report' -AsHTML
So I opened a regular powershell window and ran the command successfully. Problem is, it is not working in Task Scheduler even though it says "The operation completed successfully. (0x0). Is there a way I can see what is going on when it runs in task scheduler? So we're getting closer but still not quite there...
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Hi Subsun!
Thanks for start. I used what you gave me and I got some weird errors. Like it complained about not seeing any public folders so i added (as per the script author's website)
And then the subject of the email was just
partially pulled from
So I added Single quotes instead of double quotes
So I opened a regular powershell window and ran the command successfully. Problem is, it is not working in Task Scheduler even though it says "The operation completed successfully. (0x0). Is there a way I can see what is going on when it runs in task scheduler? So we're getting closer but still not quite there...
Thanks for start. I used what you gave me and I got some weird errors. Like it complained about not seeing any public folders so i added (as per the script author's website)
-ComputerName EXC026,EXC056 -FolderPath "\" -Recurse
And then the subject of the email was just
Exch
partially pulled from
-Subject "Exch Daily PF Replication Repor"t -AsHTML
So I added Single quotes instead of double quotes
-Subject 'Exch Daily PF Replication Report' -AsHTML
So I opened a regular powershell window and ran the command successfully. Problem is, it is not working in Task Scheduler even though it says "The operation completed successfully. (0x0). Is there a way I can see what is going on when it runs in task scheduler? So we're getting closer but still not quite there...
ASKER
Ive given up with trying to run powershell through Task Manager. I have now successfully pulled it off by placing the command in a bat file and just running that. I'm disgusted with how difficult something like this turned out to be. Task Manager is garbage.
Thanks everyone for your help.
Thanks everyone for your help.
ASKER
putting the command into a .bat file and running that through task manager is the easiest way to pull this off. thank you very much!
https://technet.microsoft.com/en-us/library/bb123798(v=exchg.141).aspx
On that page, it says:
Then, it gives this example of how to launch the Exchange Management shell & run the script:
Open in new window