是否可以使用不同的用戶帳戶在Windows上創建新的進程?我知道有一個上下文菜單「運行方式」,但我想從Java做起。我有用戶名和密碼。如何使用Windows上的其他用戶帳戶創建新進程?
11
A
回答
6
您需要編寫一個使用Java Native Interface (JNI)的DLL,因爲您無法使用純Java代碼執行此操作。
DLL本身需要調用CreateProcessAsUser函數來在另一個用戶的上下文中創建一個進程。要成功創建該進程,您需要爲函數提供訪問令牌,該令牌本身通過調用LogonUser函數(它需要用戶名和密碼來驗證其他用戶)來創建。
4
有一個名爲「runas.exe」的程序。您可以運行該流程併爲您的流程和用戶名/密碼提供適當的參數。我認爲這是最簡單的方法。
0
RUNAS擁有「/ savecred」開關,可讓您只在第一次輸入憑證。一個潛在的問題是,當/ SaveCred保存憑證時,只要RUNAS調用該用戶帳戶,就會將其保存。這可能是一個巨大的安全風險,所以要小心使用它!
1
根據您的需求在Win32 API 「CreateProcessWithLogonW」 更容易比 「CreateProcessAsUser/LogonUser的」 功能使用。
從MSDN文檔:
The CreateProcessWithLogonW and CreateProcessWithTokenW functions are similar to the CreateProcessAsUser function, except that the caller does not need to call the LogonUser function to authenticate the user and get a token
2
我對面的替代runas.exe程序調用MiniRunAs將於密碼在命令行中運行 - http://www.source-code.biz/snippets/c/1.htm
如果你能夠安裝它與您的應用程序一起,可能比編寫JNI DLL更簡單。
相關問題
- 1. 如何使用遠程PowerShell創建本地Windows用戶帳戶?
- 2. 使用java創建Windows用戶帳戶
- 3. 如何使用servlet創建新帳戶
- 4. Firebase:允許用戶爲其他用戶創建帳戶。
- 5. 使用Drupal遠程創建新帳戶
- 6. 如何使用Google文檔API創建新的用戶帳戶?
- 7. 允許用戶在一臺設備上創建帳戶並在其他設備上使用該帳戶
- 8. 如何註銷一個Github帳戶並使用其他帳戶?
- 9. Django:創建新的用戶帳戶
- 10. 如何將Windows Azure帳戶委託給其他Live ID帳戶
- 11. 如何強制新用戶在MediaWiki wiki上創建新帳戶時填寫他們的用戶:頁面?
- 12. 如何創建Firebase用戶帳戶
- 13. 使用Rails創建FTP用戶帳戶
- 14. 使用SimpleMembershipProvider創建用戶帳戶
- 15. 使用bootstrap.css樣式創建新帳戶
- 16. 其他用戶帳戶的Rails link_to
- 17. 如何使用java創建Facebook帳戶
- 18. C#我如何使用WMI在遠程計算機上創建用戶帳戶
- 19. xmpppy創建用戶帳戶
- 20. 創建Vista用戶帳戶
- 21. 在Windows中使用Java創建「用戶帳戶」界面
- 22. 使用Unity3D在Parse上創建帳戶
- 23. 如何限制用戶帳戶密碼創建帳戶?
- 24. 如何在arangodb中創建新的用戶帳戶?
- 25. Facebook使用iOS帳戶中的其他帳戶登錄
- 26. VB.net使用UserPrincipalEx創建新的AD用戶帳戶?
- 27. 當其他用戶進行更改時刷新Windows程序?
- 28. 在安裝過程中創建一個新的用戶帳戶
- 29. Windows帳戶和進程利用
- 30. 如何使用Google Oauth2登錄用戶並在Rails應用程序中創建新的用戶帳戶?
不錯的想法,但這不起作用,因爲你無法將密碼傳遞給runas.exe。密碼必須由用戶輸入。如果重定向進程輸入,runas會以錯誤結束。 – Horcrux7 2008-12-15 13:42:48