Я искал многочисленные вопросы о том, как конвертировать VBS в C # и все такое хорошее.
Проблема, с которой я столкнулся, связана с кодом VBS (см. Ниже), когдапроцесс выполняется на удаленной машине, он запускается с учетной записью SYSTEM.
Когда я выполняю с C #, он запускается с моими учетными данными (или с кем бы то ни было, запускает программу C #).
VBS кажется более надежным в получении удаленных установокчтобы разобраться, для чего это мне нужно.
Я хотел переключиться на C #, чтобы я мог сделать более удобный графический интерфейс для программы.
Кто-нибудь знает, как заставить C # работатьWMI с учетной записью SYSTEM?
Код 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;
}
}