以不同的Windows使用者權限來執行程式

以不同的Windows使用者權限來執行程式

在Windows下如何以不同的使用者權限來執行程式呢?

解決方案1:

用 Shell 呼叫 RunAS 登錄權限後下命令 ..

OS 為 NT , Win2K , XP 跟 Win2003 都具有 RunAS 命令

Runas 可讓使用者用與此使用者目前登入所提供的不同使用權限,來執行特定的工具及程式。

runas 可讓系統管理員使用有限權限的帳戶來執行一般、非系統管理工作,

而只有在執行特定的系統管理工作時才使用使用權限較寬的帳戶。

若要完成工作,而又不想登出再重新登入,可用一般使用者帳戶登入,

並使用 runas 指令來執行需要使用權限較寬的工作。

runas [/profile] [/env] [/netonly] /user:UserAccountName program

參數

/profile 指定使用者設定檔的名稱 (如果需要載入它)。

/env 指定使用目前的網路環境,而非使用者本機環境。

/netonly 指出所指定的使用者資訊僅供遠端存取使用。

/user:UserAccountName 指定用來執行程式的使用者帳戶名稱。

使用者帳戶格式應為 user@domain 或 domain\user。

program 指定使用 /user 中所指定之帳戶來執行的程式或指令

================================================================

解決方案2:

呼叫以下 API 來登錄使用者權限並執行程式 (建立行程)

Private Declare Function CreateProcessWithLogon Lib "Advapi32" _

Alias "CreateProcessWithLogonW" _

(ByVal lpUsername As Long, _

ByVal lpDomain As Long, _

ByVal lpPassword As Long, _

ByVal dwLogonFlags As Long, _

ByVal lpApplicationName As Long, _

ByVal lpCommandLine As Long, _

ByVal dwCreationFlags As Long, _

ByVal lpEnvironment As Long, _

ByVal lpCurrentDirectory As Long, _

lpStartupInfo As STARTUPINFO, _

lpProcessInfo As PROCESS_INFORMATION) As Long