我已经搜索了很多关于如何将VBS转换为C#和所有好东西的问题。
C#WMI权限
我遇到的问题是使用VBS代码(见下文)在远程计算机上执行进程时使用SYSTEM帐户运行该进程。当我用C#执行它时,它会运行我的凭据(或任何运行C#程序的人)。
VBS在获得远程安装时似乎更可靠,这是我需要的。
我想切换到C#,所以我可以为程序制作更友好的GUI。
任何人都知道如何让C#使用SYSTEM帐户运行WMI?
VBS代码:
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objScheduledJob = objWMIService.Get("Win32_ScheduledJob")
Set objSWbemDateTime = CreateObject("WbemScripting.SWbemDateTime")
'add the scheduled job to be run
objSWbemDateTime.SetVarDate(DateAdd(INTERVAL, MINUTES, Now()))
errReturn = objScheduledJob.Create(strCommand, objSWbemDateTime.Value, False, 0, 0, True, intJobID)
C#代码:
static public int RemoteAdmin(string remoteMachine, string runFile)
{
try
{
ManagementPath run = new ManagementPath(@"\\" + remoteMachine + @"\root\cimv2:Win32_process");
ManagementClass man = new ManagementClass(run);
man.InvokeMethod("Create", new Object[] { runFile });
return 0;
}
catch
{
MessageBox.Show("Error in remote execution");
return 1;
}
}
你看看ConnectionOptions类吗? – Roly