NOTE! A new version of this tool has been released, check it out

When dealing with Dell systems in ConfigMgr 2012, you may want an easy way to get the warranty status of a particular system. Instead of browsing to Dell’s support website and entering the service tag, wouldn’t it be cool if you could get that same information just by right-clicking on the system in the ConfigMgr 2012 console? I think so and because of that I created the Dell Warranty Console Extension Tool, also known as DWCET!

Overview

  • Download link
  • About DWCET
  • Installing DWCET
  • Using DWCET in your environment

Download link

Click here to download DWCET

About DWCET

The DWCET will extend the capabilities of the ConfigMgr 2012 console allowing you to easily get the warranty status of any system. I’ve written this tool in PowerShell and it has been tested on Windows Server 2012 with a ConfigMgr 2012 SP1 console installed. Running the setup file will do the following:

1. Create two new folders called:

3fd01cd1-9e01-461e-92cd-94866b8d1f39
ed9dee86-eadd-4ac8-82a1-7234a4646e62

in the following location:

%PROGRAMFILES(x86)%\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions

2. Copy the DellWarranty.xml file to both of the newly created folders above.
3. Create the following folder:

%PROGRAMFILES(x86)%\DWCET

4. Finally, it will copy the Get-DellWarrantyGUI.ps1 and uninst.exe to the DWCET program folder.

There are two ways that the tool can operate. The default mode is to query WMI for the service tag. In an enterprise environment, I think it’s a good practice to automate the naming of your Dell systems. And an easy way of doing so is to use the service tag followed by a prefix, e.g. 123456J-XXX. The second way the tool can operate is by enumerating the service tag from the computer name, where the first 7 characters are treated as the service tag.

If you’d like to change the way the tool operates, edit the DellWarranty.xml created by the installer and change the following row:

<Parameters>-windowstyle hidden -executionpolicy bypass -file "C:\Program Files (x86)\DWCET\Get-DellWarrantyGUI.ps1" -Name "##SUB:Name##" -Method "WMI"</Parameters>

to the following:

<Parameters>-windowstyle hidden -executionpolicy bypass -file "C:\Program Files (x86)\DWCET\Get-DellWarrantyGUI.ps1" -Name "##SUB:Name##"</Parameters>

Basically you’re removing a switch and it’s value from the PowerShell script.

Installing DWCET

Download the ZIP file from the link above, extrax the DWCET_setup.exe from the archive and run it. It will require administrative permissions to perform the installation.

55_1

When the installation is completed, you’ll have to relaunch all open ConfigMgr 2012 consoles for this tool to work.

Using DWCET in your environment

In order to get the warranty status for a system, go to Assets and Compliance -> Overview -> Devices and select a device. You’ll now have two options to launch the tool, either from the context menu or from the ribbon menu. See the pictures below:

Context menu

55_4

Ribbon menu

55_3

1. Once you’ve launched the tool, a window will appear.
2. Click on Get Warranty and wait for a couple of seconds. The warranty status for the selected device will now be shown, see the picture below:

55_2

3. Click on Close.

If DWCET was not able to connect through WMI to the selected device, an error will be shown.

I hope this tool will be of value to anyone out there and as always, please let me know if you have any problems or suggestions for improvements.

Nickolaj Andersen
Principal Consultant and Enterprise Mobility MVP. Nickolaj has been in the IT industry for the past 10 years specializing in Enterprise Mobility and Security, Windows deployments and Automation. In 2015 Nickolaj was awarded as PowerShell Hero by the community for his script and tools contributions. Author of ConfigMgr Prerequisites Tool, ConfigMgr OSD FrontEnd, ConfigMgr WebService and a frequent speaker at user groups.

(371)

