ComputerTargetCollection Class

 

Applies To: Windows Server Update Services

Represents a collection of client computers.

Namespace:   Microsoft.UpdateServices.Administration
Assembly:  Microsoft.UpdateServices.Administration (in Microsoft.UpdateServices.Administration.dll)

Inheritance Hierarchy

System.Object
  System.Collections.CollectionBase
    Microsoft.UpdateServices.Administration.WsusCollection
      Microsoft.UpdateServices.Administration.ComputerTargetCollection

Syntax

[SerializableAttribute]
[GuidAttribute("E21D4DAF-A20B-4CAF-A111-F4A66C223628")]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class ComputerTargetCollection : WsusCollection
[SerializableAttribute]
[GuidAttribute("E21D4DAF-A20B-4CAF-A111-F4A66C223628")]
[ClassInterfaceAttribute(ClassInterfaceType::None)]
[ComVisibleAttribute(true)]
public ref class ComputerTargetCollection : WsusCollection
[<SerializableAttribute>]
[<GuidAttribute("E21D4DAF-A20B-4CAF-A111-F4A66C223628")>]
[<ClassInterfaceAttribute(ClassInterfaceType.None)>]
[<ComVisibleAttribute(true)>]
type ComputerTargetCollection = 
    class
        inherit WsusCollection
    end
<SerializableAttribute>
<GuidAttribute("E21D4DAF-A20B-4CAF-A111-F4A66C223628")>
<ClassInterfaceAttribute(ClassInterfaceType.None)>
<ComVisibleAttribute(True)>
Public Class ComputerTargetCollection
    Inherits WsusCollection

Constructors

Name Description
System_CAPS_pubmethod ComputerTargetCollection()

Initializes a new instance of the ComputerTargetCollection class.

Properties

Name Description
System_CAPS_pubproperty Capacity

(Inherited from CollectionBase.)

System_CAPS_pubproperty Count

(Inherited from CollectionBase.)

System_CAPS_protproperty InnerList

(Inherited from CollectionBase.)

System_CAPS_pubproperty Item[Int32]

Retrieve or set the element at the specified index.

System_CAPS_protproperty List

(Inherited from CollectionBase.)

Methods

Name Description
System_CAPS_pubmethod Add(IComputerTarget)

Adds a client computer to the end of the collection.

System_CAPS_protmethod Add(Object)

Adds an element to the end of the collection.(Inherited from WsusCollection.)

System_CAPS_protmethod AddRange(Array)

Adds the elements of the specified array to the end of this collection. (Inherited from WsusCollection.)

System_CAPS_pubmethod AddRange(ComputerTargetCollection)

Adds the members of a collection of computers to the end of this collection.

System_CAPS_pubmethod AddRange(IComputerTarget[])

Adds the elements of a ComputerTarget array to the end of this collection.

System_CAPS_protmethod AddRange(WsusCollection)

Adds the items in the specified SusCollectionBase to the end of this collection.(Inherited from WsusCollection.)

System_CAPS_pubmethod Clear()

(Inherited from CollectionBase.)

System_CAPS_pubmethod Contains(IComputerTarget)

Determines whether the specified ComputerTarget is in the ComputerTargetCollection.

System_CAPS_protmethod Contains(Object)

Determines whether the specified element is in the collection.(Inherited from WsusCollection.)

System_CAPS_protmethod CopyTo(Array, Int32)

Copies the entire collection of values to a one-dimensional array, starting at the specified index of the target array.(Inherited from WsusCollection.)

System_CAPS_pubmethod CopyTo(IComputerTarget[], Int32)

Copies the client computers in the collection to a one-dimensional array.

System_CAPS_pubmethod Equals(Object)

(Inherited from Object.)

System_CAPS_protmethod Finalize()

(Inherited from Object.)

System_CAPS_pubmethod GetEnumerator()

(Inherited from CollectionBase.)

System_CAPS_pubmethod GetHashCode()

