views:

96

answers:

1

Is there a simple, quick, non-invasive windows admin task that can be performed from a java process to validate if the current process is running as administrator?

I know we could run batch commands to check if current user is member of administrator group. But there are complications of portability across Vista etc.

A simple example would be:

echo. 2> %SYSTEMROOT%\EmptyFile.txt

However, this is invasive. We dont want to create files

Any other option?

+1  A: 

In general, you may find it a better choice to check for a specific permission rather than implying permissions from role assignments. One reason for this is that in a domain environment you may have local administrators and domain administrators. They are not necessarily equivalent. Also, even an administrator's permissions can be altered or specific file/directory permissions be "tweaked" to, for example, deny access to "localmachine\administrators".

Checking for a specific permission guarantees that, given specific user credentials, that user can or cannot perform some action, regardless of what roles they might be assigned to.

I know that doesn't answer your question, but it may help shed some light on the problem of assuming permissions from roles.

JMD