2013-01-22 28 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

相关问题