2011-04-16 30 views
1

我有一個基本要求 - 通過在出現提示時創建防火牆規則並在Windows防火牆打開的情況下在Windows上平穩地運行我的應用程序。爲在非管理員用戶帳戶中運行的進程創建防火牆規則

當我第一次運行我的應用程序時,以具有Admin權限的用戶身份登錄到我的系統時,防火牆出現提示,我通知它允許我的應用程序並創建一個規則,很好。

但是,當我打開我的電腦時,以非管理員用戶身份登錄,然後運行我的應用程序,防火牆就會按照預期顯示提示;但是當我點擊與Admin用戶相同的選項時,即使每次出現提示時單擊Allow/ok,防火牆提示仍會不斷彈出。當我點擊「取消/阻止」應用程序運行時,提示只會消失,這顯然不是我想要做的。

因此,在第一次點擊防火牆提示符以允許我的應用程序時,通過成功創建防火牆規則,我應該更改我的應用程序代碼以便順利運行,從而帶來百萬美元的問題;當我以具有管理員權限的用戶身份運行我的應用程序時,它的工作方式與此方式完全相同

我已經完成了我在網上搜索的一些內容,並瞭解到非管理員用戶無法修改防火牆規則(甚至不能創建它們)。順便說一下,我已經測試了這種情況在Windows XP,Vista 7的x86和x64上都有相同的結果。

如果有人遇到和/或解決類似問題,請分享您的知識。如果我錯過了一些東西,請讓我明白我缺少的東西。

感謝

回答

1

我不認爲你想什麼是可能的non-admin帳戶。您可以嘗試通過使用窗口runas功能創建一個新進程來獲得admin特權,以便提示用戶輸入管理員帳戶的usernamepassword,這將爲您的程序提供必要的訪問權限以創建防火牆規則你的程序。

您也可以查看CreateProcessAsUserLogOnUSer。基本上,爲了取得成功,您需要一個表示管理員帳戶或擁有管理員權限的帳戶的令牌。

+0

謝謝。我實際上正在調用CreateProcessAsUser,但仍然存在此問題。我會玩旗幟/參數,看看它的行爲。我不認爲我可以在我的場景中使用LogOnUser。 – aeon 2011-04-18 03:12:30

相關問題