Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
These samples list all projects in a controller and print basic information about each project.
C#
//-----------------------------------------------------------------------
// <copyright file="ListProjects.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
namespace Samples
{
using System;
using Microsoft.Windows.Kits.Hardware.ObjectModel;
using Microsoft.Windows.Kits.Hardware.ObjectModel.DBConnection;
class ListProjects
{
public static void Main(string[] args)
{
string controllerName = args[1];
// first, connect to the server
ProjectManager manager = new DatabaseProjectManager(controllerName);
// list all projects
Console.WriteLine("Listing all projects");
foreach (string name in manager.GetProjectNames())
{
Console.WriteLine("Project {0}", name);
}
// list all projects, and get the basic status of each
Console.WriteLine("\nGetting all project status");
foreach (ProjectInfo info in manager.GetProjectInfoList())
{
Console.WriteLine("Project {0}", info.Name);
Console.WriteLine("\t status : {0}", info.Status);
Console.WriteLine("\t not run: {0}", info.NotRunCount);
Console.WriteLine("\t passed : {0}", info.PassedCount);
Console.WriteLine("\t Failed : {0}", info.FailedCount);
Console.WriteLine("\t Running: {0}", info.RunningCount);
}
// list all the tests for each project
Console.WriteLine("\nGetting all projects and their tests");
foreach (string name in manager.GetProjectNames())
{
Project project = manager.GetProject(name);
Console.WriteLine("Project name : {0}, status: {1}", project.Name, project.Info.Status);
foreach (ProductInstance pi in project.GetProductInstances())
{
Console.WriteLine("Product Instance : {0}, Machine Pool : {1}, Platform type : {2}", pi.Name, pi.MachinePool.Name, pi.OSPlatform.Description);
foreach (Target target in pi.GetTargets())
{
Console.WriteLine("Target Name : {0}", target.Name);
foreach (Test test in target.GetTests())
{
Console.WriteLine("\tTest : {0}, status : {1}", test.Name, test.Status);
}
}
}
}
}
}
}
Windows PowerShell®
$ObjectModel = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dll")
$ObjectModel = [Reflection.Assembly]::LoadFrom($env:WTTSTDIO + "microsoft.windows.Kits.Hardware.objectmodel.dbconnection.dll")
$ControllerName = $args[0]
write-Host "Usage: %SystemRoot%\syswow64\WindowsPowerShell\v1.0\powershell.exe -file ListProjects.ps1 <<ControllerName>>"
# connect to the server
if ($ControllerName -eq $null -OR $ControllerName -eq "")
{
write-host "Need to supply the controller Name as a parameter to this script"
return
}
else
{
write-host connecting to the controller $ControllerName
}
$Manager = new-object -typename Microsoft.Windows.Kits.Hardware.ObjectModel.DBConnection.DatabaseProjectManager -Args $ControllerName, DTMJobs
$RootPool = $Manager.GetRootMachinePool();
# first, get a list of all projects
write "All project names on this controller"
$Manager.GetProjectNames()
# list all projects, and get the basic status of each
$Manager.GetProjectInfoList() | foreach {
write-host "Name : " $_.Name
write-host "`tStatus : " $_.Status
write-host "`tNotRun : " $_.NotRunCount.ToString()
write-host "`tPassed : " $_.PassedCount
write-host "`tFailed : " $_.FailedCount
write-host "`tRunning: " $_.RunningCount
}
# list all the tests for each project
$Manager.GetProjectNames() | foreach {
$Project = $Manager.GetProject($_)
write-host "Project Name : " $Project.Name
write-host "`tProject Status: " $Project.Info.Status
# list all the product instances
$Project.GetProductInstances() | foreach {
write-host "Product Instance : " $_.Name
write-host "`tMachine pool : " $_.MachinePool.Name
write-host "`tOS Platform : " $_.OSPlatform.Description
$_.GetTargetFamilies() | foreach {
write-host "Target Family : " $_.Family.Name
# get target data
$_.GetTargets() | foreach {
write-host "Target : " $_.Name
write-host "`tType : " $_.TargetType
write-host "`tKey : " $_.Key
# there's more information if this is a device type
$DeviceData = $_ –AS [Microsoft.Windows.Kits.Hardware.ObjectModel.IDeviceTargetData]
if ($DeviceData -ne $null)
{
write-host "`tManufacturer : " $DeviceData.Manufacturer
write-host "`tVendorId : " $DeviceData.VendorId
write-host "`tDeviceClass : " $DeviceData.DeviceClass
write-host "`tInBox : " $DeviceData.AllInboxDrivers
write-host "`tDriver : "
$DeviceData.Drivers
write-host "`tDriverHash : "
$DeviceData.DriverHash
}
# there's more infomation if this is a system type
$SystemData = $_ -AS [Microsoft.Windows. Kits.Hardware.ObjectModel.ISystemTargetData]
if ($SystemData -ne $null)
{
write-host "`tManufacturer : " $SystemData.Manufacturer
write-host "`tModel : " $SystemData.Model
}
# there's more infomation if this is a system type
$FilterData = $_ -AS [Microsoft.Windows. Kits.Hardware.ObjectModel.IFilterTargetData]
if ($FilterData -ne $null)
{
write-host "`tManufacturer : " $FilterData.Manufacturer
write-host "`tVersion : " $FilterData.Version
write-host "`tAllInbox : " $FilterData.AllInboxDrivers
}
write-host "`tFeatures : "
$_.GetFeatures() | foreach {
write-host "`t`t" $_.FullName
$_.GetRequirements() | foreach {
write-host "`t`t`tRequirement: " $_.FullName
}
}
}
# now, list all the tests for this family
write-host "Tests:"
$_.GetTests() | foreach {
write-host "`t" $_.Name -NoNewline
if ($_.GetTestTargets().Count -ne 1)
{ write-host " - shared" }
else
{ write-host " - not shared" }
}
}
}
}