On 2023-01-26 19:43, Ross Patterson via Cygwin wrote:
TL;DR: I needed to run a Cygwin process at user log on with highest
privileges to perform some operations that are not allowed any other
way without requiring a UAC prompt.  This results in a window without
any border, close button or any other decoration that is most often
invisible/transparent, sometimes opaque white, and most rarely with
black unusable left/bottom scroll bars.  The window is always on top,
accepts no inputs at all, and blocks input to windows below.  The only
way to get rid of the windows is to kill the scheduled task process or
trigger a UAC prompt.  More details below.

It seems like this probably is a bug, so feel free to consider this a
bug report, but I'm mostly writing this up so others can find it and
my workarounds and hopefully save them some hassle and I probably
won't be doing much followup.  Both the edge cases and observed
results are numerous and each test iteration is time consuming, but
I've done my best to get as complete coverage as I could and to
tightly control conditions for reliable results.

There are a few things I want to do through Cygwin that require
privileges that cannot be attained through a service or a scheduled
task with an "At startup" trigger.  The only way I've found to run the
process with the required privileges without a UAC prompt and without
disabling UAC completely is a scheduled task with these settings:

1. "General" tab: "Run only when user is logged on" = SELECTED
2. "General" tab: "Run with highest priveleges" = CHECKED
3. "Triggers" tab: Add an "At log on" trigger for a "Specific user"

As such I've not tested this behavior with different settings on the
"General" tab.

I use scheduled tasks with actions running scripts from /usr/local/bin/ under dash (or bash if required) native path with WD /var/log/ native path e.g.

%CYGWIN_ROOT%\bin\dash /usr/local/bin/....sh WD %CYGWIN_ROOT%\var\log

with various options (mainly user SYSTEM, logged in or not, highest privileges), and triggers.

I never see any windows appearing as the scripts log everything under /var/log/.

The scripts run as tasks start and stop Cygwin services, init and run smart reporting, clean up cron job remnants before smart reporting, terminate all processes before running setup.

For normal scripts and schedules, I use cron job commands or scripts which log everything under /var/log/.

--
Take care. Thanks, Brian Inglis                 Calgary, Alberta, Canada

La perfection est atteinte                      Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter     not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer        but when there is no more to cut
                        -- Antoine de Saint-Exupéry

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

Reply via email to