【问题标题】:Stsrt .exe installer on Domain Computers WMI process域计算机 WMI 进程上的 Stsrt .exe 安装程序
【发布时间】:2017-11-02 09:17:12
【问题描述】:

我正在处理一个 Windows VB.net 表单,该表单正在检查域计算机中是否存在防病毒软件。如果缺少它,应用程序会将安装程序复制到域计算机本地 C:\ 驱动器。一切正常,但最后的难题是使用 WMI Win32_Process.Create 之类的东西将 .exe 安装程序作为后台进程调用。我的域计算机需要 .txt 文件中的软件,但我很难让这种方法发挥作用。我意识到 PowerShell 可能更适合于此,但这将用于 70 个不同的站点,这些站点的设置不一致。该应用程序允许轻松的用户交互(站点 IT 工程师),而不是他们调整脚本。任何有关实现此功能的最佳方法的建议将不胜感激。

到目前为止我所拥有的......

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles InstallButton.Click

    Dim PCsource As String = "C:\Path\Install.txt"
    Dim Check As String
    Dim strCommand As String = "Antivirus.exe"

    If System.IO.File.Exists(PCsource) = True Then
        Dim Computer As New System.IO.StreamReader(PCsource)
        Do While Computer.Peek() <> -1
            Check = Computer.ReadLine()


        Loop
    End If

End Sub

【问题讨论】:

    标签: vb.net network-programming wmi


    【解决方案1】:

    我有一个更新程序,它在下载必要的文件后会启动 exe 文件。它使用以下代码:

        Dim MyPath As String
        MyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase)
        Dim SoftwarePath As String = MyPath & "\Program.exe"
    
        If File.Exists(SoftwarePath) Then
            Process.Start(SoftwarePath, "")
    
            Application.Exit()
        End If
    

    【讨论】:

    • 谢谢 RussAwesome,问题是 Process.Start 似乎只能在本地机器上工作。应用程序需要在 .txt 文件中的所有网络域计算机上启动进程
    • 您可以使用Process.Start(@"\\Server-Name\Shared Folder\Program.exe");,因为@ 字符可以防止将`` 作为UNC 路径的一部分进行转义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    相关资源
    最近更新 更多