共用方式為


LoadUserProfileA 函式 (userenv.h)

載入指定的使用者配置檔。 設定檔案可以是 本機使用者設定檔漫遊使用者設定檔

語法

USERENVAPI BOOL LoadUserProfileA(
  [in]      HANDLE         hToken,
  [in, out] LPPROFILEINFOA lpProfileInfo
);

參數

[in] hToken

類型:HANDLE

使用者令牌,由 LogonUserCreateRestrictedTokenDuplicateTokenOpenProcessTokenOpenThreadToken 函式所傳回。 令牌必須具有 TOKEN_QUERYTOKEN_IMPERSONATETOKEN_DUPLICATE 存取權。 如需詳細資訊,請參閱 Access-Token 物件的存取權限

[in, out] lpProfileInfo

類型:LPPROFILEINFO

PROFILEINFO 結構的指標。 LoadUserProfile 失敗,如果結構的 dwSize 成員未設定為 sizeof(PROFILEINFO),或如果 lpUserName 成員 NULL,就會傳回 ERROR_INVALID_PARAMETER。 如需詳細資訊,請參閱。

傳回值

類型:BOOL

如果成功,TRUE;否則,FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

如果 lpProfileInfodwSize 成員未設定為 sizeof(PROFILEINFO),或如果 lpUserName 成員 NULL,則函式會失敗並傳回ERROR_INVALID_PARAMETER。

言論

當使用者以互動方式登入時,系統會自動載入使用者的配置檔。 如果服務或應用程式模擬使用者,系統就不會載入使用者的配置檔。 因此,服務或應用程式應該使用 LoadUserProfile載入使用者的配置檔。

呼叫 LoadUserProfile 的服務與應用程式應該檢查使用者是否有漫遊配置檔。 如果使用者具有漫遊設定檔,請將其路徑指定為 lpProfilePathPROFILEINFO 成員。 若要擷取使用者的漫遊配置檔路徑,您可以呼叫 NetUserGetInfo 函式,並指定資訊層級 3 或 4。

成功傳回時,PROFILEINFOhProfile 成員是已開啟至使用者 hive 根目錄的登錄機碼句柄。 它已以完整存取權開啟(KEY_ALL_ACCESS)。 如果模擬使用者的服務需要讀取或寫入使用者的登入檔,請使用此句柄,而不是 HKEY_CURRENT_USER。 請勿關閉 hProfile 句柄。 請改為將它傳遞給 UnloadUserProfile 函式。 此函式會關閉句柄。 您應該確定使用者登入區中金鑰的所有句柄都已關閉。 如果您未關閉所有開啟的登錄句柄,則使用者配置檔無法卸除。 如需詳細資訊,請參閱 登錄機碼安全性和訪問許可權登錄區

請注意,在 呼叫 createProcessAsUser之前,您必須使用 LoadUserProfile 函式,將使用者的登錄區載入 HKEY_USERS 登錄機碼。 這是因為 createProcessAsUser 不會將指定的使用者配置檔載入至 HKEY_USERS。 這表示存取 HKEY_CURRENT_USER 登錄機碼中的資訊可能不會產生與一般互動式登錄一致的結果。

呼叫進程必須具有 SE_RESTORE_NAMESE_BACKUP_NAME 許可權。 如需詳細資訊,請參閱 以特殊許可權執行

從 Windows XP Service Pack 2 (SP2) 和 Windows Server 2003 開始,呼叫端必須是系統管理員或 LocalSystem 帳戶。 呼叫端只模擬系統管理員或LocalSystem帳戶是不夠的。

注意

userenv.h 標頭會根據 UNICODE 預處理器常數的定義,將 LoadUserProfile 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 userenv.h
連結庫 Userenv.lib
DLL Userenv.dll

另請參閱

PROFILEINFO

UnloadUserProfile

使用者配置檔概觀

使用者配置檔參考