2012-01-25 70 views
1
ConnectionOptions connOptions = new ConnectionOptions(); 
connOptions.Username = _username; 
connOptions.Password = _password; 
connOptions.Impersonation = ImpersonationLevel.Impersonate; 
connOptions.Authentication = AuthenticationLevel.PacketPrivacy; 
connOptions.EnablePrivileges = true; 
ManagementScope manScope = new ManagementScope(_server, connOptions); 
manScope.Connect(); 
ObjectGetOptions objectGetOptions = new ObjectGetOptions(); 
ManagementPath managementPath = new ManagementPath("Win32_ScheduledJob"); 
ManagementClass processClass = new ManagementClass(manScope, managementPath, objectGetOptions); 

ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); 
inParams["Name"] = "TESTER"; 
inParams["Owner"] = "Tester"; 
inParams["Command"] = command; 
inParams["StartTime"] = "********171000.000000-300"; 

我打算連接到遠程系統來創建計劃任務。我可以創建計劃任務,但是它是使用用戶 - SYSTEM創建的。我希望它在我的用戶下創建。我試圖使用像「所有者」和「名稱」如屬性:C#WMI Win32_ScheduledJob屬性

inParams["Owner"] = ; 
inParams["Name"] = ; 

但他們拋出一個ManagementException「未找到」。有誰知道我能做到這一點,或者說可能是錯誤的,我在這裏做...

感謝

回答

0

創建具有Win32_ScheduledJob WMI類計劃作業相當於使用AT命令創建工作。 AT服務通常在Local \ System帳戶或NetworkService帳戶下運行。所以當你使用這個類時,你的工作是使用這些帳戶之一創建的,以獲取關於此主題的更多信息,您可以檢查備註的一部分MSDN documentation。瞭解。

+0

瞭解。謝謝。 是否有使用AT命令爲計劃任務添加名稱?或者,無論如何,我可以使用WMI在遠程系統上運行schtasks命令? – Ryez

+0

似乎我可以使用Win32_Process類在遠程計算機上運行命令行代碼。它可以運行schtasks,並使用/ RU和/ RP設置它的工作。不是最優雅的解決方案,但它必須做的。感謝RRUZ的幫助。 – Ryez