This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Can't Run Excel From A Cron Job Under Windows 7


After more investigation, I agree that this isn't a cywin problem but this isn't a GUI issue either.  Something very strange is going on.

Here is a test vb script to control Excel using the wscript engine (c:/Windows/System32/wscript.exe).  This vb script simply starts Excel, opens a .csv file (c:\Shared\Prospect\Bin\test.csv), and terminates:

	Dim xlApp
	Dim xlWb

	Set xlApp = CreateObject("Excel.application")
	xlApp.Visible = True
	Set xlWb = xlApp.workbooks.Open("c:\Shared\Prospect\Bin\test.csv")
	xlApp.Quit
	Set xlWb = Nothing
	Set xlApp = Nothing

Here is the cron job to run this vb script:

	c:/Windows/System32/wscript.exe "c:\cygwin64\home\Upar2\bin\testExcel.vbs"

When this cron job is run, it hangs with Excel running (and doing nothing).

However, if the line that opens the .csv file is removed from this script:
	Set xlWb = xlApp.workbooks.Open("c:\Shared\Prospect\Bin\test.csv")
Then the script runs successfully.  That shows the cron job is running successfully for this trivial Excel program that simply starts Excel and terminates Excel.

This suggests there is a permission issue with opening the test.csv file but that isn't the case.  A cron job was run to simply cat the test.csv file and this works:

	cat  c:/Shared/Prospect/Bin/test.csv  >$HOME/cat.out

Finally, as was previously suggested, this script was executed using the runas command and that works successfully:

	runas  /user:<PC name>\Upar2  "c:\Windows\System32\wscript.exe  c:\cygwin64\home\Upar2\bin\testExcel.vbs"

A variation of this Excel script was created to create a new workbook (xlApp.Workbooks.Add) and save the workbook as a .xls file.  This also results in Excel hanging when run as a cron job.

So it appears the Excel script runs successfully as a cron job as long as no file operation (read or write) is performed which, of course, means no useful Excel script can be run.

Any ideas?

Denis

-----Original Message-----
From: Andrey Repin [mailto:anrdaemon@yandex.ru] 
Sent: Sunday, December 21, 2014 6:03 PM
To: Kertz, Denis (D)** CTR **; cygwin@cygwin.com
Subject: [SPAM?] Re: Can't Run Excel From A Cron Job Under Windows 7

Greetings, Kertz, Denis (D)** CTR **!

> I am trying to port a cygwin application that uses cron from a WinXP PC to
> a Win7 Pro PC and I find some cron jobs won't run.  Specifically, I need to
> run an Excel program from a cron job and this doesn't work on my Win7 PC.

For posterity:
Turned out, this has nothing to do with cygwin (predictable), and actually has
to do with how Windows (Vista+) manage services (namely: lack of access to any
GUI, unless you create one for yourself).

The issue has been discussed, for example, at serverfault.com[1] and relevant
MSDN article is [2].
The solution could be to create a stub application, which will make all
necessary calls and then launch your GUI application in prepared environment.

[1] http://serverfault.com/questions/101671/scheduled-tasks-w-gui-issue
[2] http://msdn.microsoft.com/en-us/library/ms687105(VS.85).aspx

> In order to run an Excel program from cygwin I have this run.excel bash
> script with an embedded VB script that executes an Excel program:

>         excel=$1
>         vbscript=/usr/tmp/$$.vbs
>         cat <<-! >$vbscript
>                         Dim xlApp
>                         Set xlApp = CreateObject("Excel.application")
>                         Set xlWb = xlApp.workbooks.Open("$excel")
>                         xlApp.Quit
>                         Set xlWb = Nothing
>                         Set xlApp = Nothing
>         !
>         chmod 777  $vbscript
>         c:/Windows/System32/wscript.exe  'c:\cygwin64\usr\tmp\$$.vbs'

> An excel program is run like this:

>         run.excel  'c:\Shared\Bin\Create_Daily_Scorecard.xls'

> When I run an Excel program interactively with this run.excel script it
> runs just fine but when I run it via a cron job Excel just hangs.  When
> Excel hangs I can look at the processes running on the PC using the Windows
> Task Manager and I don't see the EXCEL.EXE process.  But when I check the
> option to show processes from all users I see the hung EXCEL.EXE process,
> AND the user name displayed is my login.  So I am running this under the
> Upar2 login and Task Manager doesn't display EXCEL.EXE as a Upar2 process
> but when I check 'Show processes from all users' it shows EXCEL.EXE running
> under user name Upar2 - a contradiction.

> What I suspect is happening is Excel is attempting to do something that
> requires Upar2 permission but it isn't really running as Upar2 so Excel
> displays some error message and is waiting for the user to respond.  But
> Excel is running invisibly so this can't be seen.

> I also suspect this Upar2 "confusion" isn't limited to running an Excel
> program.  I can run a cron job with regular UNIX commands (cut, sort, etc)
> and see they are running with the ps command.  But when I try to kill them
> (kill -9) I get permission denied.  If I want to kill a process running via
> the cron I have to start cygwin with 'Run as administrator' and then I can
> kill processes running under the cron.

> So, does anyone know what's going on here and what I need to do get these
> cron jobs running.  As I noted at the beginning this is being ported from
> WinXP, where all this works fine, to Win7.

> I set up cron using cron-config like this:

> $ cron-config
> Do you want to install the cron daemon as a service? (yes/no) yes
> Enter the value of CYGWIN for the daemon: [ ]

> Do you want the cron daemon to run as yourself? (yes/no) yes

> Please enter the password for user 'Upar2':
> Reenter:
> Running cron_diagnose ...
> ... no problem found.

> Do you want to start the cron daemon as a service now? (yes/no) yes
> OK. The cron daemon is now running.

> Denis


--
WBR,
Andrey Repin (anrdaemon@yandex.ru) 22.12.2014, <02:37>

Sorry for my terrible english...


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]