2013-07-22 21 views
1

我正在開發一個項目,需要使用C#代碼自動禁用Windows自動更新。我不太確定從哪裏開始。我已閱讀可能使用Windows更新代理API,但我不確定。任何建議將不勝感激。提前致謝。如何以編程方式禁用XP中的Windows Update使用C#

+2

有通過組策略這樣的多種其他方式並沒有什麼 - 爲什麼*您的*代碼需要做的呢?這只是好奇心,而不是批判。 –

+0

我正在爲客戶端編寫一個安裝程序包,可能會在更新時更改某些設置。 – trueamerican420

回答

3

有一個窗口服務,負責執行更新,您可以用下面的代碼停止此服務:

 ServiceController sc = new ServiceController("wuauserv"); 
     try 
     { 
      if (sc != null && sc.Status == ServiceControllerStatus.Running) 
      { 
       sc.Stop(); 
      } 
      sc.WaitForStatus(ServiceControllerStatus.Stopped); 
      sc.Close(); 
     } 
     catch (Exception ex) 
     {     
      Console.WriteLine(ex.Message); 
     } 

你將需要:

  1. 添加到proyect選擇 「添加引用」 到Proyect名稱然後添加 「System.ServiceProcess」 的引用,
  2. 包含 「使用System.ServiceProcess;」在你的類
  3. 運行你的應用程序或Visual Studio作爲管理員
+0

非常感謝您的意見!我會試一下! – trueamerican420

+0

如果我需要在遠程客戶端計算機上運行它,它會是一個類似的修復程序嗎? – trueamerican420

+0

代碼可以相同,但您需要遵守以下安全規則: 1.計算機必須位於相同的域中 2.您必須擁有在2臺計算機上擁有管理員權限的域用戶3。您必須啓動您的應用程序或Visual Studio與域用戶 如果您符合上述,您可以更改以下行: ServiceController sc = new ServiceController(「wuauserv」,「RemoteMachineName」); –

2

您可以通過更改註冊表來實現這一目標。看看這個TechNet頁面的(應適用於Win XP的以及一些其他): http://technet.microsoft.com/en-us/library/dd939844(v=ws.10).aspx(註釋:NoAutoUpdate)

有一些職業,幫助您訪問C#中的註冊表:http://msdn.microsoft.com/en-us/library/microsoft.win32.registry(v=vs.90).aspx

(來源:谷歌)

+0

非常感謝您的鏈接。查看並測試代碼。會讓你們知道它是如何運作的! – trueamerican420

相關問題