我已經搜索了很多關於如何將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