(Inherited from Object.)

System_CAPS_pubmethod GetType()

(Inherited from Object.)

System_CAPS_pubmethod IndexOf(IComputerTarget)

Determines if the collection contains the specified client computer. If the collection contains the client, the method returns the zero-based index to the client computer in the collection.

System_CAPS_protmethod IndexOf(Object)

Searches for the specified element and returns the zero-based index of it if it exists.(Inherited from WsusCollection.)

System_CAPS_pubmethod Insert(Int32, IComputerTarget)

Inserts a ComputerTarget into the ComputerTargetCollection at the specified index.

System_CAPS_protmethod Insert(Int32, Object)

Inserts an element into the collection at the specified index.(Inherited from WsusCollection.)

System_CAPS_protmethod MemberwiseClone()

(Inherited from Object.)

System_CAPS_protmethod OnClear()

(Inherited from CollectionBase.)

System_CAPS_protmethod OnClearComplete()

Performs additional custom processes after clearing the contents of the UpdateCollection instance.(Inherited from WsusCollection.)

System_CAPS_protmethod OnInsert(Int32, Object)

Provides overridden validation functionality which checks that we do not insert duplicates into our collection.(Inherited from WsusCollection.)

System_CAPS_protmethod OnInsertComplete(Int32, Object)

Performs additional custom processes after inserting a new element into the UpdateCollection instance.(Inherited from WsusCollection.)

System_CAPS_protmethod OnRemove(Int32, Object)

(Inherited from CollectionBase.)

System_CAPS_protmethod OnRemoveComplete(Int32, Object)

Performs additional custom processes after removing an element from the UpdateCollection instance.(Inherited from WsusCollection.)

System_CAPS_protmethod OnSet(Int32, Object, Object)

Provices overridden validation functionality which checks that we do not insert duplicates into our collection.(Inherited from WsusCollection.)

System_CAPS_protmethod OnSetComplete(Int32, Object, Object)

Performs additional custom processes after setting a value in the UpdateCollection instance.(Inherited from WsusCollection.)

System_CAPS_protmethod OnValidate(Object)

(Inherited from CollectionBase.)

System_CAPS_pubmethod Remove(IComputerTarget)

Removes a client computer from the collection.

System_CAPS_protmethod Remove(Object)

Removes a specified element from the collection.(Inherited from WsusCollection.)

System_CAPS_pubmethod RemoveAt(Int32)

(Inherited from CollectionBase.)

System_CAPS_pubmethod ToString()

(Inherited from Object.)

Explicit Interface Implementations

Name Description
System_CAPS_pubinterfaceSystem_CAPS_privmethod ICollection.CopyTo(Array, Int32)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod IList.Add(Object)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod IList.Contains(Object)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod IList.IndexOf(Object)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod IList.Insert(Int32, Object)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod IList.Remove(Object)

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty ICollection.IsSynchronized

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty ICollection.SyncRoot

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty IList.IsFixedSize

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty IList.IsReadOnly

(Inherited from CollectionBase.)

System_CAPS_pubinterfaceSystem_CAPS_privproperty IList.Item[Int32]

(Inherited from CollectionBase.)

Remarks

To retrieve a collection of client computers, call one of the following methods:

Examples

/*----------------------------------------------------------------------
This file is part of the Microsoft Windows Server Update Services
API Code Samples.

Copyright (C) Microsoft.  All rights reserved.

DISCLAIMER OF WARRANTY: THIS CODE AND INFORMATION ARE PROVIDED “AS-IS.”  
YOU BEAR THE RISK OF USING IT.  MICROSOFT GIVES NO EXPRESS WARRANTIES, 
GUARANTEES OR CONDITIONS.  YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS 
UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE.  
TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES 
THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
PURPOSE AND NON-INFRINGEMENT.
----------------------------------------------------------------------*/

namespace WsusSamples
{
  using System;
  using System.Xml;

