从C#Windows应用程序运行VBS返回ActiveX对象的vbs脚本错误

时间:2016-12-13 22:22:45

标签: c# vbscript

我有一个vbs脚本,它可以自行运行或通过批处理文件运行。但是,当我在我的控制台演示应用程序中触发相同的脚本时,我收到一个关于无法创建“无法创建ActiveX组件”的vbs脚本错误。

控制台中的代码:

{
        Console.WriteLine("Triggering VBS Script");
        var cmd = @"C:\Users\ehubba\Desktop\ClientHealth\SCCMClientActionCount.vbs";

        var process = new Process
        {
            StartInfo = new ProcessStartInfo
            {
                Arguments = cmd,
                FileName = @"cscript",
                CreateNoWindow = true,
                UseShellExecute = false,
                Verb = "runas",
                WindowStyle = ProcessWindowStyle.Normal
            }
        };

        try
        {
            process.Start();
            process.WaitForExit();
            System.Console.WriteLine(process.ExitCode);
            process.Close();
        }
        catch (Exception ex)
        {
            System.Console.WriteLine(ex.ToString());
        }

        Console.ReadKey();}

注意:我尝试过不同的StartInfo变种(工作目录,文件名,参数等都会导致同样的错误)。

我在这里尝试的主要目标是运行一个vbs脚本,该脚本将记录SCCM客户端操作并返回退出代码中的值。

**更新VBS代码

    Dim ArrayAction
Dim cpApplet
Dim actions
Dim countAction
Dim action

Set cpApplet = CreateObject("CPAPPLET.CPAppletMgr")
Set actions = cpApplet.GetClientActions
If Err.Number = 0 Then
    countAction = 0 
    For Each action In actions      
        countAction = countAction + 1
    Next
End If
WScript.QUIT(countAction)

*更新2: 在Process.Start中的c#app中,如果我向StartInfo添加用户名和密码,它将起作用。我正在以自己的身份运行控制台,但是如果我没有将我的凭据输入Process.Start,它将会失败。有人可以解释一下,因为这不适合我。

0 个答案:

没有答案