VBA, Impersonating other user

  • Thread starter Thread starter Sauron
  • Start date Start date
S

Sauron

Hi All!

My spreadsheet needs to modify certain registry values (DSN serve
paths) which when the users open the spreadsheet will write themselve
to the registry.

Unfortunately the users don't have rights to modify these registr
values themselves so I was wondering if anyone knew how to impersonat
another user in VBA? (have a domain admin account that I can use).

Please don't say I have to get off my chair and walk round (they ar
miles away!)

Cheers,
Sa
 
Would anyone know how to do this? There's about 50 users in all that I'
have to go round annoyingly...

Cheers,
Sa
 
Sauron > said:
Would anyone know how to do this? There's about 50 users in all that I'd
have to go round annoyingly...

Hi Sau,

VBA always runs within the security context of the currently logged in
user, so as far as I know there is no way to do this. You may be able to
accomplish this using WMI:

http://msdn.microsoft.com/library/d...ry/en-us/wmisdk/wmi/scripting_api_for_wmi.asp

However, I'm no expert on this so you'll be more likely to get a definitive
answer in one of the Windows groups,
microsoft.public.windows.server.scripting would seem like a good place to
start.

--
Rob Bovey, MCSE, MCSD, Excel MVP
Application Professionals
http://www.appspro.com/

* Please post all replies to this newsgroup *
* I delete all unsolicited e-mail responses *
 
Cheers Rob,

Thanks very much your a hero!

Found this based on your excellent advice;

Thanks Again,
Sau

Const LOGON_INTERACTIVE = 2
Const LOGON_NETWORK = 3
Const LOGON_BATCH = 4
Const LOGON_SERVICE = 5

Dim oNet
Set oNet = CreateObject("Wscript.Network")
MsgBox oNet.UserDomain & "\" & oNet.UserName

Dim impo
Set impo = CreateObject("sfImpersonator.Impostor")

'The dot in the third parameter is the domain name - "." means loca
domain
impo.Impersonate "UserName", "Password", ".", LOGON_INTERACTIVE
MsgBox oNet.UserDomain & "\" & oNet.UserName

impo.RevertToSelf
MsgBox oNet.UserDomain & "\" & oNet.UserNam
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top