  using Microsoft.UpdateServices.Administration;

  class DetermineUpdateStatusForAllComputers
  {
    static void Main(string[] args)
    {
      const string usage = "\r\n" +
                            "ComputerStatusToXml. Creates an XML file with a list computers on the Update Services server, " +
                            "and the status of updates approved for each computer." +
                            "\r\n\r\n" +
                            "USAGE:" +
                            "\r\n\r\n" +
                            "    ComputerStatusToXml.exe [IncludeDownstreamComputers]" +
                            "\r\n\r\n" +
                            "        IncludeDownstreamComputers: Include computer targets rolled up from downstream servers." +
                            "\r\n";

      // evaluate args
      bool includeDownstreamComputers = false;
      if (args.Length >= 1)
      {
        if (args.Length > 1 || args[0].ToLower() != "includedownstreamcomputers")
        {
          Console.WriteLine(usage);
          return;
        }
        if (args[0].ToLower() == "includedownstreamcomputers")
        {
          includeDownstreamComputers = true;
        }
      }

      XmlTextWriter xml = null;

      try
      {
        Console.WriteLine("Getting computer status...");

        // open the XML file
        string xmlWriterFile = string.Format("{0}{1}{2}{3}",
                                              Environment.CurrentDirectory.ToString(),
                                              "\\ComputerStatus ",
                                              DateTime.Now.ToLongDateString().ToString(),
                                              ".xml");
        xml = new XmlTextWriter(xmlWriterFile, System.Text.Encoding.UTF8);
        xml.Formatting = Formatting.Indented;
        xml.Indentation = 4;

        xml.WriteStartDocument(true);
        xml.WriteStartElement("ComputerStatus");


        // Connect to the local WSUS server
        IUpdateServer updateServer = AdminProxy.GetUpdateServer();

        // Get the collection of computers on this server
        ComputerTargetScope computerTargetScope = new ComputerTargetScope();
        computerTargetScope.IncludeDownstreamComputerTargets = includeDownstreamComputers;
        ComputerTargetCollection computers = updateServer.GetComputerTargets(computerTargetScope);

        // loop through the computer collection 
        foreach (IComputerTarget computer in computers)
        {
          // start the element for the computer
          xml.WriteStartElement("Computer");
          xml.WriteAttributeString("Name", computer.FullDomainName);

          xml.WriteAttributeString("LastReportedStatus", computer.LastReportedStatusTime.ToString());

          if (includeDownstreamComputers == true)
          {
            string parentName = "LocalHost";
            if (computer.ParentServerId != Guid.Empty)
            {
              parentName = computer.GetParentServer().FullDomainName;
            }
            xml.WriteAttributeString("ParentServer", parentName);
          }

          // start the element for the status of updates on this computer
          xml.WriteStartElement("UpdateStatus");

          // get the install state of all updates approved for this computer
          UpdateInstallationInfoCollection installStatus = computer.GetUpdateInstallationInfoPerUpdate();

          // loop through the updates in the install info collection and output the 
          // name of the update and it's install state on this computer
          foreach (IUpdateInstallationInfo updateStatus in installStatus)
          {
            xml.WriteStartElement("Update");
            xml.WriteAttributeString("Title", updateStatus.GetUpdate().Title);
            xml.WriteAttributeString("Status", updateStatus.UpdateInstallationState.ToString());

            // close the Update element
            xml.WriteEndElement();
          }

          // close the UpdateStatus element
          xml.WriteEndElement();

          // close the Computer element
          xml.WriteEndElement();
        } // foreach

      } //try
      catch (Exception)
      {
      } // catch
      finally
      {
        Console.WriteLine("Done. Results are written to the ComputerStatus {0}.xml file in the current folder",
                          DateTime.Now.ToLongDateString());
        xml.Close();
      } // finally
    } // main
  }
}

Thread Safety

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Microsoft.UpdateServices.Administration Namespace

Return to top