comments
  • Ståle Askerød Johansen
    Posted at 12:46 October 12, 2013
    Ståle Askerød Johansen
    Reply
    Author

    Do you use screen scraping or SOAP ?

    • Nickolaj
      Posted at 14:39 October 12, 2013
      Nickolaj
      Reply
      Author

      In what context?

  • Dustin Hedges
    Posted at 17:21 October 15, 2013
    Dustin Hedges
    Reply
    Author

    Any idea on why it would run the warranty info on my system 4 times (I only pressed the button once)?

    Example:

    StartDate : 7/6/2013 1
    EndDate : 7/6/2015 1
    DaysLeft : 629
    Status : Active

    StartDate : 7/6/2013 1
    EndDate : 7/6/2015 1
    DaysLeft : 629
    Status : Active

    StartDate : 7/5/2012 1
    EndDate : 7/6/2013 1
    DaysLeft : 0
    Status : Expired

    StartDate : 7/5/2012 1
    EndDate : 7/6/2013 1
    DaysLeft : 0
    Status : Expired

    • Nickolaj
      Posted at 06:42 October 16, 2013
      Nickolaj
      Reply
      Author

      Hi Dustin,

      It does so for me aswell on newer systems. I believe it has something to do with how Dell are splitting up the contracts, like:

      – 1y Base warranty
      – extended Base warranty
      – 1y ProSupport

      Etc. I’ve not really been able to verify my theory yet, but when you run it on a 4-5 years old system where you now for a fact it only has a 3y ProSupport contract, it only shows that from the web service.

      Regards,
      Nickolaj

      • PB
        Posted at 06:35 October 20, 2013
        PB
        Reply
        Author

        I can confirm that this is the case. When you use the official dell warranty tool, it creates a report in Config Mgr that (for newer systems)results in 3 – 4 entries. Usually 2 for basic support and any additional that the company purchased. I would assume that this extension pulls the same data from dell and thus why you see multiple entries.

        • Nickolaj
          Posted at 18:38 October 20, 2013
          Nickolaj
          Reply
          Author

          Thanks for confirming that!

          Regards,
          Nickolaj

  • DonsonP
    Posted at 18:16 October 21, 2013
    DonsonP
    Reply
    Author

    I like this Info, I really like the fact that I would still be able to check the a machine with a skew “computername” and still be able to pull the service tag and gather info.

    Two Questions I have:
    1 – Would I be able to edit the script to add identify the Model of the Machine?
    2 – Would we be able to use this to create a collection in SCCM to report all machines that is currently Active or Expired?

    thanks,

    • Nickolaj
      Posted at 23:23 October 23, 2013
      Nickolaj
      Reply
      Author

      Hi Donson,

      1 – Replace the Show-Warranty function with the following code:

      < ------ START ------>
      function Show-Warranty {
      if ($Method -like “WMI”) {
      if (Test-Connection -ComputerName $Name -Count 1 -ErrorAction SilentlyContinue) {
      $WMIModel = (Get-WmiObject -Namespace root\cimv2 -Class Win32_BIOS -ComputerName $Name -Property Model).Model
      $WMIServiceTag = (Get-WmiObject -Namespace root\cimv2 -Class Win32_BIOS -ComputerName $Name -Property SerialNumber).SerialNumber
      $TBServiceTag.Text = $WMIServiceTag
      Write-OutputMessage -Message “Model: $($WMIModel)”
      [System.Windows.Forms.Application]::DoEvents()
      $ShowWarranty = Get-DellWarrantyInfo -ServiceTag $WMIServiceTag
      foreach ($Warranty in $ShowWarranty) {
      $Output = $Warranty | Out-String
      Write-OutputMessage -Message $Output
      }
      }
      else {
      Write-OutputMessage -Message “Unable to connect to $($Name)”
      }
      }
      else {
      [string]$GetServiceTag = $Name.SubString(0,7)
      $TBServiceTag.Text = $GetServiceTag
      [System.Windows.Forms.Application]::DoEvents()
      $ShowWarranty = Get-DellWarrantyInfo -ServiceTag $GetServiceTag
      foreach ($Warranty in $ShowWarranty) {
      $Output = $Warranty | Out-String
      Write-OutputMessage -Message $Output
      }
      }
      $Form.Controls.Add($ButtonClose)
      $Form.Controls.Remove($ButtonGet)
      }
      < ------ END ------>

      I’ve not been able to test it since I don’t have a Dell machine here at home.

      2 – I’m afraid that this script does not have that functionality. You could probably obtain that functionality by creating your own script, and use some of the functions from this post: http://www.scconfigmgr.com/2013/06/23/get-dell-system-warranty-with-powershell/

      I hope it helps!

      Regards,
      Nickolaj

      • Peter
        Posted at 13:27 February 20, 2014
        Peter
        Reply
        Author

        You’ll have to change “Win32_BIOS” to “Win32_Computersystem” to get the Dell model:

        $WMIModel = (Get-WmiObject -Namespace root\cimv2 -Class Win32_Computersystem -ComputerName $Name -Property Model).Model

        • Nickolaj
          Posted at 14:42 February 20, 2014
          Nickolaj
          Reply
          Author

          Hi Peter,

          I just checked the script, and I’m not doing a check against the model. Instead it’s checking for the SerialNumber, which is found under the Win32_BIOS class.

          $WMIServiceTag = (Get-WmiObject -Namespace root\cimv2 -Class Win32_BIOS -ComputerName $Name -Property SerialNumber).SerialNumber

          Regards,
          Nickolaj

  • Squeezer
    Posted at 17:00 November 15, 2013
    Squeezer
    Reply
    Author

    My configuration manager console is installed to D:, therefore I had to manually copy 3fd01cd1-9e01-461e-92cd-94866b8d1f39 and ed9dee86-eadd-4ac8-82a1-7234a4646e62 folders to D:\Program Files\Microsoft Configuration Manager\AdminConsole\XmlStorage\Extensions\Actions to get the script to work.

    • Nickolaj
      Posted at 00:39 November 17, 2013
      Nickolaj
      Reply
      Author

      Thanks for adding your work around here in the comment section! I guess the installation part could use a bit more logic.

      Regards,
      Nickolaj

  • Kurt
    Posted at 12:53 July 14, 2014
    Kurt
    Reply
    Author

    Hi!
    We’re using a proxy for internet access. Is it possible to define a proxy for the warranty requests?

    Kurt

    • Nickolaj
      Posted at 22:00 July 14, 2014
      Nickolaj
      Reply
      Author

      Hi Kurt,

      You’d have to set the proxy for the system, perhaps through an GPO where you configure it to be per machine. The script has not been written to be able to work with a proxy itself. Here’s some information about that:

      http://msdn.microsoft.com/en-us/library/ms815135.aspx

      Regards,
      Nickolaj

  • Robert
    Posted at 01:01 July 18, 2014
    Robert
    Reply
    Author

    If you add a couple more fields you can see which warranties each entry is for:

    Write-Output “ServiceLvl: $($_.ServiceLevelCode)”
    Write-Output “ServiceDsc: $($_.ServiceLevelDescription)”
    Write-Output “Provider : $($_.Provider)”

    Special thanks to my source:
    http://marcusoh.blogspot.com/2013/06/powershell-retrieving-warranty-data.html

  • steve
    Posted at 15:26 October 6, 2014
    steve
    Reply
    Author

    When i run the tool it pulls the service tag but the warranty window is always blank.

  • Aaron
    Posted at 13:04 January 30, 2015
    Aaron
    Reply
    Author

    Same problem as Steve. The tool finds the service tag but the windows is always blank.

    • Nickolaj
      Posted at 14:34 January 30, 2015
      Nickolaj
      Reply
      Author

      Hi Aaron,

      I know that there has been problems with this tool, and I’m looking at updating it quite extensively due to the fact that it was poorly written from the start. As soon as I’ve created a new version of the tool, I’ll post it here.

      Regards,
      Nickolaj

  • Mike D
    Posted at 21:27 November 3, 2015
    Mike D
    Reply
    Author

    The latest version of the tool works like a champ on SCCM 2012 R2 CU4. Pulls all the info as described. I do wonder how I can make this work on a device collection. Hmmm Helpful tool. Thank You!

  • Leave a Reply