ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA, Impersonating other user (https://www.excelbanter.com/excel-programming/295753-vba-impersonating-other-user.html)

Sauron[_14_]

VBA, Impersonating other user
 
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

--
Message posted from http://www.ExcelForum.com


Sauron[_15_]

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

Cheers,
Sa

--
Message posted from http://www.ExcelForum.com


Rob Bovey

VBA, Impersonating other user
 
"Sauron " wrote in message
...
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/de...pi_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 *




Sauron[_16_]

VBA, Impersonating other user
 
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

--
Message posted from http://www.ExcelForum.com



All times are GMT +1. The time now is 10:03 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com