From e2250072a2dd5bab1c0fab3bd29f85e28eef6b43 Mon Sep 17 00:00:00 2001 From: Kapil Chouhan Date: Tue, 3 Nov 2020 11:46:30 +0000 Subject: Load a user's profile, before retrieves the environment variables Signed-off-by: Kapil Chouhan --- lib/mixlib/shellout/windows/core_ext.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/mixlib/shellout/windows/core_ext.rb b/lib/mixlib/shellout/windows/core_ext.rb index b651df0..2cd0893 100644 --- a/lib/mixlib/shellout/windows/core_ext.rb +++ b/lib/mixlib/shellout/windows/core_ext.rb @@ -186,6 +186,14 @@ module Process logon, passwd, domain = format_creds_from_hash(hash) logon_type = hash["elevated"] ? LOGON32_LOGON_BATCH : LOGON32_LOGON_INTERACTIVE token = logon_user(logon, domain, passwd, logon_type) + logon_ptr = FFI::MemoryPointer.from_string(logon) + profile = PROFILEINFO.new.tap do |dat| + dat[:dwSize] = dat.size + dat[:dwFlags] = 1 + dat[:lpUserName] = logon_ptr + end + + load_user_profile(token, profile.pointer) env_list = retrieve_environment_variables(token) end -- cgit v1.2.1