我有一个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,它将会失败。有人可以解释一下,因为这不适合我。