On Mar 26, 2013, at 4:07 PM, André Warnier wrote:

Patrick Flaherty wrote:
On Mar 25, 2013, at 1:15 PM, Howard W. Smith, Jr. wrote:
On Mon, Mar 25, 2013 at 11:14 AM, Patrick Flaherty
<pflah...@rampageinc.com>wrote:

Update: If I'm login interactively (meaning machine boots and I login and get my desktop) and that interactive account matches the service login
account
then "net use" from within the service does return all mapped drives.


I expected as much. It seems as though you cannot get away from the
requirement of having to login 'first'...to get everything working as
designed/expected in your app.

Excuse me, if I missed the business requirement specification (earlier in this conversation), but is the requirement only to get a list of mapped drives for 'your' user login or any enduser that logs into the production
server/client/PC/machine?

can you add the list of network drives to a database table, and maintain the database table and retrieve the list from that database table via the
tomcat-app-running-as-service?

if you only need a list of mapped network drives for your user login, can you just maintain a 'file' that has this list on the target/ production server, and whenever it changes, can you update the file, and make the topcat-app-running-as-service to always read the file instead of having to
call 'net use'?

IMHO and FWIW, i would never go with the approach of relying on a windows 'command line' to do this/that for me. yes, in my app, i allow endusers to update files/documents, and the app saves the files/documents to a certain folder on the server, and my app will list those files on a web page, and they can view/download those files from/via the web app... all that is done via java instead of doing a 'cmd.exe dir'. i'm new to java, always wanted
to be java developer, and loving what i can do with java. i'm almost
getting to the point, where my days of a 'windows user' are done... one
day, i hope to migrate to linux for target server instead of windows
server. :)
This is what I see. If my service logs in as "service-user" and I login normally to my desktop as "dt-user". I call "net use" from my service and get an empty list. Now I logout as "dt-user"and login as "service-user" and I mapped 4 drives and only 2 of the drives are mapped persisted (i.e. reconnect at logon). I logout as "service-user" and now I have my app call "net use" programatically and it returns the 2 drives that were mapped with persistence. Conclusion: Whatever drives are mapped persisted when logged in as the user the service logs in as, then your app can call "net use" and get those drives returned from "net use" even if your logged in as "dt-user" OR nobody
is logged in at all !!!!
Maybe someone can confirm my finding, but this is what I see.

Hi Patrick.
Basically, what Jeffrey and I are trying to tell you :
- we are not saying that your observations above are incorrect, in the context in which you are making them - but it seems to us that the way you are going about this, is not the right way to make your application portable to other systems or Windows versions, because it seems to rely on things that may be particular to one or the other Windows version or circumstance.
In other words, it makes your application "fragile".

The point is : when you login interactively to a Windows computer as "user-1", or when you run a Service which logs-in to that computer as the same "user-1", the environment in each case is *different* in many ways. It may be that under one or more particular versions of Windows, when comparing certain particular aspects (like prior drive mappings), you cannot see a difference. But differences there are, and they may show up on another version of Windows that you have not tried yet, or maybe with the same version somewhere else which has other "network policies" or "security policies" than the ones you are testing under right now.

If you totally control your environment, notice that something is working and are happy with that because you are never going to use this anywhere else, then that's fine, keep doing it and don't spend more time figuring out what may be or not portable somewhere else.

But if you want to make something portable, then you have to take into account that, for example, the host on which your app may be running one day, will not allow you to login interactively ahead of time to make drive mappings for the service's user-id. For example, because the sysadmins have decided that anything that runs as a service needs a special "service account" (which, contrarily to all the others has a password that never runs out e.g.); but on the other hand, according to their organisation's rules, a service account can *not* be used to login interactively anywhere. And since this rule already applies to the 10,000 workstations and servers of that organisation, they are not going to change it just for you.

And I believe that now, we are really far from any topic that relates to the Tomcat-specific help that is the point of this mailing list.
Hi Andre,

You are absolutely right. This is not 100% guaranteed to be future proof. The cases you layout are enlightening. I'm not sure we will go this route with all the potential pitfalls we could hit in the future. We are rethinking this now.

Thanks again.
Pat




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to