2012-04-23 26 views
2

我試圖運行一個使用process.start()作爲具有管理權限的另一個用戶的vb腳本,但我總是得到帶有用戶名和密碼的UAC彈出窗口填。我做錯了什麼?以process.start身份運行vbs作爲避免UAC的另一個用戶

var scriptProc = new Process 
        { 
         StartInfo = 
          { 
           FileName = @"cscript, 
           WorkingDirectory = @"\\AShare\AFolder", 
           Arguments = "\"" + "Install.vbs" + "\"", 
           UseShellExecute = false, 
           WindowStyle = ProcessWindowStyle.Hidden, 
           Domain = domain, 
           UserName = username, //Admin username 
           Password = MakeSecureString(secureString), 
          } 
        }; 
scriptProc.Start(); 

我想讓UAC彈出yes和no選項,而不是用戶名和密碼填寫選項。

試着看着:How to call a VBScript file in a C# application?但這並沒有幫助。

+0

這聞起來像一個病毒。這個是來做什麼的? – SimpleVar 2012-04-23 07:40:44

+0

我正在開發一些應用程序,因此當您點擊一個圖標時,它會根據您點擊哪個圖標從本地服務器安裝程序,並使用我的IT服務團隊提供的用戶名和密碼。這裏沒有製作病毒:)我在UAC彈出窗口沒有顯示之前做了一些事情,然後我在startInfo中改變了一些東西,現在UAC彈出窗口顯示x | – 2012-04-23 07:56:13

+0

UAC將一直彈出執行需要提升的事項的程序。故事結局。 – SimpleVar 2012-04-23 08:00:00

回答

3

在Windows 7中甚至管理員帳戶運行標準用戶權限,你沒有做錯什麼。看看這個TechNet article by Mark Russinovich

從上面的文章。

啓用UAC後,所有用戶帳戶(包括管理帳戶)都將以標準用戶權限運行。這意味着應用程序開發人員必須考慮他們的軟件默認沒有管理權限的事實。這應該提醒他們設計他們的應用程序以使用標準用戶權限。如果應用程序或其部分功能需要管理權限,則可以利用提升機制來使用戶解鎖該功能。


編輯: 你所談論的是用戶模擬:

你可以看一些這些文章

  1. WindowsIndentity Class
  2. http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User
  3. http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C
  4. Windows Impersonation from C#
  5. http://support.microsoft.com/default.aspx?scid=kb;en-us;Q306158
  6. http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic62740.aspx
+0

我試過#2文章,它的工作就像我想:)非常感謝! – 2012-04-23 13:04:44

相關問題