日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
createprocessasuser怎么使用
CreateProcessAsUser是一個(gè)Windows API函數(shù),用于創(chuàng)建一個(gè)新的進(jìn)程及其主線程。新進(jìn)程然后執(zhí)行指定的可執(zhí)行文件。該CreateProcessAsUser功能類似的CreateProcess函數(shù),除了新進(jìn)程運(yùn)行在由hToken參數(shù)表示的用戶的安全上下文中 。

技術(shù)介紹

CreateProcessAsUser是一個(gè)Windows API函數(shù),用于在指定用戶上下文中創(chuàng)建一個(gè)新的進(jìn)程,這個(gè)函數(shù)的原型如下:

為綠園等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及綠園網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、綠園網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

BOOL CreateProcessAsUser(
  HANDLE hToken,
  LPSECURITY_ATTRIBUTES lpSecurityAttrs,
  LPWSTR lpApplicationName,
  LPWSTR lpCommandLine,
  LPSECURITY_ATTRIBUTES lpProcessAttributes,
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  BOOL bInheritHandles,
  DWORD dwCreationFlags,
  LPVOID lpEnvironment,
  LPCSTR lpCurrentDirectory,
  LPSTARTUPINFOW lpStartupInfo,
  LPPROCESS_INFORMATION lpProcessInformation
);

參數(shù)說明:

hToken:目標(biāo)用戶的令牌,可以通過OpenProcessToken函數(shù)獲取。

lpSecurityAttrs:新進(jìn)程的安全屬性,可以設(shè)置為NULL。

lpApplicationName:要執(zhí)行的程序的名稱。

lpCommandLine:要執(zhí)行的程序的命令行參數(shù)。

lpProcessAttributes:新進(jìn)程的環(huán)境屬性,可以設(shè)置為NULL。

lpThreadAttributes:新進(jìn)程的主線程的安全屬性,可以設(shè)置為NULL。

bInheritHandles:是否繼承句柄,如果為TRUE,則新進(jìn)程將繼承父進(jìn)程的所有句柄;如果為FALSE,則新進(jìn)程將不繼承任何句柄。

dwCreationFlags:創(chuàng)建標(biāo)志,可以設(shè)置為0或CREATE_NEW_CONSOLE,表示創(chuàng)建一個(gè)新的控制臺(tái)窗口。

lpEnvironment:新進(jìn)程的環(huán)境變量,可以設(shè)置為NULL。

lpCurrentDirectory:新進(jìn)程的當(dāng)前目錄,可以設(shè)置為NULL。

lpStartupInfo:啟動(dòng)信息結(jié)構(gòu)體,包含新進(jìn)程的窗口樣式、大小、位置等信息。

lpProcessInformation:指向一個(gè)PROCESS_INFORMATION結(jié)構(gòu)體的指針,用于接收新進(jìn)程的信息。

使用方法示例

以下是一個(gè)使用CreateProcessAsUser函數(shù)創(chuàng)建一個(gè)新進(jìn)程的示例:

include 
include 
include 
BOOL CreateProcessAsUser(HANDLE hToken, LPCWSTR lpApplicationName)
{
    STARTUPINFOW si;
    PROCESS_INFORMATION pi;
    memset(&si, 0, sizeof(si));
    memset(&pi, 0, sizeof(pi));
    si.cb = sizeof(si);
    if (!CreateProcessAsUser(hToken, NULL, L"C:\Windows\System32
otepad.exe", NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi))
    {
        printf("CreateProcessAsUser failed (%d). Error: %lu
", GetLastError(), GetLastError());
        return FALSE;
    }
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    return TRUE;
}

在這個(gè)示例中,我們使用CreateProcessAsUser函數(shù)以管理員權(quán)限運(yùn)行記事本程序,首先調(diào)用OpenProcessToken函數(shù)獲取管理員權(quán)限的令牌,然后調(diào)用CreateProcessAsUser函數(shù)創(chuàng)建新的進(jìn)程,最后等待新進(jìn)程結(jié)束并關(guān)閉相關(guān)句柄。

相關(guān)問題與解答

1、如何獲取其他用戶的令牌?可以使用OpenProcessToken函數(shù),傳入目標(biāo)進(jìn)程的句柄即可獲取該進(jìn)程的用戶令牌,示例代碼如下:

HANDLE hTargetProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetProcessId); // 以目標(biāo)進(jìn)程的所有權(quán)限打開進(jìn)程句柄
HANDLE hToken = NULL; // 初始化令牌句柄為NULL
if (GetTokenInformation(hTargetProcess, TokenUser, &hToken, sizeof(hToken), TokenUser)) // 如果獲取成功,將令牌句柄賦值給hToken變量
{
    TOKEN_USER tokenUser; // 定義TOKEN_USER結(jié)構(gòu)體變量tokenUser,用于接收令牌信息
    memset(&tokenUser, 0, sizeof(tokenUser)); // 將tokenUser結(jié)構(gòu)體的內(nèi)存清零
    if (GetTokenInformation(hToken, TokenUser, &tokenUser, sizeof(tokenUser), TokenUser)) // 如果獲取成功,將令牌信息賦值給tokenUser變量
    {
        HANDLE hNewToken = tokenUser.AuthenticationId; // 將新令牌句柄賦值給hNewToken變量
        // 此時(shí)hNewToken即為其他用戶的令牌句柄,可以用于調(diào)用CreateProcessAsUser函數(shù)創(chuàng)建新進(jìn)程。
    }
}
CloseHandle(hTargetProcess); // 關(guān)閉目標(biāo)進(jìn)程句柄和令牌句柄(如果有)

2、為什么需要使用CreateProcessAsUser而不是直接使用CreateProcess?直接使用CreateProcess無法指定運(yùn)行程序的用戶身份,而CreateProcessAsUser函數(shù)可以在指定用戶上下文中創(chuàng)建新的進(jìn)程,從而實(shí)現(xiàn)對(duì)程序運(yùn)行用戶身份的控制,在服務(wù)器端應(yīng)用程序中,可以將某些敏感操作委托給本地用戶來執(zhí)行,提高系統(tǒng)的安全性。
標(biāo)題名稱:createprocessasuser怎么使用
文章出自:http://www.5511xx.com/article/cdcedho.html