IUpdateServer.GetComputerTargets Method ()
Applies To: Windows Server Update Services
Gets a collection of all client computers that are known to the WSUS server.
Namespace: Microsoft.UpdateServices.Administration
Assembly: Microsoft.UpdateServices.Administration (in Microsoft.UpdateServices.Administration.dll)
Syntax
ComputerTargetCollection GetComputerTargets()
ComputerTargetCollection^ GetComputerTargets()
abstract GetComputerTargets : unit -> ComputerTargetCollection
Function GetComputerTargets As ComputerTargetCollection
Return Value
Type: Microsoft.UpdateServices.Administration.ComputerTargetCollection
Collection of all client computers that are known to the WSUS server.
Remarks
Clients register themselves with the WSUS server if TargetingMode is Client. You can also call RegisterComputer to register a client computer.
To get the client computers for a specific group, call GetComputerTargets.
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
}
}
See Also
GetComputerTargets Overload
IUpdateServer Interface
Microsoft.UpdateServices.Administration Namespace
Return to top