TFS queue build from powershell

I was doing some testing on TFS and got fed up queuing new builds via right-click -> queue new build -> ok. So here is a powershell script that can be used to kick off a build.

I’ve included some extra assemblies that don’t need to be used as I have other functions that do use them in the same module file. example useage below

Queue-TFSBuild -TFSServer http://tfsserver:8080/tfs/col -Project Project1 -Definition DailyBuild

$arrAssemblies = @(
    "Microsoft.TeamFoundation.Client",
    "Microsoft.TeamFoundation.Common",
    "Microsoft.TeamFoundation.Build.Client",
    "Microsoft.TeamFoundation.Build.Workflow",
    "Microsoft.TeamFoundation.VersionControl.Client"
)
Foreach ($assembly in $arrAssemblies) {
    [void][Reflection.Assembly]::LoadWithPartialName($assembly)
}	
Remove-Variable assembly, arrAssemblies


Function Queue-TFSBuild {
    [CmdLetBinding()]
    Param (
        [Uri]$TFSServer,
        [String]$Project,
        [String]$Definition
    )

    Process {
        [Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]$tfsc = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($TFSServer)
        $IBS = [Microsoft.TeamFoundation.Build.Client.IBuildServer]

        [Microsoft.TeamFoundation.Build.Client.IBuildServer] $buildserver = $tfsc.GetService($IBS)
        [Microsoft.TeamFoundation.Build.Client.IBuildDefinition] $BuildDef = $buildserver.GetBuildDefinition($Project,$Definition)
        [Microsoft.TeamFoundation.Build.Client.IBuildRequest] $BuildReq = $BuildDef.CreateBuildRequest();
        $buildserver.QueueBuild($BuildReq)
    }
}

Get Numeric Values from an Enum in powershell

I needed to get the values for a enum in order to generate the correct flags for a function call here’s how to do it.

[Enum]::GetValues() will return a list of all the values

::.value__ will return the numeric value enum

[Enum]::GetValues([Microsoft.TeamFoundation.Build.Client.BuildStatus]) | foreach {
$Name = $_
$Value = ([Microsoft.TeamFoundation.Build.Client.BuildStatus]::$_).value__
Write-Output "$Name = $Value"
}

TFS Warehouse Cube Status via SOAP and Powershell

Well I’ve just been put in charge of managing our TFS infrastructure so here is the first of hopefully many posts around automating and managing TFS.

The attached script runs a SOAP query against the TFS Warehouse Cube and returns the jobs and their status and then either generates an HTML file or sends an HTML email with the results.

I recommend creating a directory called Scripts on the C:\ drive and setting the permissions so that only the System Administrator & User the script runs as can access the contents of the directory.

Read More

Scripted checking of SCCM Backups

This is a script that parses the smsbkup.log and outputs results (in html) and the relevant portions of the file to the specified folder. The idea being that the with a small bit of tweaking you could have the report hosted on  a webserver to check or emailed (there will be a post on emailing in Powershell later) to you.

This is best run from the central primary under credentials that have access to the other sites.

Note: The script requires UNC paths for the $fpath variable as it is expecting be be run remotely.

Note2: This script was written for SCCM 2007 and not for SCCM 2012, however thanks to one of my readers, Satish, the following should fix that:
Change
if ($content | where {$_ -like "Backup task completed successfully*"}) {
to
if ($content | where{$_ -like "*SQL Backup task completed successfully*"}) {

Note3:
Potential Dates issues with SCCM 2012 R2. Thanks to Marius for the update.
Change
$cdate = $cdate.adddays($days) | get-date -format “ddd MMM dd”
to (this is probably US specific and will probably vary depending on locale)
$cdate = $cdate.adddays($days) | get-date -format “MM-dd-yyyy”

Read More

Clone-VMFromSnapshot

This is a function that allows you to clone a VM from a specified snapshot. The only way to do this in the UI would be to take a snapshot of the current state, revert to the one you wish to clone, clone, revert to latest snapshot and then delete latest snapshot. As you can see that is time consuming and takes numerous mouse clicks.

I recommend adding this function to your powershell profile so you always have access to it.

As always feel free to comment.

Read More

Dell & HP Warranty Info from a CSV file of Tags

Updated: 2013-11-20 – Added User submitted version of script to downloads.

I have tweaked my powershell script for the SCCM Dell/HP tags due to popular demand so that it can be run on a single machine using a list of service tags as the source and then will output to a CSV file. The source CSV can have any number of columns however it MUST have the following three for the script to work “Name,Vendor,Tag” in its default state. You also need to edit the $infile & $outfile variables as required.

Read More

Dell & HP Warranty Info in SCCM

Updated: 2011-08-18

This is the next evolution in the warranty info fight, Dell keep changing their site which is rather frustrating. I have re-written the Warranty Info Scripts in powershell as in my opinion the code is a lot cleaner and more manageable, I’ve tweaked the MOF edit required to read this.

One major change to the script is that I have added support for HP systems, now I must stress I only have one or two of these, both are out of warranty and only had base warranties so something may have been missed / may not work as expected. You can either fix it and let me know the changes you make or let me know, via the contact page, the tag of one of your systems and I will look at it when I get a chance.

If you use any other version of the script from my site you will need to update sms.mof as the reports have changed.

I am quite shameless so if you find this useful feel free to click on donate and well, donate. :D

What info do you get?

Read More

Update Custom Attributes for VMhosts in vCenter

Yet another role added to my Job description, Now I am managing our Virtual Servers. So true to form I’ve dived headfirst into powershell / powercli to see what I can do. Some of the posts coming up on this will likely be similar to others around the web as I reinvent the wheel while I learn. But you never know one of you might find me 1st or I might do it in a way that suits you better.

First up is a simple script to read data from an xml file and then update custom attributes on the vmhosts.

Read More