0

我需要将 .NET 框架 4 部署到从服务器运行的所有域用户计算机。我创建了一个控制台应用程序,它将从用户登录到域时启动的登录脚本自动运行。

我拥有的当前代码能够链接到位于服务器上的安装文件并自动运行它。但是我无法在安静模式下运行它,即使用/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"意味着在没有用户提示的情况下在后台静默运行安装。但是它不起作用。

4

1 回答 1

0

设法修复它并解决问题。我只是放错了行myProcess.StartInfo.Arguments = "/q" 相反,我只是将其包含在 Process.Start 行中并摆脱了 Process Object。所以现在我有:

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

我已经为“/passive”更改了“/q”,因为它显示了一个完成进度条。

无论如何感谢您的建议。

格雷格

于 2013-01-22T14:38:43.110 回答