以不同的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