2013-01-22 32 views
0

我需要將.NET Framework 4部署到從服務器運行的所有域用戶計算機。我創建了一個控制檯應用程序,該應用程序將從用戶登錄到域時啓動的登錄腳本自動運行。爲跨域的.NET Framework靜默安裝創建解析應用程序?

我現有的代碼可以鏈接到位於服務器上的安裝文件並自動運行。但是我無法在安靜模式下運行它,即使用/ q。每次運行安裝文件時,都會要求用戶提示安裝,即「點擊下一步」和「安裝」。

我當前的代碼看起來像這樣(我已經改變了的登錄信息和文件路徑出於安全原因,但該文件位於服務器上的登錄信息是主要的管理員帳戶。) -

Function ConvertToSecureString(ByVal str As String) 
    Dim password As New SecureString 
    For Each c As Char In str.ToCharArray 
     password.AppendChar(c) 
    Next 
    Return password 
End Function 

Sub Main() 
    Dim securePass As New Security.SecureString() 
    Dim password As SecureString = ConvertToSecureString("password") 
    Dim myProcess As New Process() 

    myProcess.StartInfo.Arguments = "/q" 
    myProcess.Start("C:\dotNetFx40_Full_x86_x64.exe", "user", password, Nothing) 
    myProcess.StartInfo.CreateNoWindow = True 
End Sub 

根據我對研究的理解,行:myProcess.StartInfo.Arguments = "/q"是爲了在沒有用戶提示的情況下在後臺靜靜地運行安裝。但它不起作用。

非常感謝任何反饋

格雷格

+0

您確定您的應用程序以管理員身份運行嗎? –

+0

這不是WSUS或組策略的工作嗎?很確定這是一個官方的WSUS包。您是否閱讀過[管理員的.NET Framework部署指南](http://msdn.microsoft.com/library/ee390831(v = VS.100).aspx) –

+0

嗨馬特,是的應用程序是definatley作爲管理員運行。那就是爲什麼我用用戶名,密碼和域名開始這個過程。 –

回答

0

設法解決它,使周圍的工作。我只是放錯了行myProcess.StartInfo.Arguments = "/q" 相反,我只是將其納入Process.Start行,並擺脫了過程對象。所以現在我有:

Process.Start("C:\dotNetFx40_Full_x86_x64.exe", "/passive", "user", password, Nothing) 

我已經改變了「/ passive」的「/ q」,因爲它顯示了一個完成進度條。

無論如何感謝您的意見。

Greg

相關問題