Solved

Using a PowerShell script to refresh an Excel Document through Windows Task Scheduler

Posted on 2016-11-21
3
45 Views
Last Modified: 2016-11-21
I have written a simple Windows PowerShell script that opens an existing Excel document and refreshes all the data contained within;
$app = New-Object -comobject Excel.Application
$app.Visible = $True
$wb = $app.Workbooks.Open("C:\batch\Test.xlsx")
$wb.Name
$wb.RefreshAll()
$wb.Save()
$wb.Close()
$app.Quit()

When I run this script from Windows PowerShell ISE it works just fine, when I right click the .ps1 file and select Run with PowerShell it also works just fine. When I set this script to run in Windows task scheduler and select 'Run only when user is logged on' I'm able to successfully run it from Windows Task Scheduler. However, when I select 'Run whether user is logged on or not' it no longer runs, even if I select 'Run with highest privileges'.

Ideally I would like for this script to run regardless of whether anyone is signed on to this server, but doing some online research it seems like it is well documented that this is a difficult task to accomplish.

My online research did yield the following solution, that if I create these two foldesr;
C:\Windows\System32\config\systemprofile\Desktop
c:\windows\syswow64\config\systemprofile\desktop
it should allow the script to succeed, however, this has not seemed to work for me. Any advice or guidance would be most appreciated. Thanks in advance!
0
Comment
Question by:OCCU
3 Comments
 
LVL 39

Accepted Solution

by:
footech earned 500 total points
ID: 41896422
It may work if you change to use this.
$app.Visible = $False

Open in new window


When 'Run whether user is logged on or not' is selected, you can't have any GUI elements or it's likely to fail.

You could add commands to your script to write to a log file, so you can see how far through the script it gets.  Error handling might have to be added if execution doesn't actually hang.
0
 
LVL 9

Expert Comment

by:Evan Cutler
ID: 41896426
I'm not sure how you set up your task scheduler, so here's what I found:

https://community.spiceworks.com/how_to/17736-run-powershell-scripts-from-task-scheduler
0
 

Author Closing Comment

by:OCCU
ID: 41896539
It seems to be working now!
0

Featured Post

Problems using Powershell and Active Directory?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Windows Server Update Service (WSUS) is free for everyone, but it lacks of some desirable features like send an e-mail to the administrator with the status of all computers on the WSUS server. This article is based on my PowerShell script …
Create and license users in Office 365 in bulk based on a CSV file. A step-by-step guide with PowerShell script examples.
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now