2014-08-29 32 views
1

我試圖讀取&使用C#將值和來自WMI。簡單C#WMI獲取並放入

當前示例對configmgr客戶端使用ccm命名空間。

讀取功能正常工作,能夠讀取ADV_RepeatRunBehavior值。 雖然Put();不按預期工作,值不會被存儲回來並引發無效的類異常。

一些建議會很好,因爲我是新手,非常感謝。

static void Main(string[] args) 
{ 
    try 
    { 
     ManagementObjectSearcher searcher = new ManagementObjectSearcher(
      "root\\ccm\\Policy\\Machine", 
      "SELECT * FROM CCM_SoftwareDistribution WHERE PKG_PackageID='XXXXXXXX'"); 

     foreach (ManagementObject queryObj in searcher.Get()) 
     { 
      //Read works 
      //Console.WriteLine(queryObj["ADV_RepeatRunBehavior"].ToString()); 
      //Console.ReadLine(); 

      //Put doesn't 
      queryObj["ADV_RepeatRunBehavior"] = "RerunNever"; 
      queryObj.Put(); 
     } 
    } 
    catch (ManagementException z) 
    { 
     Console.WriteLine("An error occurred: " + z.Message); 
     Console.ReadLine(); 
    } 
} 
+2

根據文檔,「測試」看起來不像該屬性的有效值:http://msdn.microsoft.com/en-us/library/cc145304.aspx – 2014-08-29 15:22:24

+0

@IanGilroy謝謝,不幸的是仍然不能使用msdn lib提供的原始屬性。 它絕對不是有效的屬性,但應該可以將值更改爲任何值。 F.E.我可以通過wbemtest將其更改爲任何內容。當然,在結果/測試階段,我將確保僅插入有效屬性,並編輯發佈的腳本。 – ans 2014-08-29 16:10:43

回答

0

找到了解決方案。

  1. 你必須運行Visual Studio作爲管理員,如果在本地主機上
  2. 到WMI的連接有測試是\\root\\ccm\\Policy\\Machine\\ActualConfig那麼它可能把()值。